BUU-CrackRTF
流程清晰,主要是两个加密使用了WINAPI
其中 CryptAcquireContextA() 创建一个对象 有点类似于z3中的 Slover()
CryptCreateHash() 创建一种hash方法,其中第二个参数(即图中红框)决定了hash方法
查表可知 https://docs.microsoft.com/en-us/windows/win32/seccrypto/alg-id
又限制六位数 可以直接爆破计算sha1 得到数字123321
第二个hash-md5就没有限制 直接爆破肯定不🌟 发现里面又一个check函数sub_40100F()
网上搜了搜,应该是这个exe存在某个资源叫做AAA 取值出来进入sub_401005() 而这个函数是一个异或,结果放在lpBuffer
我们第二次输入也是六位未知,所以只需要AAA的前六位和异或结果的前六位
这里动态调试,修改Z标识为绕过_strcmpi() 进入AAA资源操作那里
在函数sub_401005下断 第二个参数就是AAA资源的指针 直接db搜索得到AAA资源前六位的值
得到前六位
而结果是一个RTF文件 百度了一下 RTF文件是一个%……&*()*&…… 九不是纯文本形式,而是有类似于html,有格式
前六位就是 {\rtf1
然后异或得到第二次输入 ~!3a@0
按照程序流程 如果两次输入都正确就生成rtf文件 过一遍程序就可以得到flag文件