Android逆向笔记-IDA Pro动态调试Android程序(真机)
Posted IT1995
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android逆向笔记-IDA Pro动态调试Android程序(真机)相关的知识,希望对你有一定的参考价值。
这里的安卓版本是:
android 5.1.1(Lollipop, API 22)
LGE Google Nexus 5
arm
使用的IDA为:IDA Pro 6.8
将android_server送到/data/local/tmp
adb push android_server /data/local/tmp
adb shell
su
mv android_server android_server6.8
chmod 777 android_server6.8
将程序跑起来:
root@hammerhead:/data/local/tmp # ./android_server6.8
./android_server6.8
IDA Android 32-bit remote debug server(ST) v1.19. Hex-Rays (c) 2004-2015
Listening on port #23946...
进行adb端口转发:
adb forward tcp:23946 tcp:23946
运行monitor.exe
D:\\AndroidStudioIDE\\sdk\\tools>monitor.bat
将apk改成debug版:
<?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.yaotong.crackme">
<application android:allowBackup="true" android:icon="@drawable/creakme2_logo" android:label="@string/app_name" android:debuggable="true">
<activity android:label="@string/app_name" android:name="com.yaotong.crackme.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name="com.yaotong.crackme.ResultActivity"/>
</application>
</manifest>
Android手机安装好后,启动:
adb shell am start -D -n com.yaotong.crackme/.MainActivity
此时手机上会出现Waiting For Degbugger
Android Device Monitor选中:
IDA打开选中此lib库
在此处下好断点;
再Debugger->Select debugger
再Debugger->Process options
输入127.0.0.1,然后ok
再选择附加的进程:
选中,点击OK
让其跑起来:
jdb -connect com.sun.jdi.SocketAttach:port=8700,hostname=localhost
此时点击这个运行:
命令行提示:
D:\\AndroidStudioIDE\\sdk\\tools>jdb -connect com.sun.jdi.SocketAttach:port=8700,hostname=localhost
设置未捕获的java.lang.Throwable
设置延迟的未捕获的java.lang.Throwable
正在初始化jdb...
>
>
IDA断点成功:
这个就是单步调试:
以上是关于Android逆向笔记-IDA Pro动态调试Android程序(真机)的主要内容,如果未能解决你的问题,请参考以下文章
Android逆向笔记-通过tracerPid对抗IDA调试
Android 逆向IDA 工具使用 ( 交叉引用数量设置 | 调试设置 )