arm文件
- 安装qemu-arm虚拟机以及依赖
apt install re2c
apt install ninja-build
apt install build-essential zlib1g-dev pkg-config libglib2.0-dev
apt install binutils-dev libboost-all-dev autoconf libtool libssl-dev libpixman-1-dev libpython-dev python-pip python-capstone virtualenv
apt install libpixman-1-dev
apt install bison flex
apt install meson
apt install libpixman-1-dev
apt-get install libpcap-dev libnids-dev libnet1-dev
apt-get install libattr1-dev
apt-get install libcap-ng-dev
qemu-arm –version #用于检查安装是否成功
qemu-arm -g 23946 文件
启动程序。
23946是ida默认端口,也可以自己换。
ifconfig #查看ip地址
在ida上选择remote GDB debugger调试输入地址就行即可。
apk文件
用jeb进行调试,需要app或模拟器开启debug调试
adb启用应用调试
adb shell am start -D -n 包名/类名
例如: adb shell am start -D -n com.zhuotong.easyctf2/.MainActivity
记得加点在mainactivity前
下断点快捷键:ctrl+B,只能在汇编页面下断点
然后在jeb里面连接,在右侧就可以看到变量的值
注意,有些值可能不在这个外层方法使用,这个时候我们要先单步进入到方法里面才可以拿到值
so文件
先把ida的调试文件用adb push到机器里面,然后赋予执行权限,启动合适的服务。
adb root
adp push filelocation /data/local/tmp
adb shell
su
setenforce 0 #关闭进程保护
cd /data/local/tmp
chmod 777 *
./fliename
adb forward tcp:23946 tcp:23946 #新开一个命令行设置端口转发
adb shell dumpsys activity top #获取前端的包名
接下来打开安卓sdk中自带的ddms,输入下面命令启动程序
adb shell am start -D -n 包名/.类名 #启动应用调试
示例: adb shell am start -D -n com.test.app/.MainActivity
在ddms中记住调试进程的端口。现在来到ida中配置,选择debugger,process options,在hostname中填入127.0.0.1,port默认23946,然后再到debugger中选择attath to process,选择要调试的安卓进程。记得打上一个断点,进入后会卡住,这时候我们输入,其中port后面的数字就是我们记住的端口。
jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700