案例1 霸哥磁力搜索

首先 签名校验不止一个,所以会经历无数次安装,

  1. 重签名打包,安装查看是否有签名校验(这里可以通过启动界面返回的信息查看)

安装 如果有检测 进入第二步

比如 下面的情况

  1. 检测是否有加固

    有加固进入第三步

    没有加固进入第四步

  2. 有加固 ,先脱壳修复

  3. 查看处理的地方,干掉存在签名校验的地方

    ok 接下来分析他在哪校验的

    工具的话: andorid killer 、 jadx 、ida、ddms

先看看刚才程序崩溃是什么情况导致的

使用android killer 加载apk,同时使用jadx 加载,配合查看函数

根据崩溃原因,判断检测应该是在刚开始打开apk就执行的,所以第一步找到MainActivity.smail

接下来逐个阅读逻辑,配合jadx 查看方法是否有检测校验,(存在getPackageManager、PackageManager、getPackageInfo称为签名三兄弟,如果出现这三个函数就肯定有签名校验 )

发现存在方法

在qian()方法中找到熟悉的内容 刚刚我提到的签名三兄弟

绕过方法: 注释

回到刚才调用的位置

打包签名安装,之后测试(记得 保存)

发现崩溃在了JNI_onload处 调用了libbug.so 那么猜测这里可能存在so层的校验,找一下是否有这个调用so的操作

继续往下看的时候发现有个调用bug()的方法,找不到bug方法的函数

看到这个就知道方法定义在so层,将so文件拖入ida中,先看看jni_onload 发现没有,那么就是静态注册了,

找找Java下划线开头的方法,只有一个Java_ xxx _bug 那么肯定就是这个了

大概意思就是在搜索前会获取一个sign值,之后返回结果,跟进getSignHashCode 看看

这个是getSignHashCode 方法的内容, 看到了三兄弟那就没跑了,这里还存在一个校验。最后会判断一个result的值,然后如果判断成功 也就是result 不等于226776851 就会exit(0) 退出

绕过方法: 使得判断为假,或者使得exit(0)不执行 将判断改成不等于

之后保存即可 保存方式:edit->patch program-> apply patches to input file…

ok 修改成功。

相关文章
评论
分享
  • Hook jni 主动调用

    Hook jni 主动调用要对hellofromc 进行主动调用,修改返回值,但是这里不能直接通过replace去修改返回值,而是要通过newstringutf 去修改返回值。 1234567891011121314151617181...

    Hook jni 主动调用
  • jni函数hook

    jni函数hook(计算 地址方式)12345678910111213141516171819202122232425262728293031323334353637function hookTest9() { Jav...

    jni函数hook
  • Hook 计算非导出函数地址

    hook 读写内存数据对string字符串,可能是加密的,可以通过直接hook 加载的内存数据来读取解密状态的字符串 123456789读取内存字符串数据function hookTest7() { var soAdd...

    Hook 计算非导出函数地址
  • Hook dlopen

    hook dlopen在刚开始hook 我们必须使得app加载so 才能hook, 我们可以hookdlopen 获取到so在那加载,在高版本中有一些so会走android_dlopen_ext 1234567891011121314...

    Hook dlopen
  • Hook 获取指针参数的返回值

    Hook 获取指针参数的返回值在c语言中,一般都会以指针传递返回的值 ,没有return 或者return为true hook sub_750 打印参数和输出 12345678910111213141516171819functio...

    Hook 获取指针参数的返回值
  • Hook 导出函数和修改函数参数返回值

    Hook 导出函数123456789101112131415161718192021222324252627282930// hook 导出函数function hookTest1() { var addAddr =...

    Hook 导出函数和修改函数参数返回值
  • Hook Java层通杀

    Hook 通杀Hook 普通方法和修改函数参数返回值fradaserver 是手机端的, android低版本 frida 尽量低版本 fridaserver版本要与frida库版本一致 不同平台用不同fridaserver 不要和...

    Hook Java层通杀
  • Hook so 导入导出表

    hook so 导入导出表启动frida打开两个cmd 窗口 12345第一个cmd窗口adb shellsucd /data/local/tmp./fx // 这个是frida-server-12.8.14-android-x86...

    Hook so 导入导出表
  • 最右登录协议分析

    Hey, password is required here. 184ec4c94e65a4b619ea732bd39a29aaf452514072ddb6dff084e29ad47fa9af...

    最右登录协议分析
  • 攻防世界-RememberOther

    RememberOther附件下载https://adworld.xctf.org.cn/media/task/attachments/476d9022bb0449c09c0b1e24f0686b66.zip 分析先安装 然后看看逻辑...

    攻防世界-RememberOther
Please check the comment setting in config.yml of hexo-theme-Annie!