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!

