首页
社区
课程
招聘
[原创]新手关于ida动态调试so的一些坑总结
发表于: 2020-5-20 14:00 27678

[原创]新手关于ida动态调试so的一些坑总结

2020-5-20 14:00
27678

虽然Java层代码包含了许多有用的信息,但是一般稍微注重安全的应用都会把核心代码放到Native层,所以对Native层的调试就显得尤为重要了。

使用工具:

am + pm +IDA, 其中am和pm为安卓系统自带

android_server的目录为:IDA目录>dbgsrv>android_server

注意:

android_server分版本的,使用对应的版本。

等待附加。

pm(package manager)包管理工具.

列出所有的包信息:pm list packages [filter]

am是activity manager的缩写

am启动程序命令:am start -D -n com.example.testarm/.MainActivity

am start -D -n调试模式打开应用

com.example.testarm要调试启动的包名

.MainActivityLunch Activity

启动后等待调试器的链接。

<img src="upload/attach/202005/869791_NVBFYY56EP86ZF6.jpg" style="zoom: 25%;" />

用IDA打开想要调试的so库。

选择Remote ARM Linux/Android debugger

设置调试选项

设置主机和端口

选择要调试的程序进行附加

弹出对话框表示全部加载完成了.

此时会显示出PC的位置

IDA 按F9,继续执行.

8700为apk运行的端口, 根据实际情况更改.

确定port的方法

使用ddms(monitor)

注意:以前monitor为Android Studio自带, 从2019年下半年开始的Android Studio删除了这些工具.

提取的ddms:https://www.jianguoyun.com/p/DWps1OsQ9oe6CBjP15oD (访问密码:HrhFnH)

same

Yes

F2下断点

F7单步步入

F8单步步过

F9执行到下个断点

由于没有设置参数,所以经常有下面的错误提示, 忽略或者随便给个参数

没有进行端口映射

adb forward tcp:23946 tcp:23946

android_server未开启

可附加的程序过少

启动android_server的用户权限低.用root用户运行android_server来监听.

ida调试版本的so和正在运行的so不一致

jdb连接失败


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-5-20 17:44 被nisodaisuki编辑 ,原因: 增加和修改错误
收藏
免费 8
支持
分享
最新回复 (24)
雪    币: 439
活跃值: (1223)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
gdb 应该是jdb吧
2020-5-20 16:35
0
雪    币: 273
活跃值: (139)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
猫子 gdb 应该是jdb吧
是的, 已经修改了
2020-5-20 17:46
0
雪    币: 1790
活跃值: (3894)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
非常感谢分享。
其实可以把安卓常见的一个ANTI DEBUG的也一起整理下。 就更赞了
2020-5-21 13:06
0
雪    币: 29177
活跃值: (63586)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
5
感谢分享哦
2020-5-25 11:09
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
请问楼主使用是哪个版本IDA,本人使用7.0版本IDA运行在Catalina上,设置完suspend on library load,并F9运行后,启用jdb调试,好像仍然会被反调试线程干掉。
jdb crash堆栈信息:
java.io.IOException
       at jdk.jdi/com.sun.tools.jdi.VirtualMachineManagerImpl.createVirtualMachine(VirtualMachineManagerImpl.java:238)
       at jdk.jdi/com.sun.tools.jdi.VirtualMachineManagerImpl.createVirtualMachine(VirtualMachineManagerImpl.java:245)
       at jdk.jdi/com.sun.tools.jdi.GenericAttachingConnector.attach(GenericAttachingConnector.java:120)
       at jdk.jdi/com.sun.tools.jdi.SocketAttachingConnector.attach(SocketAttachingConnector.java:83)
       at jdk.jdi/com.sun.tools.example.debug.tty.VMConnection.attachTarget(VMConnection.java:530)
       at jdk.jdi/com.sun.tools.example.debug.tty.VMConnection.open(VMConnection.java:339)
       at jdk.jdi/com.sun.tools.example.debug.tty.Env.init(Env.java:63)
       at jdk.jdi/com.sun.tools.example.debug.tty.TTY.main(TTY.java:1117)

安装包来源:https://github.com/swfangzhang/IDA-pro-7-for-Catalina-OSX-15,麻烦楼主解答一下,可以联系我QQ550279039,有偿
2020-5-28 22:27
0
雪    币: 19956
活跃值: (4952)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
感谢分享
2020-5-29 14:11
0
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
阳哥牛逼
2020-6-3 14:18
1
雪    币: 273
活跃值: (139)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
mb_eoyexdco 请问楼主使用是哪个版本IDA,本人使用7.0版本IDA运行在Catalina上,设置完suspend on library load,并F9运行后,启用jdb调试,好像仍然会被反调试线程干掉。 jd ...
52破解分享的ida版本。ida70
2020-6-4 15:09
0
雪    币: 11
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
monitor 没删除,在 \sdk\tools\lib 里
2020-6-6 14:41
0
雪    币: 273
活跃值: (139)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
落花人独立 monitor 没删除,在 \sdk\tools\lib 里
在最新的版本中是被移除了。sdk路径下没有tools文件夹
2020-6-24 14:44
0
雪    币: 2468
活跃值: (5088)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
12
lz在调试过程中,可以正常使用TAB建与f5吗 ,我调试的时候这两个都失效了
2020-6-28 13:34
0
雪    币: 8608
活跃值: (6589)
能力值: ( LV12,RANK:207 )
在线值:
发帖
回帖
粉丝
13
感谢分享!
2020-6-28 14:09
0
雪    币: 348
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
在調試時,下断断不下去,提示signal error
2020-6-28 20:11
0
雪    币: 259
活跃值: (283)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
maark
2020-6-28 21:01
0
雪    币: 1454
活跃值: (267)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
感谢大佬分享
2020-6-29 09:55
0
雪    币: 148
活跃值: (780)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
最难受的是有的时候monitor看不到端口号,很烦人。多试几次又可以了。修改过root手机debug属性,还是会出现找不到的情况,有没有哪位大佬能一劳永逸的???
2020-6-29 21:11
0
雪    币: 3139
活跃值: (588)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18

!!!!!!

最后于 2020-8-4 22:13 被小hanger编辑 ,原因:
2020-8-4 21:02
0
雪    币: 19
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
感谢分享
2020-8-5 06:25
0
雪    币: 7
活跃值: (344)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
这个问题解决了吗?
2021-2-22 22:06
0
雪    币: 7
活跃值: (344)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
mb_eoyexdco 请问楼主使用是哪个版本IDA,本人使用7.0版本IDA运行在Catalina上,设置完suspend on library load,并F9运行后,启用jdb调试,好像仍然会被反调试线程干掉。 jd ...
这个问题解决了吗
2021-2-22 22:09
0
雪    币: 1263
活跃值: (66)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
正在找相关的资料~楼主的资料让我看到了希望~我目前还没空,过两天试试~感谢的分享
2021-2-25 08:46
0
雪    币: 230
活跃值: (998)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
nisodaisuki 在最新的版本中是被移除了。sdk路径下没有tools文件夹
得自己在SDK Manger中SDKTools自行下载
2021-7-20 20:25
0
雪    币: 273
活跃值: (139)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
Magic丶 得自己在SDK Manger中SDKTools自行下载
好像是的,当时安装的时候没有完全安装。
2021-10-22 09:08
0
雪    币: 1255
活跃值: (780)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
感谢分享
2021-10-26 08:54
0
游客
登录 | 注册 方可回帖
返回
//