BUU-SoulLike

结构很简单

首先控制首尾  其flag形式位  actf{./}

然后就是那个sub_83A函数 很大 IDA默认的函数大小只有64 将其改为1024然后f5 等一段时间出c代码

配置文件是/cfg目录下的hexrays.cfg 搜索 MAX_FUNCSIZE 定位

其函数对flag中间字符串进行了很大一串简单异或和自增 最后和指定数据比较

 

 这里我最开始想的是吧代码复制下来 倒着读 解析代码 实现逆向

但是这里的错误提示 🈶️提示你第几位错了   于是直接爆破就可以了

 

 这里我的代码用了pwntools库 

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 + '}'
View Code
posted @ 2020-09-14 10:54  Papayo  阅读(211)  评论(0编辑  收藏  举报