首页
社区
课程
招聘
[推荐]gikdbg.art系列教程2.1-调试so动态库
发表于: 2014-6-2 17:59 16541

[推荐]gikdbg.art系列教程2.1-调试so动态库

2014-6-2 17:59
16541
文字版,图文版就访问原始链接吧。

void usage(void) {

printf(“原创文章,欢迎转载和引用,不过请附上原始链接( e10K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3N6A6K9$3W2J5i4K6u0W2j5$3!0E0i4K6u0r3j5X3I4G2k6#2)9J5c8W2)9K6c8Y4m8Q4x3@1b7I4x3e0f1`. )和本申明,否则嘛,哼哼…\n”);

}

本篇文章我们将介绍如何使用gikdbg.art调试so动态库, 此处我们以$(GIKDBG.ART)/artsample/apk/gikdebugee.apk为例进行Step by step的操作与解释以及一些注意事项的说明。

Step 0.前置说明

手机端:Android模拟器,Android 4.4.2 ART 运行时;(真机与DVM运行时是一样的)

PC端:ParallelDesktop虚拟机,Windows 8.0,gikdbg.art v1.0.build140601.3;

PS:非root环境的设备由于权限的原因会有很多问题,不推荐使用!

Step 1.连接设备

运行模拟器,打开gikdbg.art.exe,执行/ART Debug/Device菜单,我们就可以来到如下界面:

0-logindevice

如果模拟器已经运行了,但是设备列表中没有,则等待一段时间后执行右键的Refresh菜单。然后双击或者右键Login就可以登陆选中的设备了。

对于第一次Login该设备,会询问你是否上传依赖的文件到/data/local,这一步如果否定了的话将不能使用调试功能。上传文件这个步骤目前已知的问题是对于非root的设备,往往因为权限的原因上传不成功,一般情况下/data/local/tmp目录没有问题,但是有些设备又没有/data/local/tmp目录,因此我们只有设置/data/local为目标路径,这个问题目前还不知道好的解决办法。归纳一下就是:

非root的机器无法在其/data/local下创建我们依赖的文件夹以及上传文件,如果我们将其迁移至/data/local/tmp这个目录下,又有部分设备没有这个文件夹,就更没有办法上传了。

对于这类上传失败的同学,可以想办法手工将$(GIKDBG.ART)/adb/android/gdb传至/data/local/gikir_android-xxxx/gdb这个位置,其中xxxx是GUID。

如果还没有安装该apk文件的,则可以在ADB Shell中执行$install –r命令选择gikdebugee.apk进行安装.

Step 2.选择进程

登陆成功后执行,确保模拟器的gikdebugee.apk运行正常,然后执行/ART Debug/File/Attach就可以得到如下进程列表,选中我们的gikdebugee进程,双击或者执行Attach按钮:

1-attachprocess

之后我们就会看到如下加载输出:

2-attaching

等gdb加载完毕之后我们就可以进入熟悉的CPU主窗口了:

3-firststop

Step 3.选择模块

我们的目的是调试apk里面的so动态库,因此执行/ART Debug/View/Module切换到模块列表,选中我们要调试的模块,双击它:

4-modulelist

然后CPU窗口显示的代码就是该模块对应的代码了。

Step 4.击中断点
本例中找到要调试的函数getNativeString,我们可以用CTRL+F查找到它,找到之后F2下断点,F9运行它,然后在设备中操作按钮则该方法将被断点击中,F8运行3步,我们就得到如下视图了:

5-hitbkptstop

Done! 剩下的就与ollydbg调试x86一回事啦,伙计们,上吧!

剩下更多的细节,同学们可以前往 e63K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3N6A6K9$3W2J5i4K6u0W2j5$3!0E0i4K6u0r3M7s2u0G2k6s2g2U0N6q4)9J5k6i4m8Z5M7l9`.`. 下载使用,自行摸索更多已经提供的功能。另外,在使用gikdbg.art的过程中有任何改进意见和Bug,欢迎反馈给我们以帮助我们将他开发得更加完善。

下一篇文章(gikdbg.art系列教程2.2调试控制台)我们将详细介绍如何使用gikdbg.art调试控制台程序,敬请关注 8ebK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3N6A6K9$3W2J5i4K6u0W2j5$3!0E0i4K6u0r3

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 2529
活跃值: (2480)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
2
前几天试了下,前面步骤都OK,设置完断点,然后F9就挂了。(红米)
2014-6-2 20:45
0
雪    币: 130
活跃值: (3483)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
改天试试看
2014-6-2 23:10
0
雪    币: 1662
活跃值: (3563)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
你这个App因为SIGILL闪退的问题以解决,更新到 gikdbg.art-v1.0.build140603.1 即可。
2014-6-3 17:36
0
雪    币: 84
活跃值: (2618)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
F9之后cpu指令窗口是空的,gdb命令窗口无法输入命令
2014-6-19 11:41
0
雪    币: 1662
活跃值: (3563)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
6
今天更新到了v1.3,你下载试一试,看看还有没有这个问题。
2014-6-23 15:47
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
现在安卓加密也开始越来越厉害了
2014-6-23 19:00
0
雪    币: 229
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
呃,试了下,为何双击so,cpu窗口无任何代码出现?
2014-8-1 01:38
0
雪    币: 179
活跃值: (1150)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
9
手机端已经启动进程,附加进程没有看到进程,不知如何附加....
2015-4-24 17:19
0
游客
登录 | 注册 方可回帖
返回