BUU-SoulLike
结构很简单
首先控制首尾 其flag形式位 actf{./}
然后就是那个sub_83A函数 很大 IDA默认的函数大小只有64 将其改为1024然后f5 等一段时间出c代码
配置文件是/cfg目录下的hexrays.cfg 搜索 MAX_FUNCSIZE 定位
其函数对flag中间字符串进行了很大一串简单异或和自增 最后和指定数据比较
这里我最开始想的是吧代码复制下来 倒着读 解析代码 实现逆向
但是这里的错误提示 🈶️提示你第几位错了 于是直接爆破就可以了
这里我的代码用了pwntools库
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
from pwn import * table = [] for i in range(128): table.append(chr(i)) now = 'actf{' num = 0 while 1: if num == 12: break for i in table: io = process('./SoulLike') flag = now + i flag = flag.ljust(17,'@') flag += '}' success(flag) io.sendline(flag) io.recvuntil('#') if num < 9 : n = int(io.recv(1)) else: n = int(io.recv(2)) io.close() if n == num + 1: now = now + i num = num + 1 break print num print now + '}'