Bingo——bugku
解题思路
思路主要参考网上writeup,一步步做出来的。
png中隐藏着exe文件
MZ文件头,即(4D5A9000…),从这开始到最后的字节都提取出来,为一个exe文件。此时的exe文件因为缺少PE头无法被ida识别,因此加一个PE头 50 45 00 00
也可以通过010editor在模板中修改
用ida打开该exe文件
判断这是一个解密过程,即 为部分字节数据进行异或解密,用脚本进行解密。
1 | with open(r"C:\Users\hahbiubiubiu\Downloads\file\bingo.exe", 'rb') as f: |
执行脚本后得到新的exe文件,ida打开它
除了前面的异或,它跳到了0x408BE0的位置
Edit->Segments->Rebase Progarm…->修改value为0
该函数地址修改为0x8BE0
在010editor中修改程序入口点为0x8BE0
再次用ida打开exe文件发现程序多了两个main函数,main_0函数就是程序主逻辑
_strrev是对字符串进行倒转的函数,根据逻辑,写出脚本
1 | a = "zaciWjV!Xm[_XSqeThmegndq" |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 hahbiubiubiu!