1.把ida 目录下android_server 传到android 目录中如:.\adb push android_server /data/local/tmp/.\adb shell 进入模拟器cd /data/local/tmp/chmod 755 android_server./android_server看到监听端口 239462.在windows 控制台下转发window 到模拟器或者手机的端口.\adb forward tcp:12345 tcp:23946 //adb forward- forward socket connections //PC上所有12345端口通信数据将被重定向到手机端23946端口server上3.ida 中选择android 调试, app可以运行起来了在Debuggger 中的process options 的hostname 填上localhostport: 23946/我们要绕过壳的检测 就要做如下操作su root以后/data/local/tmp/android_server -p12345 //修改调试端口在pc机转发做如下设置adb forward tcp:23946 tcp:12345这样ida 附加依旧是打开23946端口
随记:
mprop工具 修改Android的default.prop使其可调试->
adb push .\libs\armeabi-v7a\mprop /data/local/tmp/adb shell "chmod 755 /data/local/tmp/mprop"
push进去以后
cd 到目录下 直接 ->
/data/local/tmp/mprop
执行 ->
这样就代表执行成功了
这样就能修改这个原来只读的值 ->
setprop ro.debuggable 1
确保修改后 这个参数为1 ->
getprop ro.debuggable
得到1 代表成功
恢复修改的字节的方法->
/data/local/tmp/mprop -r
别忘记需要重启一下adbd进程
stop;start
如果报错 也可以考虑关闭selinux->
setenforce 0
可以直接用命令看看什么程序可以调试->
adb jdwp
直接查看要关心的app的包名和进程id ->
adb shell dumpsys activity top 主要先要在手机上打开要调试的进程 并保持要调试的程序在安卓最前端
启动activityadb shell am start –D –n/ . 我反正没成功过
ida调试技术
首先在手机上安装 apk 可以使用 命令的方式
adb install XXX.apk
首先用new打开apk文件
->选择所有类型文件
->会提示你是zip文件点ok打开
->使用ctrl+f
->输入dex选择dex文件
->之后就可以在左边寻找函数 右边用f2下断点
->->下面修改调试参数
->输入adb的路径
使用 寻找入口,如果是加壳的文件 就可以用
adb shell dumpsys activity top
类似的方法
然后点击运行开始调试
如何查看寄存器的值呢?选中ida->debugger->use source level debugger,
然后点击ida->debugger->debugger windows->locals打开本地变量窗口,就可以查看寄存器的值了。
如果变量的值出现“Bad type”的情况,如下图所示:
可以按下述步骤解决:
点击“Debugger->Debugger windows->Watch view”,会弹出“Watch view”窗口:
然后在Watch view窗口中右击,选择“Add watch”:
然后在弹出的窗口中自己为变量添加一个类型,类似这样:
(Object*)v0(String)v0(char*)v0(int)v0
假设我们要设置v0寄存器值的类型为String类型,就在在弹出的对话框中输入(String)v0,点击“OK”就可以在Watch view窗口中看到变量值了。
注意:如果运行过程中一直显示如图3所示窗口,就需要关注一下你的手机屏幕,看是否是需要与用户进行交互了。
///
DDMS的使用:
1:必须先打开ddms 因为ddms会启动一个adb进程
2:连接手机或者打开模拟器
如图所示
ddms左下角有一个过滤器
->点击绿色加号增加信息过滤的规则,只显示关心的app的输出日志
->如图所示
这样下方输出的日志就是与字符串相关的了最好输出进程名
最右边 8627/8700是调试用端口
->如此就可以做简单的数据关联了
/
使用idea调试app
idea首先安装smailidea 到官网下载后 直接 安装zip包就能完成
依照前面的方法用ddms输出一个调试端口以后打开idea
用 apkiller反编译整个app
这个时候用idea加载 project文件夹 直接create新的工程就行
->smail文件夹设置为源码文件夹
->设置断点
只要添加一个remote工程,右下角改为8700或者ddms输出的另外一个端口都可以
开始执行,就能断在需要的地方了
/
判断安卓是32系统还是64