由于有需求,就简单学了下。目前结论是估计新版也许加了一堆混淆。
经 Q 群某人指点要用,但是一看是闭源 + 付费的,算了.jpg, apktool 又不是不能用()
参考了一下 《Android 软件安全与逆向分析》 这本书。
首先不能直接解压。

简单小结

几条路:

解压

得到 dex 文件, 然后 dex2jar 获得 jar, 再 jd-gui 查看。

反汇编

用 apktool d 会得到很多 Smali 文件。这是安卓虚拟机用的汇编语言。后面改逻辑能用到。
vscode 有插件 ApkLab

反编译

用 jadx-gui 直接操作。可以直接看到 java 文件。
或者 jadx 反编译一步得到伪源文件

实战

看了下 link 里 qq 群的文件,可以找到对应的语句。
但是从 apkpure 里下载的文件,就根本找不到,只能找到一堆常量。

VIP 用户才能添加 mdx 字典 fixed

关键字 0x7f0f0069
发现需要 vip, mdx 定位关键字
 
这个是判断 vip 的,干掉它。
测试
核心是看上下的标签跳转确定该注释什么范围。

每月只能下载一本书(似乎不用修)

发现
找到
注释掉

词汇分析(似乎不用修)

汇编
 
找到
找到调用的
干掉

导出笔记 done(修了,但似乎不 work,好像是本来就不 work)

干掉
解决了

小插曲
尝试编译,发现
gradle 支持到 18 ,arch 官方已经 19 了
君生我未生,我生君已老

显然 jadx 反编译的结果是不能生成合法的项目的。但是已经提供了很多参考线索。接下来就是修改汇编的时间了。
随便注释了段代码
build
align
开始试着先签个名。
开始试着签名,结果版本太旧。用这个签新的名。
成功安装。

目前思路:根据反编译结果定位调用并修改逻辑。
然后跑这段测试效果。

总结

apktool d 把内容搞出来
jadx 把伪码搞出来
对着伪码修改汇编(直接删调用最简单)
然后装回本机测试效果
Quite Easy Done
 
notion image
这是我学安卓逆向的第 2 天。但是因为之前有 x86 改 galgame 的基础,就顺理成章解决了。

我是傻逼

思考,这些全是判断 vip 的,那我直接把 vip 的函数 return true 不就好了。
伪码:
搜 auth_email, 找到
上面是 virtual method, 不需要改。
成功解决 vip
 
Loading...
Steven Lynn
Steven Lynn
喂马、劈柴、周游世界
最新发布
我与 Dify 的半年
2025-3-9
我的2022年终小结
2024-11-9
记录雅思考试经历与一点学习心得
2024-11-9
Hackergame 2024 思路小结
2024-11-9
黑客松、日本、入职:我的2024下半年的总结
2024-11-9
NotionNext:基于Notion和NextJS的开源博客
2024-11-9