-
-
[原创]基于trace内存爆破标准算法,so层标准算法只需10秒
-
发表于:
2025-9-25 10:33
5522
-
[原创]基于trace内存爆破标准算法,so层标准算法只需10秒
前几年看Android逆向的好文章,即觉得美妙,又有些烦躁,烦躁中还带着酸味儿。真的有这么丝滑吗?问了就是靠直觉和天赋。直到最近有师傅问我怎么逆出来的问我流程,才恍然大悟。故记录出来,己所不欲勿施于人。 文章思路来源于龙哥。
一、概括
几乎每种算法,都存在某些固定依赖的常数和表,我们称之为魔数和常量表。第一步肯定是识别,而他们中的明文,密文又会在内存中出现并且使用,我们可以基于内存读写监控,做内存追踪和数据溯源,这样基于trace的方式无视混淆,包括vmp。
二、算法分析 例一
请出我们的老演员 某咖啡 演员是发帖本天下的最新版 
开始trace
众所周知,每个native 函数执行需要经过artJniMethodStart 这个函数 ,我直接在这里开始跟踪,第一可以绕过本身so的crc检测,第二不需要hook注册函数符合我们快速逆向的标准。

trace的话目前外面已经非常多的方案拿到了,我在这里讲讲自己使用的,不局限。
目前是通过 stalker和qbdi结合来使用 你问我为啥这样用 因为frida老相好不能丢,qbdi功能强大得用。
通过stalker的GUM_BLOCK和qbdi的 vm.run来结合

qbdi直接就有内存读写监控的api我们直接拿来使用
通过读写的地址的后100位hex写入到文本中
注入so拿到trace文本

把文本拉到电脑上进行下一步
首先得识别算法用010打开 通过脚本来识别读取的内存地址hex文本

很快识别到aes

把trace读取的文本拉到golang中进行内存爆破 
很快就爆破完了 拿到key结束了
整个过程甚至没有打开ida,所以有的师傅跟我唠流程,ida,白盒,dfa,hook,我自己都不知道还咋教你,我就hook了一个art函数,so名字和地址都不清楚
原理就是拿着结果去内存搜索爆破,代码会上传到附件

代码优化 有师傅看到了 这一个算法一个模版不得累死 那就用c++写个复合模版吧
ai花了一会就写好了

有师傅会问,我向上追溯到非标准算法怎么办,请看贴二
https://bbs.kanxue.com/thread-288612.htm
完结撒花 所有脚本和代码会放到附件 下篇文章给师傅们唠唠ios trace
有朋友说不知道你在干什么,故录了个完整流程视频
基于trace的公式化苹果打法,见app就踹
b60K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2T1K9h3I4A6j5X3W2D9K9g2)9J5k6h3y4G2L8g2)9J5c8Y4k6A6k6r3g2G2i4K6u0r3b7W2j5I4f1U0W2F1M7i4A6k6c8g2W2f1i4K6u0r3i4K6y4r3M7%4m8E0i4K6g2X3K9h3c8Q4y4h3k6X3M7X3!0E0i4K6y4p5x3K6x3K6i4K6u0W2x3e0x3^5y4#2)9J5k6i4g2H3L8r3!0S2k6q4)9J5k6i4k6A6k6r3g2G2i4K6g2X3j5$3q4J5k6q4)9J5k6h3y4D9K9h3y4C8i4K6t1$3j5h3#2H3i4K6y4n7N6X3c8Q4y4h3k6K6L8%4g2J5j5$3g2Q4x3@1c8U0x3e0S2S2z5o6M7^5k6h3j5%4x3r3f1@1y4h3x3K6y4r3f1&6k6X3t1I4x3h3x3#2x3$3k6V1x3e0p5J5k6b7`.`.
[培训]科锐软件逆向54期预科班、正式班开始火爆招生报名啦!!!
最后于 2025-10-28 08:17
被蜕无痕编辑
,原因: