防调试绕过姿势(IDA调试)

反反调试(IDA调试)

Step1 找崩点

在JNI_OnLoad下断点,单步调试到某崩点,分析一下。

Step2 patch byte code

方法1.单次运行时更改

附加so在运行的app上,此时代码在内存中,用IDA Hex View修改该处byte指令,然后"apply chages F2",即可在此次运行时改变其逻辑。[方便快捷;适用于单次调试或试水]

方法2.永久性更改

1. 修改获取dif文件 - 同上用用IDA Hex View修改该处byte指令,然后"apply chages F2", 再 File -> Produce file -> Create DIF file, 保存xxx.dif文件。它描述了哪里做了修改。此时so文件没有被修改。

2. 修改保存so文件 -```ida_patcher -i xxx.so -p xxx.dif```。这样就永久性保存了该修改获得没有反调试策略的so文件。

3. 重打包apk并重签名 - ```apktool -d xxx.apk```解压.apk包,替换so文件删除之前签名```META-INF```,再```apktool -b xxx/```重新打包,在xxx/dist/目录下, ```apksigner sign lcfan.jks xxx.apk```重新签名。

* 不要用apk->zip的解压方式,不然.xml会崩,adb install 时会爆出错误"Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION: Failed to parse /data/app/xxxxx.tmp/base.apk: AndroidManifest.xml]"

* apktool -d 解压apk包后,有些apk的xml文件依然会崩,因为厂家做了加固。xml二进制文件可用 vim -b AndroidManifest.xml :%!xxd 查看,手工dump。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、前言 今天我们开始apk破解的另外一种方式:动态代码调试破解,之前其实已经在一篇文章中说到如何破解apk了: ...
    JiangWei_App阅读 9,107评论 2 29
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,209评论 25 709
  • 长得丑,身材又不好,又没魄力和毅力,优柔寡断又没特长。 又不会说话还贪玩,游戏也打不好,怕困难怕失败,爱爆粗口,任...
    fb221de0b9ab阅读 1,651评论 0 1
  • 今天拍了一整天写真,我认为人这一生喜欢什么就要去做,所以我又拍写真了哈哈哈哈 马上又要8点了,签到了!!! 今天收...
    茗煜阅读 1,469评论 0 0
  • 一晌贪欢入金城 热浪腾空 万里云洁白 东流的河水 冲荡着断桥 漂浮着的羊皮筏子 是你苍老的记忆 穿梭的游艇 向世界...
    浩宇_90阅读 845评论 0 0