ARM 汇编代码1


ARM 汇编代码1

0x00:IDA

​ 逆向界的大哥大,分析能力很强,还自带F5强大功能,支持插件脚本等。

0x01:调试so动态库

在apk的lib目录下,存放的就是so文件,一般有几个目录:

Armeabi –arm编码的文件

aemeabi-v7a—arm新版编码文件

X86 —-Intel X86汇编文件

其他的,其他版本对应的汇编文件都是Android的EIF格式的

0x02:DalvikVM

IDA 动态分析

启动式调试:

A push IDA 目录下的android_sercer 到手机中的./data/local/temp中。

// adb android_server /data/local/tmp/and_server 有的软件会对android_server调试前进行监测,所以把文件名改了

B 启动服务端

chmid 777 android_server //给予权限 便于调试

C 启动

android_server ./android_server //在我们启动后 端口可以自己调整 -p 77777 把端口改为7777 360会默认监控默认端口 修改端口可以绕过

D 端口转发

adb forward tcp:pc_port(7777) tcp:mobile_port(7777)

E ida的调试端口设置

Debugger–> Process Iption –> Hostname:localhost Port:port //端口同步

F 程序启动

adb shell am start -D -n PackageName/ActivityName(mian里面的那个包名

G ida 的挂接
Debugger –>Attach to Process nnect (需要先打开monitor,类似与Java的调试)

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

0x03: arm 调试基本说明

快捷键,类似于OD
F2 下软件断点,F7单步步入,F8单步步过,F9运行,F4运行到鼠标所指
反编译窗口
寄存器窗口
数据窗口
堆栈窗口
输出窗口
模块窗口
函数窗口


备注:BL 目的地址 相当于X86的call pc跳转到目的地址 LR是下一步地址
详情见 百度 arm 汇编指令