首页
社区
课程
招聘
[求助] 如何使用ida在apk执行前动态调试其so中的函数
2013-9-11 22:39 71094

[求助] 如何使用ida在apk执行前动态调试其so中的函数

2013-9-11 22:39
71094
按照 《已解答: 关于用ida远程调试android native c 的so文件的问题》  这个帖子的方法,可以对程序进行动态调试了,非常感谢。

问题是,我想要分析的so中的函数,在进入程序界面之后就已经执行完毕了,因此,我在想在某个apk启动前,就对他进行调试,看到“开发者选项”中有个一个“等待调试器”选项,但是不会用。。。

我看了《Android软件安全与逆向分析》,但没找到,请大大们帮忙

[培训]《安卓高级研修班(网课)》月薪三万计划

收藏
点赞0
打赏
分享
最新回复 (43)
雪    币: 202
活跃值: (118)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
leftlizhi 2013-9-12 10:06
2
0
开始调试选项那个好像得针对eng Build的机型,置为waitdebugger啥的,我只是看了下理论但是没有实践过。

不过我最近也遇到这种问题,迫于时间压力没时间研究那个waitdebugger了,想了个相对好上手的办法:

1、解包对方APK,插入一个:
对应SMALI:    android.os.SystemClock.sleep(20000);
const-wide/16 v0, 0x2710   #20秒
invoke-static {v0, v(X-1)}, Landroid/os/SystemClock;->sleep(J)V
这里(X-1)对应.local X,我想你懂该怎么写的

2、另外有的包在你要调试的那个SO里面有签名保护,反正你重新打了包之后会导致程序运行崩溃,这个相比JAVA修改困难些,建议你用那个签名漏洞来打包。事实上我调试那个SO也遇到过这样,然后打了个签名漏洞的包嵌入的延时函数就大丈夫了
雪    币: 118
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xiaowz 2013-9-12 11:06
3
0
好办法 真是好办法 我也遇到过类似的问题
雪    币: 9
活跃值: (528)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
HappyKL 2013-9-12 14:13
4
0
1) am start -D -n 包名/类名

2) IDA pro attach 进程, 设置新线程,加载so时断点,continue

3) 打开ddms, 查看调试端口, jdb attach port

4) 这个时候应该已经断在新线程,或者加载so处了,在你感兴趣的so处停下来

5) 另外用ida 打开so,查看你感兴趣的函数偏移, 加上你感兴趣的so的基地址,打上断点,continue, 就大功告成了。
雪    币: 27
活跃值: (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jecray 2013-9-12 22:28
5
0
谢谢!,周末回去试试看。
雪    币: 27
活跃值: (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jecray 2013-9-14 23:32
6
0
我在尝试第三步 jdb attach port 时,提示无法连接到vm,无法附加调试,请问怎么解决?
雪    币: 9
活跃值: (528)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
HappyKL 2013-9-15 09:10
7
0
你是windows吧,
jdb -connect com.sun.jdi.SocketAttach:port=xxxx
雪    币: 27
活跃值: (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jecray 2013-9-21 21:03
8
0

非常感谢,达到目的了,呵呵。
雪    币: 503
活跃值: (120)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
鬼谷子c 1 2013-9-21 21:48
9
0
嗯,先睡一会儿,然后再链接,否则断不了程序
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
SnakeNKF 2013-10-11 17:16
10
0
请问下第二步要怎么做?设置新线程,加载so时断点,continue。不太理解
雪    币: 130
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yuletianxi 2013-11-3 01:53
11
0
前三步都成功了。但是第四步一直都没有出现预期的效果。ida   始终没有中断住。试了四五个不同的apk都是这样。求调教
雪    币: 213
活跃值: (147)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jasonzhou 2013-11-3 10:43
12
0
windows下ida6.1不行,linux ida 6.4可以,不知是ida的问题还是windows的问题,你可以在linux下用wine测一下
雪    币: 213
活跃值: (147)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jasonzhou 2013-11-3 10:46
13
0
在你的apk进程上attach,设置调试设置,在加载so时break
雪    币: 130
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yuletianxi 2013-11-8 12:44
14
0
谢谢! 我已经换成ida 6.4了,希望能行!
果然是好人啊!真心感谢,三个周了,问了很多论坛您是第一个给我回复指导的. 即使这样的一个小问题.对我们刚入门的人来说也是很难逾越的障碍啊.因为出了问题往往都认为是自己操作失误..再次多谢
雪    币: 32
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
unwww 2013-11-11 10:59
15
0
请问 linux平台的 ida 6.4 哪有下载?
雪    币: 130
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yuletianxi 2013-11-11 13:15
16
0
我使用wine的.linux版的我只有找到5.5版本的.用wine ida pro6.4很正常运行
雪    币: 32
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
unwww 2013-11-11 14:27
17
0
您使用的6.4版本能共享下吗
雪    币: 130
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yuletianxi 2013-11-11 18:02
18
0
百度ida pro 6.4可以下载到。
雪    币: 130
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yuletianxi 2013-11-11 18:11
19
0
求助: 在debug options中设置stop at load lib.  然后F9之后,会跳出一个:“got SIGSTOP signal (Stop unblockable)”, 然后,无论点击yes还是no,都就退出了!请求帮助,我哪里出现问题了??
雪    币: 53
活跃值: (240)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
netsniffer 2013-11-12 20:07
20
0
ida 6.4的android_server 谁有下载的地方?
雪    币: 213
活跃值: (147)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jasonzhou 2013-11-13 17:39
21
0
这个问题我也遇到过,没具体研究过什么原因,根据提示,应该是说程序出错退出了,猜测是调试的apk跟android_server不兼容,可能是sdk版本的问题,尝试解决方案:
1. 在exception option里把所有的都删掉
2. 重启手机
3. 换个版本android_server或者换个android版本的手机
雪    币: 130
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yuletianxi 2013-11-14 23:50
22
0
你好, 三种方法都已经试过,
手机试过:联想某4核,索尼x26某, 三星i5500, 华为MT6 , 都不可用,
android_server 分别换用过ida pro6.1的, ida pro6.3的和ida pro6.4的.
并且发现 ida pro6.3的android_server 不可与ida pro6.1,ida pro6.4连通。。

我是在分析com.tebs3.cuttherope这个apk的so文件时报的错误,sigstop. 是在本论坛某大神发布的分析so文件的技术文档,然后按照步骤尝试的时候出的错误。
雪    币: 130
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yuletianxi 2013-11-14 23:51
23
0
然后发现,这个com.tebs3.cuttherope这个apk也是 Android安全与逆向分析那本书中分析的叫做Kungfu的病毒。 他们是同一个。。
雪    币: 123
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JBoy 2013-11-26 18:58
24
0


请教一下,已经这样设置了,第4部还是断不下来.....
windows 下jdb -connect com.sun.jdi.SocketAttach:port=8700也无法连接到目标vm........
linux+wine ida6.1试了还是断不下来,ida6.4用wine运行出错,然后我第2部用windows下的ida6.4 wifi连接设备ip attach,也断不下来.....

请问下是什么原因?有什么好的解决办法吗?
上传的附件:
雪    币: 53
活跃值: (240)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
netsniffer 2013-11-27 22:57
25
0
jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700

楼上各位,谁有好用的ida6.4私信发个地址嘛
游客
登录 | 注册 方可回帖
返回