当前位置: 代码迷 >> 综合 >> 80:Whitzard OJ逆向-Introduce to packing
  详细解决方案

80:Whitzard OJ逆向-Introduce to packing

热度:24   发布时间:2024-01-26 19:45:11.0

IDA载入找不到关键代码,估计被加密了。
通过找入口点确定函数从哪入口。
在这里插入图片描述
可以看到入口点在nop处,
在这里插入图片描述
可以发现从check到nop这段被异或加密了,练习IDA脚本的时间到了。

start = 0x80484fb
end = 0x80485fa
for i in range(start, end):ida_bytes.patch_byte(i, ida_bytes.get_byte(i)^0x22)

然后通过p和c快捷键构建函数,就可以F5了。
然后来到关键处。
在这里插入图片描述
很简单,直接写脚本吧。

str1 = ida_bytes.get_bytes(0x80486a0, 24)
str2 = ida_bytes.get_bytes(0x80486b9, 24)
flag = ""
for i in range(24):flag += chr(ord(str1[i]) ^ ord(str2[i]))
print flag

即可跑出flag。