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文件

 

posted @ 2020-09-01 15:14  Papayo  阅读(415)  评论(0编辑  收藏  举报