buu-CrackRTF

exe文件,输错就直接退出
buu-CrackRTF
32位无壳
buu-CrackRTF
32位ida看main函数
有两段scanf和两段字符串
buu-CrackRTF
逐个分析:
(1)、
转为整数型后连接上@DBApp
sub_40100A()函数处理后于’6E32D0943418C2C33385BC35A1470250DD8923A9’比较
跟进函数
buu-CrackRTF

粉色的系统函数CryptCreateHash()
以0x8004u为标识码的hash的加密函数
官方文档里找到是sha1
buu-CrackRTF
借助python的hashlib模块可以得到第一串字符是123321

import hashlib
flag2='@DBApp'
for i in range(100000,999999):
     h2 = hashlib.sha1((str(i)+flag2).encode("utf-8"))
     flags = h2.hexdigest()
     if "6e32d0943418c2c33385bc35a1470250dd8923a9" == flags:
              print (str(i)+flag2)
              print(flags)

buu-CrackRTF

非预期

(2)、
第二次输入字符串后要加上之前得到的123321@DBApp
buu-CrackRTF
8003u为md5
buu-CrackRTF
可能做的人多了,网站倒是能解出来
buu-CrackRTF
~!3a@0123321@DBApp
输入两次密码后会得到一个.rtf文件,打开就是flag
buu-CrackRTF
预期解晚点补

上一篇:A. Computer Game(纯模拟)


下一篇:Redis学习--过期键清理策略