码迷,mamicode.com
首页 > 移动开发 > 详细

Android 逆向初探(二)

时间:2016-12-18 23:54:15      阅读:750      评论:0      收藏:0      [点我收藏+]

标签:libc   数据   ida   title   问题   XML   man   知识库   key   

一、对android app进行分析时, 需要对其进行动态调试。

1、IDA 附加进行调试

将ida目录中的android_server push到安卓手机上

adb push android_server /data/local/tmp

1)、执行android_server:

adb shell /data/local/tmp/android_server

2)、端口转发:

adb forward tcp:23946 tcp:23946

3)、调试模式启动程序,手机界面会出现Waiting For Debugger页面

ddms

adb shell am start -D -n 包名/类名

4)、打开32位的IDA,IDA附加并设置调试选项

GO -> Debugger -> Remote ARMLinux/Android debugger

 技术分享

Debugger — Debugger Options

 技术分享

 5)命令行中执行: 

ddms(为了使用jdb命令)

jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700 

其中port=8700是从ddms中看到的。

 6)、下断点

附加完成之后,会停在so模块中。此时按下Ctrl + S,弹出模块列表框,搜索so文件名。

记录下基地址。要下断点的函数加上ida静态分析时的偏移地址,得到内存中的地址,G跳转到该函数处,F2下断点。

7)、 F9运行

8)、 断下

使用F8进行单步调试,F7进行单步跳入调试。

2、dd命令直接dump内存中so的数据

1)、运行app

2)、将内存里的数据拷贝出来。

adb shell

su

ps | grep com.tyomcat.crackme  获取so的进程ID

cat /proc/(PID)/maps | grep libcrackme.so 获取so在内存中的基地址

dd if=/proc/(PID)/mem of=/sdcard/1.mem bs=1 skip=(so的基地址)  count=(so文件大小)

adb pull /sdcard/1.mem  

3、用kill命令杀死进程

1)、执行android_server:adb shell /data/local/tmp/android_server

2)、端口转发adb forward tcp:23946 tcp:23946

3)、运行程序

4)、ps 获取pid

5)、命令:kill -19 <pid>   可以让进程暂停

6)、IDA附加,动态调试。

二、反调试技术

1、循环检测TracePid的值,如果为0,那么代表app进程在被trace,那么就直接停止退出程序。

  IDA是使用android_server在root环境下注入到被调试的进程中,那么这里用到一个技术就是Linux中的ptrace,那么Android中如果一个进程被另外一个进程ptrace了之后,在他的status文件中有一个字段:TracerPid 可以标识是被哪个进程trace了,我们可以使用命令查看我们的被调试的进行信息。

cat /proc/(PID)/status

2、执行jdb命令时报错

技术分享

无法连接到目标的VM,那么这种问题大部分都出现在被调试程序不可调试,在AndroidManifest.xml添加android:debuggable属性:

技术分享

回编译:java -jar apktool.jar b -d out -o debug.apk

签名apk:java -jar .\sign\signapk.jar .\sign\testkey.x509.pem .\sign\testkey.pk8 debug.apk debug.sig.apk

 

Android 逆向初探(二)

标签:libc   数据   ida   title   问题   XML   man   知识库   key   

原文地址:http://www.cnblogs.com/tyomcat/p/6195627.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!