分析失败esp分析出问题
打开堆栈指针,看看哪里出了问题
发现为encrypt函数异常
可以看到这里函数被加密了
用python解密
start_addr=0x0401500
for i in range(187):
x=idc.get_wide_byte(start_addr+i)
x^=0x41
ida_bytes.patch_byte(start_addr+i,x)
encrypt函数分析失败,其实函数没有问题,只是IDA没有识别
首先取消encrypt定义,在函数头按u
然后将中间的数据转换为代码,将光标放在数据上,按c
最后在函数头按p,重定义函数,修复成功
finally函数同理
main还是有问题
在该函数头先u取消定义,再p创建函数就可以了
还可以nop掉对encrypt的加密处理,更完美了