java逆向断点_安卓逆向之java层反调试isDebuggerConnected

在做某app的so层逆向时,发现ida附加jdb,在linker加载so的时候崩了。发现了java层的Debug.isDebuggerConnected()。

虽然不是因为这个原因导致的ida动态调试失败,但是在网上查阅怎么绕过java层反调试的时候,发现全网都是抄一份百度加固的Debug.isDebuggerConnected(),说是改smali然后回编译。然而根本没用,现在的app都有签名校验,改完回编译app根本打不开。所以在这里记录一下绕过方法。

其实很简单,直接hook系统函数isDebuggerConnected(),修改返回值为false就可以了。我用的是frida做hook。

frida代码:

7cef72c3edbd3a7efc6c9f5bcd077313.png

自己写了一个比较简单的Android代码测试,如果检测到调试器就会打印检测到调试器,否则就会打印hello C++。这里我为了练习,调用native层的方法来给res赋值。

6a4f4f3f2b3ac37123e2ab61b909bd10.png

断点打在判断debug之前,然后debug模式启动,打开frida。

Hook截图:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值