博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安卓 调试笔记 不断更新
阅读量:6692 次
发布时间:2019-06-25

本文共 2373 字,大约阅读时间需要 7 分钟。

hot3.png

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

执行 ->

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 主要先要在手机上打开要调试的进程 并保持要调试的程序在安卓最前端

 

启动activityadb shell am start –D –n 
/
.
我反正没成功过

 

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

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

你可能感兴趣的文章
GridView之数据邦定(HYPERLINK)小技巧与从数据库取汇总参数传值
查看>>
面试问题总结
查看>>
HTML特殊转义字符列表
查看>>
2、NIO--缓冲区(Buffer)
查看>>
3、集合--AbstractCollection、AbstractList源码
查看>>
如何较为直观的打印二叉树
查看>>
2014年计划:
查看>>
USACO习题:Broken Necklace
查看>>
打包命令
查看>>
POJ 1679 The Unique MST 【最小生成树/次小生成树模板】
查看>>
什么是动态链接库
查看>>
mysqldump 定时任务 执行后备份的文件为空
查看>>
Python-Django 模型层-单表查询
查看>>
Windows Redis默认配置文件,Redis配置不生效解决方案
查看>>
oracle-------window安装
查看>>
学习打卡-2018/07/25
查看>>
python 网络编程---粘包
查看>>
I/O完成端口、异步I/O、APC和线程池(四)——线程池
查看>>
获取Java程序运行的路径 | 获取当前jar包的路径
查看>>
摆脱京城贵妇unittest的骚套路discover,自定义用例执行顺序。
查看>>