吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4326|回复: 26
收起左侧

[Android 分享] 新手记录ida调试安卓so踩坑

  [复制链接]
dhans 发表于 2023-10-24 10:59
#新手记录IDA调试安卓so踩坑
####环境及工具
* IDA_Pro_7.7
* window10
* 真机Pexel XL(root)
* 系统andrioid9
* Andrioid  Device Monitor(非必须)
  
####准备工作
1、ida安装目录下的dbgsrv/android_server64
image.png
执行命令将调试服务放入安卓机器
打开cmd到当前目录
`1、adb push andrioid_server64 /data/local/tmp/as `    将服务push入安卓机器中并且改名为as
`2、adb shell`  进入安卓命令行
`3、su`  切换root权限
`4、cd /data/local/tmp`  进入目录
`5、chmod 777 andrioid_server64`  修改andrioid_server64权限
`6、./andrioid_server64 -p12345`  启动服务 -p为启动端口参数可以不加 不加默认就是23946端口
image.png
`7、adb forward tcp:12345 tcp:12345` 打开新的cmd 转发端口
image-1.png

2、启动ida及其他设置
image-2.png
我这里是64位的所以启动ida64.exe
image-3.png
打开需要调试的so
image-4.png
点exports找到需要调试的代码
image-5.png
我这里是demo所以就在导出函数里面
image-6.png
双击进入汇编
image-7.png
tab进入伪C代码
image-8.png
f2打上需要调试的代码debugger
image-9.png
真机调试模式选择这个
image-10.png
简单调试点击这个就好了 不要点击倒数第二个在库加载/写在时挂起(`当时就是看了其他教程点击了这个 结果发现这个是库加载的时候就会挂起在断点上 导致迟迟debugger不到自己设置的点上--小白踩坑`)
image-12.png
主机localhost/127.0.0.1都可以 端口就是刚刚转发出去的端口这里是12345
3、apk为设置为debugger模式
! image-13.png
`adb shell am start -n "com.example.myapplication/com.example.myapplication.MainActivity"  -D` 这里 ""里面的是apk的入口
image-14.png
image-15.png
附加到进程
image-16.png
选择要调试的进程  这里可以用ctrl+f搜索
image-17.png
加载完对应东西后会在这里断住
image-20.png
打开Andrioid  Device Monitor  我这里安卓了andrioid SDK 所以 对应的tools/lib下有对应的monitor 这里有一个坑 就是 这个monitor 只有安装了JDK1.8才可以打开 其他版本会报错
`jdb -connect com.sun.jdi.SocketAttach:port=8700,hostname=localhost` 执行命令 image-19.png
等待初始化就可以了 image-21.png


image-22.png
这样就可以了 已经进入打的断点里面了
#####这里最需要注意的就是
image-23.png


选项 新手应该是暂时不需要的 这里是库加载的时候就会挂起/卸载断点   新手第一次调试不用勾选这个
image-11.png
image-18.png

免费评分

参与人数 4吾爱币 +11 热心值 +4 收起 理由
junjia215 + 1 + 1 谢谢@Thanks!
janken + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
debug_cat + 2 + 1 用心讨论,共获提升!
正己 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

爱飞的猫 发表于 2023-10-25 19:37
ajun2019 发表于 2023-10-24 15:02
佩服大佬~写的很详细,很认真!
我用模拟器连接IDA 没有一次成功的,我在想要不要也root一台手机试试。
...
为什么在逆向安卓的时候,那么多so文件


你可以想象成 Windows 为什么要那么多 dll。

很多功能在 Java 层做不到,就会在 native 里做,然后导出接口在 Java 层使用。也有些是因为性能原因。
ajun2019 发表于 2023-10-24 15:02
本帖最后由 ajun2019 于 2023-10-24 15:03 编辑

佩服大佬~写的很详细,很认真!
我用模拟器连接IDA 没有一次成功的,我在想要不要也root一台手机试试。

我有个疑问,为什么在逆向安卓的时候,那么多so文件,根本不知道app调用了哪个so文件,导致每次一看到调用native或者interface,就蒙了。

点评

你可以想象成 Windows 为什么要那么多 dll。 很多功能在 Java 层做不到,就会在 native 里做,然后导出接口在 Java 层使用。也有些是因为性能原因。  详情 回复 发表于 2023-10-25 19:37
 楼主| dhans 发表于 2023-10-24 11:16
Hmily 发表于 2023-10-24 11:32
论坛支持markdown写作,要想使用可以点击MD那个按钮进行输入,其实就是增加一个标签。
 楼主| dhans 发表于 2023-10-24 15:15
ajun2019 发表于 2023-10-24 15:02
佩服大佬~写的很详细,很认真!
我用模拟器连接IDA 没有一次成功的,我在想要不要也root一台手机试试。
...

我也刚学不久哈~ 这个坑我解决了好几天! 就寻思发出来让大家刚学的时候注意一下。以免刚入坑就弃坑了!  如果可以的话 最好就买一部root过的手机 网上也有一些200/300的 模拟器和真机好像区别蛮大的
 楼主| dhans 发表于 2023-10-24 15:49
dhans 发表于 2023-10-24 11:16
最后一张图是  Andrioid  Device Monitor 的 路径

多次试验证明   Andrioid  Device Monitor 这个东西也是需要开的!!!!
ias想 发表于 2023-10-24 23:05
最近在研究OLLVM 混淆
潘佳乐 发表于 2023-10-25 12:47
dhans 发表于 2023-10-24 15:15
我也刚学不久哈~ 这个坑我解决了好几天! 就寻思发出来让大家刚学的时候注意一下。以免刚入坑就弃坑了!   ...

大佬在哪里学的啊?
 楼主| dhans 发表于 2023-10-25 14:38
潘佳乐 发表于 2023-10-25 12:47
大佬在哪里学的啊?

b站各个论坛-。-
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-9 02:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表