|
|
程序壳:爱加密
描述:爱加密有反调试功能,无法直接给关键函数下断点,所以只能单步跟踪到它检测反调试的地方修改比较值,从而跳过反调试。壳程序通过读取进程文件(/proc/uid/status)中的TracerPid属性来确认自己是否被调试,该属性如果不为0则说明程序是被调试状态。如果要获取该文件的值那么必然是有读写操作的,通过在读写函数地方下断点,就可以修改它的值从而骗过反调试。即只要在fopen和fgets处下断点单步跟踪就可以了(函数在libc.so)。
二.调试准备
安装IDA Pro 服务器:
adb push android_server /data/local/tmp
设置服务器运行权限:
cd data/local/tmp/ chmod 777 android_server
运行服务:
adb shell & cd /data/local/tmp & ./android_server
设置端口转发:
adb forward tcp:23946 tcp:23946
调试运行
adb shell am start -D -n android.support.v8/android.support.v7.q448870015
IDA 附加进程调试
Debugger -> Attach
Ctrl+F 搜索 android.support.v8
函数下断点
Modules中搜索 libc.so
给fopen,fgets下断点
Modules 中搜索 libdvm.so
给dvmDexFileOpenPartia 下断点
jdb调试
打开monitor
鼠标选中要调试的进程(android.support.v8)
jdb–connect com.sun.jdi.SocketAttach:hostname=localhost,port=8700
|
|