返回介绍

18.5 工具使用案例

发布于 2024-10-10 22:32:21 字数 2555 浏览 0 评论 0 收藏 0

下面就要用一个案例来看看这个工具到底如何使用,有哪些功效。案例是捕鱼达人 v1.0.1 版本,具体的 apk 文件可以自行去网上搜索。安装游戏之后,然后顺便把上面的 ZjDroid 模块工具也安装上,之后进行重启生效。

最好是单独开一个 CMD 窗口用来查看打印结果,但是从上面的命令可以看到,应该需要这游戏的包名和进程 id,那么这两个数据怎么获取呢?其实在前几章已经介绍很多次,用一个命令即可:adb shell dumpsys activity top。如下所示,但是这时候需要运行起来捕鱼达人游戏:

使用命令就可以获取到游戏的包名 org.cocos2d.fishingjoy3 和进程 id=25304,这两个数据非常重要,这里可以先进行保管,进而后面使用。

下面首先来看一下这个应用用了哪些敏感的 API 数据,使用上面查看日志的命令即可:

运行结果如下所示:

这里有网络请求信息、网络切换的广播等数据,感觉这个工具的功能还是蛮多的。

下面再来看一下这个应用的 dex 文件信息,可以使用下面命令即可:

运行之后的结果如下所示:

这时候会发现,运行没有看到实际效果,原因是需要通过日志才能看到数据,因为上面命令运行的结果都是需要通过这个日志才可以看到的:

查看日志信息,结果如下所示:

这里可以看到具体的信息,看到有一个 filepath,这就是后续有些命令需要用到的 dex 路径,所以一定要记下来。

接下来看一个关于 dump 出游戏中所有的类名的命令:

这里的路径就是上面获取到的 apk 路径,结果还需要通过上面的日志命令才可以看到,如下所示:

这就导出了游戏包含的所有类名了。

最后来看如何脱壳,这是最关键的,也是本章的重点,当然也是这个工具最实用的一个功能。而本章用的游戏也是经过加固处理的,可以反编译看看这个游戏,如图 18-3 所示。

图 18-3 游戏加固图

会发现没几个类,而且有一个 Application 类,那么可以认定这个游戏被加固了,这里不介绍是使用哪家的加固平台操作了,也不再使用 IDA 等工具去动态调试脱壳了,这里直接使用这个工具进行操作即可。为了后续代码阅读方便,可以直接获取它的 smali 代码,使用这个命令:

这个命令的运行结果通过日志查看,如下所示:

而这个 smali 文件夹是存放在应用的/data/app/org.cocos2d.fishingjoy3/smali 中,可以把它拷贝出来即可,如图 18-4 所示。

图 18-4 dump 出游戏之后的 smali 代码

可以看到成功脱壳了,生成了游戏的所有 smali 文件代码。这个脱壳操作和后面章节介绍使用 IDA 工具进行脱壳的原理都差不多,因为应用程序不管怎么加固,最终都会使用一个系统函数将 dex 文件加载到内存中,而加载之前肯定要进行解密操作,只要在加载之前解密之后进行拦截即可。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文