cmb反调试

2019-08-12  本文已影响0人  超威蓝猫l

根据帖子所说https://www.52pojie.cn/thread-974881-1-1.html,调试器一附加,就会整个结束。

但是我这边附加上去后啥事没有,也没退出,就只好根据他的帖子走一下。

查看死亡前的 logcat 果然找到了一些蛛丝马迹:
2019-06-06 22:20:39.675 32678-32685/cmb.pb E/2g.out: libdvm_dvmDbgActive_stub called
2019-06-06 22:20:39.730 32678-32685/cmb.pb I/art: Debugger is active
2019-06-06 22:20:39.730 32678-32685/cmb.pb E/2g.out: kill:libdvm_dvmDbgActive_stub

根据文章所述,退出的时候会打这几个log

ALT + T 搜索“ libdvm_dvmDbgActive_stub”,果然很快就找到了关键代码,F5反编译,原形毕露。

image.png image.png

交叉引用

image.png

查看交叉引用,果然,该壳 Hook 了 libart.so 的 _ZN3art3Dbg8GoActiveEv() 函数,在调试器附加的时候,该函数被调用,实际调用的是被 Hook 替换后的 sub_1B330() 函数,然后在 sub_1B330() 函数中使用 unix api kill() 结束自身。

查看交叉引用,果然,该壳 Hook 了 libart.so 的 _ZN3art3Dbg8GoActiveEv() 函数,在调试器附加的时候,该函数被调用,实际调用的是被 Hook 替换后的 sub_1B330() 函数,然后在 sub_1B330() 函数中使用 unix api kill() 结束自身。
image.png 这个操作在 image.png image.png

保存在这里

adb push libCmbShield.so /sdcard/
adb shell
su
cp /sdcard/libCmbShield.so /data/app/cmb.pb-1/lib/arm/

然后push到手机上

当然。没法验证。因为我手机不知道为啥没有闪退

上一篇下一篇

猜你喜欢

热点阅读