当前位置:首页 » 编程软件 » 编译器ida

编译器ida

发布时间: 2023-06-07 20:14:45

‘壹’ 编译器为什么会生成汇编语言而不是机器语言

1)其中有一个好处是方便优化,因为,编译器也是工具,也是机器,毕竟是机器生成的程序,不可以非常 完美的,而汇编是机器指令的助记符,一个汇编指令就对应一条机器指令(特殊指令除外)调试起来肯定会比 机器指令方便的方便,这样优化起来也方便。
2)高级语言只需要编译成汇编代码就可以了,汇编代码到机器码的转换是由硬件实现即可,有必要用软件实 现这样分层可以有效地减弱编译器编写的复杂性,提高了效率.就像网络通讯的实现需要分成很多层一样,主要 目的就是为了从人脑可分析的粒度来减弱复杂性.
3)如果把高级语言的源代码直接编译成机器码的话,那要做高级语言到机器码之间的映射,如果这样做的 话,每个写编译器的都必须熟练机器码。这个不是在做重复劳动么。

‘贰’ ida 分析 32位程序 需要使用32位 ida吗

DLL 属于可执行文件中的一类,又称为动态链接库,不能直接用DEBUG加载,一般由应用程序因使用该库中的函数,而由操作系统在应用程序加载的同时被加载入特定地址,这个地址一般是DLL在链接时指定的。当DLL被加载到运行空间,根据输出函数表,可以得到各个函数的入口地址,然后用DEBUG在各个入口下断点,调用该函数时DEBUG将跟踪进入该函数,从而实现反汇编。
反汇编属于逆向工程,逆向工程的主要手段有两大类,其中一类是动态分析,另一类是静态分析。
前面提到的方法属于动态分析,由DEBUG实现反汇编,该方法不容易得到完整的代码,一般只能形成一段一段独立分散的代码,同时由于DEBUG的局限性,反汇编的代码质量多不高,生成的代码不能直接使用,原因在于DLL在加载时若没有加载到指定地址空间,操作系统将对代码进行重定向,所以DEBUG只能得到重定向后的代码,这类代码必须修改每一个重定向点,才能形成可执行代码。作为WINDOWS32位操作系统, OLLYDBG是最为优秀的调试、跟踪、反汇编工具,多窗口运行,可以方便的通过窗口操作完成各类动作,而不需要像一般DEBUG那样由命令行来完成,OLLYDBG还有许多一般调试器不具备的功能,同时由于每一代高手不断的修改,使其具有多种功能,同时带来的就是混乱,谁也不知道有多少版本,谁也不清楚每个版本到底增加了什么功能,但就这样,也是瑕不掩疵, OLLYDBG任然是DEBUG中最强大,最好使用的。
静态分析和动态分析不同,静态分析直接打开原程序,加载而不运行,然后直接分析加载的代码。目前静态分析工具,最强大的当属IDA,IDA支持几乎所有种类的汇编语言。
IDA加载应用程序有许多选项,可以选择完整的加载整个程序,也可以选择加载程序的某个块,一般可选择的是否加载文件头、资源表、输入表、输出表等等。
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可以控制硬件电路完成你程序想执行的操作。

‘叁’ IDA调试器反汇编的代码和我自己写的不一致是什么原因

你编写的代码有逻辑问题,cmp后面紧接着就jmp finish ,就是ret ,直接返回了,后面的add 和ja都无效了,编译器会直接把这两个删掉,反汇编的时候自然就不现显示了

‘肆’ IDA Pro权威指南的内容简介

《IDA Pro权威指南》内容简介:IDA Pro(交互式反汇编器专业版)是应用最广泛的静态反汇编工具,在IT领域有着举足轻重的地位,但其文档资料一直都不够完善。在IDA Pr0创建者Ilfak的协助下问世的这《IDA Pro权威指南》,完美地弥补了这一缺憾。C卜¨1s的理论被业界公认为是权威且令人信服的。而他的模拟器也是公开发布的IDA插件中最棒的一款。
《IDA Pro权威指南》首先描述反汇编理论、逆向工程的基本信息}111DA Pro的背景知识,然后系统地介绍IDA的基本布局和功能、复杂数据结构的处理、交叉引用与绘图功能,以及如何在非Wiridows平台上运行IDA。书中由浅入深地介绍了IDA的配置、F LlRT技术、IDA类型库的扩展以及一些IDA限制。难得的是。《IDA Pro权威指南》还探讨了IDA的可扩展性。涉及IDA脚本、SDK、插件、加载器模块和处理器模块。最后阐述了IDA在逆向工程中的实际用法,讨论了各种编译器的区别、模糊代码分析和漏洞分析、IDA插件以及IDA调试器。

‘伍’ 反编译是什么意思

高级语言源程序经过
编译
变成可执行文件,反编译就是逆过程。
但是通常不能把可执行文件变成高级语言源代码,只能转换成汇编程序。
好比android系统的apk程序文件包,可以用apktool之类的的工具进行反编译,可以得到class代码文件和source资源文件。
一般反编译只适用于高级语言,低级语言,好比汇编等语言,比较难。

‘陆’ 如何使用Ida进行反编译

IDA Pro是目前最棒的一个静态反编译软件,是破解者不可缺少的利器!巨酷的反编译软件,破解高手们几乎都喜欢用这个软件。不会用当作经典的收藏软件也不错!

IDA Pro 并不自动的解决程序中的问题,IDA Pro 会告诉您指令的可疑之处,并不去解决这些问题。您的工作是通知 IDA 怎样去做。IDA Pro Disassembler and Debugger是一款交互式的,可编程的,可扩展的,多处理器的,Windows或Linux平台主机分析程序。

‘柒’ ida是什么意思

ida是指交互式反汇编器专业版

交互式反汇编器专业版(Interactive Disassembler Professional),人们常称其为IDA Pro,或简称为IDA。是最棒的一个静态反编译软件,为众多0day世界的成员和ShellCode安全分析人士不可缺少的利器。

IDA Pro是一款交互式的,可编程的,可扩展的,多处理器的,交叉Windows或LinuxWinCEMacOS平台主机来分析程序, 被公认为最好的花钱可以买到的逆向工程利器。

分类:

从功能上看,IDA Pro共有两个版本:标准版和高级版。这两个版本的主要区别,在于他们支持反汇编的处理器体系结构数量不同。

快速浏览一下它们所支持的处理器体系结构列表,即可发现:标准版支持30多种处理器,而高级版则支持50多种处理器。高级版支持的其他体系结构包括Itanium、AMD64、MIPS、PPC和SPARC等。

热点内容
旧电脑搭建网络打印服务器 发布:2025-02-12 02:09:45 浏览:648
c语言顺序表基本操作 发布:2025-02-12 02:09:41 浏览:887
安卓光遇怎么开三档画质华为 发布:2025-02-12 01:55:51 浏览:193
微信哪里能找到登陆游戏的密码 发布:2025-02-12 01:54:22 浏览:591
php获取服务器ip地址 发布:2025-02-12 01:54:12 浏览:578
对象存储和nas哪个好 发布:2025-02-12 01:50:34 浏览:445
phpmulticurl 发布:2025-02-12 01:41:58 浏览:70
数据库的集群 发布:2025-02-12 01:36:55 浏览:633
c语言实验买糖果 发布:2025-02-12 01:36:54 浏览:263
安卓怎么转微信到iphone 发布:2025-02-12 01:36:22 浏览:385