android 反调试插件,GitHub - weikaizhi/AntiDebug: android apk反调试工具,反hook、反xposed、反virtual xposed、反substrat...

AntiDebug

android apk反调试工具,反hook、反xposed、反virtual xposed、反substrate

该项目主要实现android app反第三方调试功能,主要功能用c++实现,因为考虑到用java实现会被xposed等功能拦截,导致反调试功能失效。

该项目使用 attribute ((visibility ("hidden"))) 隐藏了关键的函数符号,避免被静态分析。

主要的思路和步骤如下:

native层主要工作:

1.检测进程status文件TracerPid字段状态,如果该状态不为0,表示native层代码被调试

2.检测进程的maps文件,app进程中加载的所有模块信息地址均会写入该文件中。我们分析是否有com.saurik.substrate/io.va.exposed/de.robv.android.xposed等一系列敏感模块信息来判断是否被反调试

3.检测进程的调试器状态,首先检测app是否处于Debug模式,然后检测java层调试器是否打开。如果处于Release模式并且调试器打开,说明被反调试

java层主要工作:

在关键业务的地方调用AntiDeubg.isInject()方法,判断进程的堆栈是否包含两次com.android.internal.os.ZygoteInit信息。正常情况只会调用一次,如果app被xposed注入,被调用两次。

使用方法:

在Activity中调用此方法注册监听即可,AntiDebug.setAntiDebugCallback(this);

Native层会实时监测进程状态,如果监测到被反调试会回调到beInjectedDebug方法中,详情见Demo。

如有问题欢迎提Issues。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值