Reversing.kr Easy ELF

这是韩国一个做challenge的网站,用来测试你的逆向水平,有兴趣的同学可以去试试。

言归正传,这是一个ELF格式的文件,我们需要拿到Linux下运行。随便输入错误的key会提示Wrong!

拖到IDA分析。

我们看到关键地方是左边比较eax与1的大小,eax等于1正确跳到正确分支,不等于1跳到错误分支。

在比较之前有两个call,肯定就是关键地方了。我们先来看第一个,

只是scanf函数,没其他的语句,看来不是,看下一个。

这里就是找到key的关键算法了。我们可以注意到有byte_804A020到byte_804A025这些数据,大小都是byte且地址连续,由此可知这个是个简单的数组。跳到这段数据所在的区域,将其转换成array,大小6字节,重命名为key。

F5转换伪代码看看

从这些代码我们不难看出关键算法

key的第0位与0x34异或后等于0x78
key的第1位必须为0x31
key的第2位与0x32异或后等于0x7c
key的第3位与0x88异或后等于0xdd
key的第4位是0x58(88)
key的第5位是0

用python脚本写一个简单的解密

key  =  []
key.append(chr(0x34^0x78))
key.append(chr(0x31)
key.append(chr(0x32^0x7c)
key.append(chr(0x88^0xdd)
key.append(chr(0x58))
print str(key)

最后解密结果是L1NUX

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
,