linux下反汇编命令 反汇编语言指令大全( 三 )


IDA还支持调试,也就是说,当你在进行反汇编过程时,可以直接使用IDA来调试跟踪 , 以分析代码的动态执行情况 , 不过就动态跟踪来说,OLLYDBG更为强大 。
IDA反汇编的正确率和代码的复杂程度有关,对于正规开发的代码 , 尤其是如果能够获得源程序的调试文件,即所谓的PDB文件,IDA可以读取PDB文件中的信息,使得反汇编的效率和准确度大为提高,生成的代码甚至比源代码易读 。IDA将反汇编生成的结果存入IDB文件中 。当你确认反汇编的结果达到你的要求,可以让IDA输出汇编源代码,IDA也提供其他格式的输出,例如HTML文件 , 便于用户阅读 。楼主主要是用于分析DLL文件,一般来说这类文件更适合做静态分析,所以推荐使用IDA来进行 。
IDA对于分析那些加壳或含有大量花指令、混淆代码、垃圾代码的程序,反汇编的正确率会大为下降,因为IDA无法正确的确认当期位置上的数值是属于代码,还是属于数据,是普通C字符,还是DELPHI的字符串 , 还是UNICODE字符串 , 是结构数据还是数组还是类表(DELPHI生成的代码中含有大量的类表)等等 。遇到这种情况,就需要使用者掌握许多技巧,例如可以通过使用者对当前数据的认识,指导IDA如何处理当前的数据 。对于大批量的,具有某些规律的数据,IDA还提供了脚本语言(文件尾位idc) , 通过对脚本的执行来指导IDA如何进行反汇编 。对于更为复杂的情况,例如程序是自解压运行的,这时IDA就没有任何能力来进行正确的分析 , 通常都会用OLLYDBG动态跟踪,等程序完成自解压后从内存中将解压后的代码完整的挖下来形成文件 , 再由IDA进行静态分析 。
对于成功进行反汇编的代码,IDA根据代码的入口、调用、转移等指令 , 可以为使用者提供各种格式的程序的流程图,IDA提供许多格式由用户选择,便于用户理解程序的结构 。
汇编语言的科学定义,其实就是介于机器码(各种01)和高级语言(如C)之间的一种语言 。你用C语言写一段程序,其实要在机器上运行的话,机器是不懂的,要经过编译器、汇编器编译,变成汇编 , 最终再变成机器码,机器根据这些机器码的01可以控制硬件电路完成你程序想执行的操作 。
Linux下有没有类似于OD的反汇编工具可以试ldasmlinux下反汇编命令,不过一般在linux系统linux下反汇编命令 , 命令行下用gdb
图形界面的可以试试ddd,其实也是封装的gdb
关于linux下反汇编命令和反汇编语言指令大全的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读