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。