roger 发表于 2021-3-11 11:42:47

DDCTF_2019_re_Reverse1

Windows Reverse1通过DIE查壳发现存在upx,在linux上upx -d脱壳即可,拖入IDA,通过关键字符串找到关键函数:main函数中也没有什么,将输入的字符串带到sub_401000函数去处理,之后和处理过后的字符串和正确字符串进行比较,若一致则是正确flag

跟进sub_401000,首先计算了输出字符串的长度,然后根据每一个字符的ascii码再加上一个常量作为地址,取里面的值,循环,每一位都是这样

在main函数中我们知道正确的字符串,那么我们就可以反推处flagexp:

1
2
3
4
5
data =
flag = ""
for x in range(len(data)):
        flag+=chr(data-0x402ff8)
print "DDCTF{"+flag+"}"


flag:DDCTF{ZZ
页: [1]
查看完整版本: DDCTF_2019_re_Reverse1