IDA反汇编工具 V7.5 中文免费版
- 软件授权: 免费软件
- 软件类型: 国产软件
- 软件语言: 简体中文
- 更新时间: 2022-01-15
- 软件评分:
- 软件大小: 49.99M
- 应用平台:
IDA Pro是一款非常专业的交互式反汇编工具,可将机器代码转换为人类可读的格式。软件提供语法高亮、代码折叠、编译错误提示等多项功能,为二进制分析领域的未来发展奠定了坚实的基础,非常实用。
【软件功能】
IDA Pro是反汇编程序
反汇编程序是一种软件,用于将机器代码转换为人类可读的格式,称为汇编语言。
我们每天使用的软件的源代码并不总是可用。像IDA Pro这样的反汇编程序能够创建它们的执行映射,以处理器名义以称为汇编语言的符号表示形式显示实际由处理器执行的二进制指令。通过这种反汇编过程,软件专家可以分析怀疑是恶意软件的程序,例如间谍软件或恶意软件。但是,汇编语言很难阅读和理解。这就是为什么在IDA Pro中实施了高级技术以使该复杂代码更具可读性的原因。在某些情况下,可以将二进制程序还原到相当接近的水平,还原为生成二进制程序的原始源代码。然后可以对该程序的代码图进行后处理以进行进一步调查。
想法图标也可以看看:
–我们的理念
–支持的处理器
–支持的文件类型
–IDA调试器概述
–IDA支持,文档和教程
–使用IDA的令人信服的理由
想法图标需要获取高级代码吗?
获取我们的反编译器并赢得宝贵的时间。甚至还有一个免费的有限演示版供您尝试…
IDA Pro是调试器
调试器是一种计算机程序,可帮助检测和纠正其他计算机程序中的错误。
在软件分析中(就像在现实生活中一样),事情很少简单明了。恶意代码通常不与分析人员合作。病毒,蠕虫和特洛伊木马程序的创建者通常以一种混淆的方式编写其代码,这使得阅读和分析变得异常困难。因此,需要更强大的工具来有效地帮助分析师。IDA Pro中的调试器通过允许用户单步执行要研究的代码来补充反汇编程序的静态分析功能(在不执行程序的情况下检查代码)。通过这种方式,调试器通常会绕开混淆,并帮助获取功能更强大的静态反汇编程序将能够进行深度处理的数据。
IDA Pro可在Windows,Linux和Mac OS X上运行,并可以调试各种特定平台(Windows 32/64位,Linux 32/64位,OS X x86/x64,iOS,Android等)。这可以在本地或远程执行。远程调试器对于安全地剖析潜在有害的程序非常有用。一些IDA调试器还可以在虚拟环境中运行该应用程序,从而使恶意软件分析更加安全。
IDA Pro是交互式的
因为在探索未知事物方面,目前还没有计算机能击败人脑,所以IDA Pro具有完全的交互性。IDA始终允许人工分析人员覆盖其决策或提供提示。内置的编程语言和开放的插件体系结构进一步提高了交互性。
插件体系结构允许程序在某些时候调用外部代码,而无需事先知道该代码的所有细节,因此为调用程序增加了功能。
IDA Pro是可编程的
IDA Pro是一个完整的集成开发环境。它由一种非常强大的类宏语言组成,可用于自动执行从简单到中等复杂性的任务。对于更高级的任务,开放式插件体系结构允许外部开发人员增强IDA Pro的功能。
敌对代码分析
考虑到当今恶意代码的速度和复杂性,需要一种功能强大的分析解决方案。IDA Pro已成为恶意软件分析领域的标准,以至于有关新病毒的信息通常以“IDA数据库”的形式交换。防病毒,恶意软件和间谍软件分析师每天都会使用IDA Pro来调查新的病毒样本威胁并提供及时的解决方案。
漏洞研究
漏洞披露的话题仍然颇具争议,但事实上,软件通常很容易受到外部攻击。IDA Pro是调查此类漏洞的理想工具。如果不固定它们,则第三方可能出于不诚实或犯罪意图对其进行利用。例如,威斯康星州安全分析器是一个非常有趣的项目,旨在研究软件漏洞,其中IDA Pro扮演着重要角色。
商用现货(COTS)验证
许多软件是在使用它们的国家以外开发的。由于这些程序难以验证,并且由于完整的源代码审核和重建并不总是可行或可行的,因此IDA之类的工具提供了一种方便的方法来检查程序是否确实按照其声明的方式运行,是否没有有害漏洞以及不泄漏任何敏感信息。
隐私保护
软件正在各个层面入侵我们的生活。在可能被收集,出售或利用的有关单个用户的数据量激增到前所未有的水平之时,尊重基本隐私权已成为许多人关注的问题。IDA Pro帮助调查可能引起关注的软件,从而保护您的基本权利。
其他用途
IDA Pro在学术界引起了很多兴趣。在此处可以看到IDA Pro发挥作用的部分论文清单。
【软件特点】
让我们从最明显的新功能开始:现在IDA完全可以使用CSS文件进行配置,并支持开箱即用的暗模式(基于非常流行的IDASkins Dark主题)。
由于Apple不提供对其设备上硬件的低级访问,因此我们的iOS内核调试器依赖于Corellium 仿真器。这是一个以简单和交互方式调试iOS内核的独特机会。根据我们的经验,Corellium非常棒且易于使用。结合对iOS / macOS内核缓存的改进支持
XNU调试器还可以使用VMWare Fusion GDB存根来调试x64上的OSX:
一个与调试器相关的新闻是快速变基。由于ASLR的广泛使用,每次都会将进程加载到新地址,并且IDA需要调整数据库:将所有段移动到操作系统分配给它们的地址。
在IDA 7.3中,我们实施了另一种变基方法,其速度提高了40倍,通常只需几秒钟。每次开始新的调试会话时,您都不再有借口喝咖啡休息时间。这使得我们的调试器使用起来更加愉快;)
们又增加了一个反编译器,这次是PowerPC 64bit。我们将免费向已经拥有有效PowerPC 32位反编译器的所有用户提供。
我们的一些用户表示对反汇编列表和反编译器输出的同步视图感兴趣。这个功能实际上已经在以前的版本中可用,但我们采取了机会来改进它:现在相应的行被着色,并且更容易将汇编指令与伪代码匹配。
最后,IDA 7.3引入了期待已久的撤消功能。我们过去不愿意实现它,因为它需要巨大的源代码重构。其次,它带来了较慢分析的代价(这就是为什么它可能在初始自动分析期间被禁用),更复杂的代码库,以及我们尚未发现的更多缺陷。
【新版改动】
新增功能
强调
资料夹检视
一个树状文件夹视图是许多IDA标准数据视图。您可以创建文件夹并在它们之间移动项目。首先,具有以下视图:
对于“结构和枚举”,默认情况下显示树形面板,对于其他视图,可通过“显示文件夹”上下文菜单项启用。
您可以创建,重命名和删除文件夹,并在它们之间移动项目。在处理大型二进制文件时,这将有助于组织信息。
MIPS反编译器
一个新的反编译器已添加到我们的产品阵容中。IDA支持的任何32位MIPS二进制文件都可以反编译,包括紧凑的编码。臭名昭著的延迟槽是透明,无缝处理的。提供了MIPS反汇编程序-反编译器比较页面 ,其中包含一些有趣的示例。
我们已经添加了带有大多数主要API的类型库以及来自macOS和iPhone SDK的其他框架。与反编译器配对时,它们特别有用。
最初可用的类型库列表
最初可用的类型库列表
使用CoreFoundation API的x86_64用户模式代码示例
使用CoreFoundation API的x86_64用户模式代码示例
使用IOKit类的ARM64内核代码示例
使用IOKit类的ARM64内核代码示例
此外,我们改进了对KTRW调试器的支持。断点和观察点可以使用相同的Corellium-ARM64配置立即使用它。
在反编译器方面,我们添加了对原子ARM64指令 suh的支持, 例如CAS(比较和交换),LDADD(原子加法)以及许多其他功能。它们从stdatomic.h转换为相应的C11函数,因此_asm{}在处理为arm64e编译的代码时,应该看到较少的 块。
ARM原子
发光度
Lumina功能可用于MIPS和PPC二进制文件。
其他选定项目
PC:采用Intel CET(控制流实施技术)的ELF二进制文件变得非常普遍,这是由于Debian默认启用了此编译器选项,随后是Fedora和其他Linux发行版。现在,我们 支持开箱即用的二进制文件,包括反编译器中的二进制文件。我们还添加了对最近添加到Intel和AMD处理器的一些新指令的支持。
英特尔英语四级考试
ARM:最近针对32位ARM代码的编译器更喜欢使用MOVW和MOVT指令对来加载32位常量和地址,而不是像过去常见的那样加载常量池。尽管IDA在将这些对放在一起时已经进行了处理,但是高级优化可以将这些对分开放置,从而防止IDA组合它们,发现全部价值并向目标添加交叉引用。我们已经 改进了启发式方法来处理此类分散的对,并添加了一个选项,因此可以根据您的特定二进制文件将分析调整为更具侵略性。
ARM MOVT
完整的变更清单:
处理器模块:
ARC:添加了对ARCv2 EM指令集的支持
ARM:添加了一个选项来控制对分散的MOVW + MOVT指令对加载的32位常量的检测
ARM:改进的功能检测与延迟的序言设置
MIPS:增加了对多GOT二进制文件的支持($ gp在二进制文件的不同部分可以具有不同的值)
V850 / RH850:请勿为PIC调用创建函数(至下一个地址)
PPC:从e200内核(NXP MPC57xx,ST SPC58xx)添加了许多新指令:
缓存绕过存储(lbdcbx lhdcbx lwdcbx stbdcbx sthdcbx stwdcbx dsncb)
e200z490(AIOP)指令(e_lqw e_stqw e_ldwcb e_ldbrw e_byterevw等)
MPU指令(mpure,mpuwe,mpusync)
PC:在序言分析中增加了对endbr指令的支持
PC:添加了对WAITPKG指令(TPAUSE,UMONITOR和UMWAIT)的解码
PC:添加了对TSX指令(XRESLDTRK和XSUSLDTRK)的解码
PC:添加了对指令CLDEMOTE,ENCLV,SERIALIZE的解码
PC:添加了对直接存储指令的解码(MOVDIRI和MOVDIR64B)
PC:添加了对MCOMMIT和RDPRU指令的解码(AMD Zen2)
档案格式:
AMIGA:为Amiga大块文件加载器实现变基(由Vladimir Kononovich提供)
ELF:忽略内部编译器符号gcc2_compiled
ELF:pc:处理使用Intel CET支持(-fcf-protection)编译的二进制文件中的PLT存根
ELF:接受在文件末尾运行的PT_LOAD段的文件
ELF:MIPS:已实现的重定位R_MIPS_GOT_PAGE,R_MIPS_GOT_OFST
ELF:MIPS:添加对MIPS64复杂重定位的支持
MACHO:允许用户配置为新的男子气概文件加载的类型库。请参阅macho.cfg中的TIL_CONFIG
TDS:添加了对与exe文件连接的tds文件的支持
安装程序:
默认为python 3; 将Python 3.8.2与Windows安装程序捆绑在一起
调试器:
调试器:添加了对Bochs 2.6.10的支持
调试器:添加了对Zilog Z80处理器的调试支持
调试器:gdb:改进多线程程序的调试
调试器:ios:将iPhone SE 2添加到已知设备列表中/ li>
调试器:PIN:支持使用3.13引脚构建pintool
调试器:xnu:改进了对ktrw的支持。现在,使用“ Corellium-ARM64”配置,断点/监视点/寄存器可以按预期与ktrw一起使用。无需其他手动设置。
内核/杂项:
demangler:为vc++ ++和GCC添加c ++ 20宇宙飞船和co_await运算符
内核:将std :: _ Xlength_error()添加到不返回函数列表中
Lumina:Lumina功能可用于MIPS和PPC二进制文件
FLIRT / TILS / IDS:
TIL:引入了新的macosx类型库,直接从MacOSX.sdk / iPhoneOS.sdk(包括所有Objective-C和C ++框架)中的标头构建。参见macosx_sdk * .til / iphoneos_sdk * .til
TIL:引入了专门用于XNU内核和KEXT二进制文件的新类型库,它们是直接从XNU源代码构建的。参见xnu.til / xnu_arm.til
FLIRT:为vc1424添加了MFC签名(Visual Studio 2019.4)
FLIRT:为vc1425添加了MFC签名(Visual Studio 2019.5)
FLIRT:ICL:为icl200(Intel C ++ 20.0)添加了签名
FLIRT:ICL:为icl201(Intel C ++ 20.1)添加了签名
FLIRT:VC:为vc1424添加了签名(Visual Studio 2019.4)
FLIRT:VC:为vc1425添加了签名(Visual Studio 2019.5)
用户界面:
用户界面:许多IDA视图现在提供了另一种类似树的文件夹视图
用户界面:添加了用于搜索寄存器定义或寄存器使用的操作(Shift + Alt + Up,Shift + Alt + Down)
UI:现在可以从“函数调用”小部件中添加,删除,启用和禁用断点
UI:现在,“ Breakpoints”选择器还在列中报告状态(“启用/禁用” /“未解决”),而不仅仅是通过图标。
用户界面:在会话中,IDA默认会记住并恢复对话框的位置和大小(可通过RESTORE_DIALOGS_GEOMETRIES配置)
UI:调试器:当前线程现在以粗体显示
UI:调试器:在有关连接失败的错误消息中包含主机名和端口号
用户界面:消除了同步相似视图的限制(例如,现在可以同步2个idaview)
UI:显示在加载过程中要加载的文件的文件名
UI:“根据数据创建结构”:在结构内部使用时,请忽略虚拟字段名称,例如“ field_xxx”
UI:添加了get_synced_group(),以检索有关已同步哪些窗口小部件的信息。
外挂程式:
pdb:加快大型PDB的Loaing类型
dscu:引入用于dyldcache处理的子菜单(“文件”>“加载文件”>“ DYLD Shared Cache Utils”)
dscu:允许从ui加载分支孤岛(“文件”>“加载文件”>“ DYLD共享缓存实用程序”>“加载分支孤岛”)
dscu:允许从给定模块的依赖项列表中加载一个或多个模块(文件>加载文件> DYLD共享缓存实用程序>加载依赖项)
dscu:允许从dyldcache单独加载模块头
dscu:允许手动加载格式化的dyld标头
dscu:允许用户从任何模块单独加载单个部分
dscu:将模块选择器转换为多选择器。现在可以一次加载多个dyldcache模块(“文件”>“加载文件”>“ DYLD共享缓存实用程序”>“加载模块”)
导出数据:将数据导出为C数组时,允许用户更改变量名称
导出数据:将项目导出为C数组时,请使用数组变量名称作为文件名
objc:改进objc_msgSendSuper()调用站点的反编译
svdimport:带有内存寄存器定义的新插件,用于加载和应用符合ARM CMSIS的SVD文件