春秋杯2025
KoOh
这道题如果先去找主函数的方法,来到了这里,是一个base64加密,点开那个参数
应该是base64加密变表
import base64 |
错误的flag,此时我们观察上图发现下面有一些字符串,看看交叉引用
发现有一大串代码是处于爆红状态,发现有花指令,这个时候反编译
此时看到这个hook,很明显是先解密那串很奇怪的字符串,解密之后是ida.exe,ollydbg等等,拍进程快照然后判断是不是在运行这些进程来反调试
这个时候如果发现在调试的化,就会退出,这里的方法就是将eax的值设置为0,其实我是静态看的。
之后发现了rc4的变种
这里其实很明显的rc4,交exp
注意两个点:
1.这里的rc4加密魔改点是最后的异或变成了-
2.密钥被替代了
当我去跟踪这些散落的代码的时候,发现他们的最开始引用都是在Tlscallback函数里面,也就是说都先于主函数进行
|
ez_RE
进来发现了一个随机数种子,跟md5有关,接着是一个异或随机数,这里点开生成种子看看
这段代码的具体意思是将函数的前1024个字节当种子,这里可能操作系统不同的化,编译器不同,电脑不同
代码中利用了 custom_md5_init
函数的内存布局作为加密输入的一部分。所谓“内存布局”,是指函数在运行时被加载到内存后,具体的机器指令、数据和偏移地址的排列形式。由于内存布局会受到编译器、操作系统、以及某些安全机制(例如地址空间随机化 ASLR)的影响,可能在不同运行环境下表现出不同的动态特性。
那怎么办,可以试试爆破种子。但是必须在Linux环境去爆破,
具体Linux命令是
vim ac.cpp |
|
这个爆破范围不是很确定,应该可以慢慢试,就小32位,不是很大,
这里注意,因为这是linux文件,他们的c库不同,环境不同,所以exp必须在linux环境中跑
flag{b799eb3a-59ee-4b3b-b49d-39080fc23e99} |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Reverse!