安卓 调试笔记 不断更新

1.把ida 目录下android_server 传到android 目录中
如:
.\adb push  android_server /data/local/tmp/
.\adb shell 进入模拟器
cd /data/local/tmp/
chmod 755 android_server
./android_server
看到监听端口 23946

2.在windows 控制台下转发window 到模拟器或者手机的端口
.\adb forward tcp:12345 tcp:23946   //adb forward <local> <remote> - forward socket connections
                                    //PC上所有12345端口通信数据将被重定向到手机端23946端口server上
3.ida 中选择android 调试, app可以运行起来了
在Debuggger 中的process options 的
hostname 填上localhost
port: 23946

/
我们要绕过壳的检测 就要做如下操作
su root以后
/data/local/tmp/android_server -p12345  //修改调试端口
在pc机转发做如下设置
adb forward tcp:23946 tcp:12345

这样ida 附加依旧是打开23946端口

http://blog.csdn.net/deathmemory/article/details/51489818

http://blog.csdn.net/jiangwei0910410003/article/details/51769447

http://blog.csdn.net/mingzznet/article/details/51830344

http://www.wjdiankong.cn/android中xposed框架篇-基于xposed的一款脱壳神器zjdroid工具原理解析/

随记:

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

执行 ->

165607_LBX0_2897384.png

这样就代表执行成功了

这样就能修改这个原来只读的值 ->

setprop ro.debuggable 1

确保修改后 这个参数为1 ->

getprop ro.debuggable

144303_kwEZ_2897384.png  得到1 代表成功

恢复修改的字节的方法->

/data/local/tmp/mprop -r

别忘记需要重启一下adbd进程

stop;start

如果报错 也可以考虑关闭selinux->

setenforce 0

可以直接用命令看看什么程序可以调试->

adb jdwp

145015_ViHg_2897384.png

直接查看要关心的app的包名和进程id ->

adb shell dumpsys activity top 
主要先要在手机上打开要调试的进程 并保持要调试的程序在安卓最前端

 

启动activity
adb shell am start –D –n <package name>/<package name>.<activity>
我反正没成功过

 

ida调试技术

首先在手机上安装 apk 可以使用 命令的方式

adb install XXX.apk

171933_xKyO_2897384.png

首先用new打开apk文件

172000_t7vi_2897384.png->选择所有类型文件

172017_84KH_2897384.png->会提示你是zip文件点ok打开

172037_Hsj4_2897384.png->使用ctrl+f

172122_tPZh_2897384.png->输入dex选择dex文件

172448_ggjm_2897384.png

->之后就可以在左边寻找函数  右边用f2下断点

172609_nGDN_2897384.png->172633_AkTM_2897384.png->下面修改调试参数

172657_ameD_2897384.png->输入adb的路径

使用 172722_OBVA_2897384.png 寻找入口,如果是加壳的文件 就可以用

adb shell dumpsys activity top 

类似的方法

然后点击运行172839_61zy_2897384.png开始调试

如何查看寄存器的值呢?选中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:连接手机或者打开模拟器

180347_y4cz_2897384.png如图所示

ddms左下角有一个过滤器

180429_o29d_2897384.png->点击绿色加号增加信息过滤的规则,只显示关心的app的输出日志

180526_kU3M_2897384.png->如图所示

这样下方输出的日志就是与字符串相关的了最好输出进程名180631_gXPh_2897384.png

180639_1mrL_2897384.png最右边 8627/8700是调试用端口

180907_r6az_2897384.png

->如此就可以做简单的数据关联了

/

使用idea调试app

idea首先安装smailidea 到官网下载后 直接 182709_TioD_2897384.png安装zip包就能完成

依照前面的方法用ddms输出一个调试端口以后打开idea

用 apkiller反编译整个app182837_TQoN_2897384.png

这个时候用idea加载 project文件夹 直接create新的工程就行

182925_FVQI_2897384.png

->smail文件夹设置为源码文件夹

183005_2QW2_2897384.png->设置断点

183034_zLW7_2897384.png只要添加一个remote工程,右下角改为8700或者ddms输出的另外一个端口都可以

183120_Ivc2_2897384.png开始执行,就能断在需要的地方了

 

/

判断安卓是32系统还是64

http://www.jianshu.com/p/8686931d31f0

转载于:https://my.oschina.net/9199771/blog/1544780

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值