ida调试php扩展,IDA Pro 调试 ARM 可执行文件

1. 编写arm可执行文件

Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := main

LOCAL_SRC_FILES := main.s

include $(BUILD_EXECUTABLE)

Application.mk

APP_ABI := armeabi

APP_PIE := true

main.s

.archarmv7a

.text

.align 2

.global main

.type main, %function

main:

.code 32

@保存环境

STMFDSP!, {LR}

@获取CPSR寄存器状态

MRSR1, CPSR

@设置CPSR寄存器状态

@仅可以设置的标志位有:N Z C V Q

MVNR2, #0

MSRCPSR_cxsf, R2

@恢复环境

LDMFDSP!, {PC}

生成可执行文件

ndk-build

推送到手机

#makefile

all:

adb push ./libs/armeabi/main/data/local/tmp

adb shell chmod 777 /data/local/tmp/main

adb shell /data/local/tmp/main

若之前没有推送过android_server到手机,请添加推荐android_server部分,这里我将android_server拷贝到了程序文件目录。

adb push ./libs/armeabi/android_server /data/local/tmp

adb shell chmod 777 /data/local/tmp/android_server

2. 开启android_server

> adb shell

$ su

# /data/local/tmp/android_server

3. 设置本地端口映射

> adb forward tcp:23946 tcp:23946

4. ida 打开程序调试

设置调试信息

菜单栏Debugger,选择

4131da4127a8c8207a48be989d6f5258.png

设置Process options

1958cd02b08032233b2ed1e7b1c0de15.png

如有必要,设置断点位置在OEP处

ebcc47de2a77e4bd88e1fe90f3cbb7ed.png

5. 开始调试

ida快捷键F9开始调试,

定位main函数

如果你的ida定位到了.text代码段,

101437b10f18ccc167baf63b7c4b1ace.png

向下找,找到第一个BL调用,按F4执行到这一行,

e329d550a87f98218db61cfa720c753d.png

观察R2寄存器的值,R2寄存器的值就是main函数地址,

39ebc2eb97176fde1bf47dc635c5d195.png

按g,输入R2的值,就跳转到了main函数,如果没解析,按C转为代码。

d25ca42ad3d8f211615ae8494b34a7b2.png

接下来,F2/F7/F8调试即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值