IDA5.2无响应时的处理 最近总是碰到IDA数据库损坏问题,不知大家有没有碰到过。 通常都做了很多标记的文件,一旦损坏,IDA导入后就停止响应。以前只好放弃,重新来过。有时是几天的心血。 最近尝试修复了一下。以下是方法,分享一下,不知大家还有什么好方法没。 问题:可能是由于机器断电或其它原因,导致最近调试的一个程序的IDB文件损坏,当我在IDA disassembly窗口到达某个地址范围内后,IDA就停止相应,只能强退。之后该IDB就再也无法打开。 分析:猜测是某个地址的数据损坏,导致解码错误,IDA的反汇编引擎进入递归死循环。 解决方法: 1、附加:使用OD附加停止响应的IDA,中断到系统领空后,运行到程序领空, 2、找循环:按住f8多次单步执行,不久就会发现一个小循环,在循环内重复执行, 3、跳出循环:找到循环内的条件跳转,更改状态寄存器,使其跳出循环,跳出后,f9运行。 4、切换到IDA窗口,此时IDA已可以响应。不要在disassembly窗口进行操作,切换到hexview窗口,(我对比了正常的数据库发现确实有几个字节错误,如c7变成了C5,5B变成了5e). 5、选择file-loadfile-reloadinputfile,修复。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)