效果图
说实话确实惊讶到我了,这是我之前接的单子需要逆向sign也就是一个普通的md5而已,但是那个盐我却需要花很多时间,比如简单一点费个微信号,强制开一下开发者去下断点,麻烦一点的,要解包然后去找,这起码要花一二个小时还是顺利的情况下。
现在用这个算法推理助手几分钟就搞好了
Python版本我觉得有一点慢,如果有 C# 或者 Go 可能会更快~后期有时间自己复刻一个版本出来学习
(润色)内存分析与密文推断
-
密文数据获取与进程保护
在获取密文数据时,首要步骤是对目标进程实施挂起操作。这一措施至关重要,它能有效防止内存被意外释放,确保我们能够捕获完整的内存快照。 -
内存转储技术
成功挂起目标进程后,我们有多种方法可以获取其内存数据:
2.1 利用Windows官方API:MiniDumpWriteDump函数是一个强大的工具,能够高效地实现对目标进程内存的转存。
2.2 自定义内存读取:另一种方法是通过API打开进程,然后逐步读取目标进程的内存,并将数据写入文件。
2.3 其他可行方案:只要能够完整保存目标进程的全部内存数据,供后续分析使用的方法都是可以考虑的。 -
进程恢复
一旦我们成功获取了目标进程的内存数据,必须立即取消挂起操作,让进程恢复正常运行,以减少对系统的影响。 -
内存文件分析
获取内存文件后,下一步是深入分析这些数据。 -
字符串提取与过滤
5.1 全面解析:首先,我们需要从内存文件中提取所有可能的字符串。然而,直接使用全部提取的字符串可能会导致数据量过大,因此需要进行有效的过滤。
5.2 字符串特征分析:
5.2.1 结束标志:有效的字符串通常以字节0(null terminator)结尾。
5.2.2 多字节字符:对于包含中文等非ASCII字符的字符串,其字节值大于127的部分通常是2个或3个字节的倍数。
5.2.3 自定义规则:根据具体情况,可以制定额外的过滤规则。这个过滤步骤至关重要,它直接影响后续推理的效率和准确性。
5.2.4 密文类型推断:- 以16字节(转换为十六进制后为32个字符)的密文为例,很可能是MD5算法的输出。此时,可以对过滤后的所有字符串计算MD5值,如果结果与获得的密文一致,则推理成功。
5.2.5 其他常见密文长度分析: - 对于64字节长度的密文,可能的算法包括:
- DES:加密块为8字节
- AES:加密块为16字节
- SHA-512:输出固定为64字节
这些算法都可能产生64字节的输出(考虑到填充和编码),因此都值得尝试。
- 以16字节(转换为十六进制后为32个字符)的密文为例,很可能是MD5算法的输出。此时,可以对过滤后的所有字符串计算MD5值,如果结果与获得的密文一致,则推理成功。