android binary for beginner
Android二进制调试入门
设备开启调试模式
magisk版本
1 |
|
kernelSU版本
1 |
|
开启成功后:

调试模式启动APP
adb shell am start -D -n 包名/主Activity
包名获取方法
方法(1):
打开APP,然后输入adb shell dumpsys window | findstr mCurrentFocus

方法(2):
jeb查看,由于(1)中Activity不一定是MainActivity,所以jeb直接查看更好
如图第二行package="com.excelliance.dualaid"即是包名

搜索MAIN即可找到MainActivity

然后我们输入命令:
adb shell am start -D -n com.excelliance.dualaid/com.excelliance.kxqp.ui.EmptyActivity

IDA PRO连接
(1)启动android_server
然后打开IDA
PRO安装目录,选择合适架构的android_server
,adb push android_server64 /data/local/tmp

启动android_server64(必须使用su,否则IDA中只能看到很少的进程)
1 |
|

然后输入adb forward tcp:23946 tcp:23946

(2)开启jdwp
查看调试进程pid,adb shell ps | findstr com.excelliance.dualaid

转发adb forward tcp:8700 jdwp:28865
(3)IDA PRO Debugger设置
打开IDA PRO

选择架构
这里我选择Android

Debugger options
打开Debugger中的Debugger options

设置在特定事件触发暂停

设置连接地址和端口

Attach
然后点击Debugger
->Attach to process
,并找到要调试的进程,双击连接

连接后:

此时就可以打断点了
使APP继续运行
jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700
我超,我写过一遍了吗已经,我的脑子完全坏掉了真是