BUUCTF reverse

不知道怎么搞得,下午写的wp被"rm -rf"了🤣🤣🤣
做re给我re成 Re: 从零开始的异世界生活 ...
我现在情绪非常淡定,淡淡的死感罢了。
新年快乐
题目
详见 BUUUCTF 的这道题
wp
先放进IDA反编译,F5一下
发现函数很少,怀疑是加壳了。
查壳
发现加了UPX壳,并且文件是32位的。
脱壳
手动脱壳
找到入口断点。
然后设置这个地址为新的执行点。
注意此时寄存器ESP地址
F8执行异步后,ESP地址变化。
在内存窗口打开变化后的地址,设置为新的硬件断点,并执行
发现断点。找到popad,其后的第一个jump即为OEP。

用插件dump掉壳,然后autoresearch IAT,并导入IAT,fix之前掉壳的文件。
最后拖进IDA,就可以看到脱壳后的程序反编译的结果了。结合题目提示,字符串即flag。
工具脱壳
用upx的工具进行脱壳,脱壳后的文件拖进IDA结果一致。
笔记
XOR
拖进IDA,F5一下
反编译结果大概是说,输入的flag字符串v5,从v5[1]开始和前一个字符做异或得到global。
找到global
提取字符串并转换成ascll码
1 | data=[ |
由
1 | data = [ |
拿到flag

- Title: BUUCTF reverse
- Author: Pomni
- Created at : 2025-03-30 19:54:37
- Updated at : 2025-03-31 23:14:16
- Link: https://redefine.ohevan.com/2025/03/30/BUUCTF-reverse/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments