安卓逆向—反调试汇总

本文详细介绍了安卓应用反调试的原理和实现方法,探讨了如何通过反调试技术使apk在被调试时产生错误结果,特别是在逆向算法过程中,如何通过数据运算检测并干扰调试过程。
摘要由CSDN通过智能技术生成

给大家介绍一下反调试汇总的原理及实现方式,以及各种反调试的扩展

在这里插入图片描述
反调试汇总:
针对于一些大型apk 反调试不一定是让你不能调试 -> 让你得到一个错误的结果
逆向某一个算法 传参 中间会根据一些数据运算 如果检测到反调试 计算错误

**1.IDA调试端口检测**
	监测android_server文件端口信息 默认的23946(5D8A) 
	更改端口 31927  -> 过掉此反调试

**2.调试器进程名检测**
	监测android_server gdbserver gdb等进程
	通过ps命令来监测有没有相应的进程信息 android_server as
	更改android_server文件名 -> 过掉反调试
	
**3.父进程名检测**
	app应用的进程都是由zygote fork 而来 也包括系统应用
	vs远程调试 用可执行文件加载so:父进程名为gdbserver
	
**4.自身进程名检测**
	多用于单独调用so  包括 apk来调用so 可执行文件调用so 
	apk来调用so -> 包名与原apk的包名一致
	
	LoadLibrary()函数加载so文件 仅有这种情况  除非它是自定义linker加载so文件(360壳)

**5.apk线程数量检测**
	比如说:我们写了一个demo apk 来调用so文件(要调试的apk比较大 环境比较复杂 调试的时候容易跑蹦)
	demo apk线程数量一般 不是很多,相较于原apk
	
	找到检测点 nop掉
	
**6.apk进程fd文件检测**
	类似于apk线程数量检测
	/proc/pid/fd/文件个数差异	
	检测apk是否以debug模式启动 即使进行ida调试了 程序的大部分功能依然没有运行 所以fd文件较正常偏少
	
	找到检测点 n
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值