BUU--findKey
BUU–findKey
分析
首先查壳,发现是32位无壳的,然后放入IDA中看看,直接shift+12去找关键点
对它进行交叉引用,去看看这个程序要干嘛
这里发现,它这里有两个一样的语句,直接nop掉一句,再声明一下就可以反汇编了
整个看起来很复杂,但是有用的也就那几个
简单分析之后可以知道有用的部分只有sub_40101E函数和sub_401005这两个函数,其中sub_401005这个函数用了两次,首先去sub_40101E函数看看它在干嘛
再结合函数库
能明白这里是一个哈希加密的东西。
然后去sub_401005函数看看在干嘛
这是一个很简单的异或。整体的逻辑也就是要得到第二个消息盒所得到的值。首先要通过第一个异或得到第二个异或需要用的东西,再通过第二个异或得到flag。
脚本
|
得到
c8837b23ff8aaa8a2dde915473ce0991 |
然后知道得到的Str是通过哈希加密的,看这个结构为32位16进制,猜测是MD5的加密。接着进行第二个异或
|
得到flag
flag{n0_Zu0_n0_die} |
总结
这道题涉及到了简单的花指令和哈希密码,本题的难点在于会忽视掉这个哈希密码,从而无法在第二个脚本中得到flag。
MD5的简单判别方法:
128 位的 MD5 散列在大多数情况下会被表示为 32 位十六进制数字。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 逆向上分之路!
评论