对于恶意病毒或软件来说,通常他们都是以一种混淆的方式编写其代码,防止被轻易破解,但是软件专家可以通过第三方反编译软件,绕过混淆机制,深入分析程序的执行逻辑,从而使软件使用更为安全。
IDA就是其中一种较为好用的反编译软件,IDA可以调试各种特定平台,如Windows、Mac、Linux、Android和iOS。它的分析反编译功能十分强大,但也不是百分百正确的,一旦出现数据或指令显示错误时我们可以怎么处理呢?
一、了解ACDU
在某些程序的反编译过程中,IDA可能将原本是数据的部分当成了指令,把指令部分当成了数据,此时就需要我们人工的手动进行干预,因此我们需要了解IDA的ACDU这四种硬编码显示模式。
下图是IDA分析某个程序后的初始反编译视图窗口界面,我们以图2红框这一行为例,来了解ACDU这四种不同的显示模式。
A,就是键盘快捷键A键,使用它我们可以将IDA的分析内容以字符串的形式显示出来。选中上图2红框那一行,然后点击A键,此时该行变为图3红框所示,变为了字符串形式。
C就是Code的意思,同时也指键盘快捷键C。使用它可以将反编译程序从其他形式变为代码形式,如图4所示,我们通过C键将原本的字符串形式还原为代码形式。
D就是Data数据形式,能将反编译内容转为数据形式,也是比较常用的一种形式。这里使用一次D快捷键,原本内容就会变为默认db的形式,也就是以一个字节为单位,如图5。
再按第二次,就可以转为dw的显示形式,也就是以两个字节为单位;按第三次D快捷键,还能转化为dd的显示形式,以四个字节为显示单位。
最后,U指的是undefine未定义的显示形式,以原始字节作为显示,如图7。
上述主要讲述了IDA软件中存在的四种不同的显示模式,当我们发现IDA反编译后使用了错误的模式,我们可以通过快捷键快速调整到正确的模式上。更多关于IDA软件的相关教程,尽在城东书院网站上。