zoukankan      html  css  js  c++  java
  • 简单破解安卓藏在so文件的密码

    本次app:自毁程序密码:

    此软件刚打开的界面就是这样的

    于是判断此界面应该是app刚加载的界面,使用apktool 解开apk,打开AndroidManifest.xml,找到里面的第一个application里面的第一个activity的android:name找到此包名,在jadx里面搜索

    使用jadx打开apk。找到MainActivity 看了下里面的代码

    大致大意思是:输入密码去判断,当输入的密码和 Securitycheck函数检验的密码一致时返回MainActivity.this.startActivity(new Intent(MainActivity.this, ResultActivity.class));

    而我们发现Securitycheck函数用文本搜索搜不到,仔细观察此函数的定义public native boolean securityCheck(String str); 

    native一般表示的是和so文件关联的,由于so文件是二进制文件,这是我们需要frdia-server hook技术去钓住Securitycheck,从而改变该函数的返回结果,就可以让密码不攻自破

    现在我们需要安装frdia mac安装自行百度,

    手机端使用frida技术的时候,需要frdia-server来共同协作 frida-server自行下载,下载时注意需要和自己的手机arm匹配,并且需要和自己电脑端frdia版本匹配

    adb shell getprop ro.product.cpu.abi查看手机的arm,或者

     uname -a(需要先进入adb shell)

    https://github.com/frida/frida/releases下载地址

    大部分的虚拟机都是x_86的,大部分的真机都是arm64的

     下载好以后使用adb push命令推送到手机/data/local/tmp文件夹下

    adb push frida-path  /data/local/tmp 

    给文件加权限 777

    运行frida-server

    命令:./frida-server-14.1.3-android-arm64 此窗口关闭会导致frida-server服务关闭

    电脑端运行frida-ps -U  电脑上运行  android.process.acore  字样表示成功

    windows运行 端口转发到PC(我的mac没用到,不知道是不是特定的windows才需要)
    adb forward tcp:27043 tcp:27043
    adb forward tcp:27042 tcp:27042

    然后打开我们的pycharm新建一个py文件

    写下如下内容

     然后我们运行

     程序等待状态

    我们打开手机app

    随便输入密码,

    然后你就会发现成功

     学习自猿人学

  • 相关阅读:
    C++输入cout与输出cin
    golang学习笔记
    vscode环境配置
    golang 微框架 gin
    git go使用socket5代理
    go包管理工具glide
    collectd的python插件(redis)
    zookeeper & kafka 集群
    redis复制集(sentinel)
    python加解密
  • 原文地址:https://www.cnblogs.com/wuxianyu/p/14250751.html
Copyright © 2011-2022 走看看