宸道移动安全 发表于 2020-10-19 15:31

反调试-Java层反调试

安卓程序动态调试需要满足两个条件。

1.在AndroidMainfest.xml文件中,在application标签下,Android:debuggable=true。
2.系统默认调式,在build.prop(boot.img),ro.debugable=1。

一: 实例演示java层反调试


以“百度加固”为例。

1.将样本拖入jdax-gui中,进行反编译,来到加固程序的onCreate        里,如下图所示。



2.找到attachBaseContext方法,里面有一个判断,调用这个Debug. isDebuggerConnected函数来检测程序是否被调试反调,从而执行是否加载so库的逻辑操作,如下图所示。




二:绕过Java层反调试的方法

1.使用androidkiller进行反编译,然后搜索isDebuggerConnected,如下图所示。



2.过来后,修改判断条件,将nez改为eqz,如下图所示。



4.修改smali之后,将apk重新打包,编译,再签名即可。

小结

在今天的分享当中,绍了java层反调试的原理,通过一个反调试的例子,实操过掉Java层反调试。

欧雨鹏 发表于 2020-10-21 12:49

我去,楼主,你这贴子水贴水的好。。我都不敢发的,你竟然发出来了。前面说的isDebug,可以理解。后面用killer修改你都出做得出来。你不知道现在的加固都是防止二次打包的吗?直接反编译了,这样修改没脱没修复直接这样修然后打包了。就算安装成功,运行得起来吗?

宸道移动安全 发表于 2020-10-21 09:13

那年夏天52 发表于 2020-10-19 16:11
从学破解转过来的?你确定是原创???

是原创啊,那你有没有想过是同一个人呢

那年夏天52 发表于 2020-10-19 16:11

从学破解转过来的?你确定是原创???

跑得快有糖吃 发表于 2020-10-19 17:29

虽不明但觉厉,希望有一天我也这么厉害{:1_927:}

xaibin 发表于 2020-10-19 18:12

我是不是在哪里看到过?

nue12138 发表于 2020-10-19 19:09

就这?新手都会吧,这不都是常识吗,原创?

xiaodai_568 发表于 2020-10-19 21:45

这是伪原创

sojurice 发表于 2020-10-20 08:33

正好正在学这个,学习一下。

芽衣 发表于 2020-10-20 08:56

讲了跟没讲一样{:301_983:}

现在根本没人这么设计app

zhaoxiaohua125 发表于 2020-10-20 13:42

感谢分享,又学到一招

骑狗的猴子 发表于 2020-10-20 14:04

感觉已经涉及到我的知识盲区了
页: [1] 2
查看完整版本: 反调试-Java层反调试