-
-
Ghidra v9.1发布
-
发表于:
2019-9-25 08:23
10188
-
新功能
数据类型。向结构和联合编辑器添加了位字段支持。还添加了一个附加的位域编辑器,用于未对齐结构中的显式位域放置。(GT-559)
Eclipse集成。在Extensions / Eclipse下的安装目录中添加了新的GhidraSleighEditor Eclipse插件。(GT-113)
GUI。添加了通过按住Control键并单击唯一的排序表列来关闭表排序的方法。(GT-2763,问题#87)
GUI。现在,将鼠标悬停在地址上会显示该地址的字节在导入文件中来自何处。(GT-3016,第154期)
进口商:MachO。为DYLD共享的缓存文件添加了新的导入器/加载器。(GT-2343)
语言。实现了英特尔MCS-96处理器模块。(GT-2350)
语言。添加了Tricore处理器规格。(GT-3041,问题#567)
语言。添加了HCS12X处理器规格。(GT-3049)
语言。添加了HCS05和HCS08雪橇处理器规格。(GT-3050)
语言。添加了SH4雪橇处理器规范。(GT-3051,第37期)
语言。添加了MCS-48处理器规格。(GT-3058,问题#638)
内存。添加了新的API,以保留导入程序的原始字节以及它们如何映射到内存块。(GT-2845)
程序API。增加了对结构和联合的位域支持。 警告:将对所有可打开更新的已修改程序和数据类型存档强制进行版本升级。(GT-557)
SLEIGH。添加了两个新的扩展模块(SleighDevTools和GnuDisassembler)以支持处理器模块开发。增加了对pcode junit测试的支持,该测试利用交叉编译的C测试代码的仿真来验证雪橇pcode(即指令语义)。SleighDevTools扩展提供了pcode测试C源代码和关联的构建脚本,以及外部反汇编程序支持,以帮助验证反汇编指令语法。(GT-3067)
改进
分析。添加了示例脚本ResolveX86orX64LinuxSyscallsScript.java,用于反编译x86和x64中的Linux系统调用。在Advanced类中添加了与syscall相关的练习。(GT-3113)
基本基础设施。使bash脚本更具可移植性,从而可以在其他平台上启动Ghidra。(GT-2742,问题#347)
建立。创建了一个新的Gradle任务,该任务可以自动化DevGuide.md中定义的某些安装过程。(GT-2897)
建立。现在,该版本允许使用较新版本的Gradle。(GT-3017,问题#737)
数据类型。所有DataType归档文件都已重新生成,以支持新的位域功能。(GT-2878)
数据类型。CategoryPath现在在其组件中接受正斜杠。(GT-2961)
数据类型。修复了“结构编辑器”错误,该错误导致成功编辑名称字段后导致行的“ 数据类型”字段被编辑。(GT-3109,问题#703)
反编译器。现在,大多数形式的不必要或冗余的复制语句都已从反编译器输出中删除。(GT-2839)
反编译器。增强了双击Decompiler大括号语法令牌以导航到匹配大括号的功能。(GT-2846)
反编译器。更新了反编译器,以在goto双击该标签时导航至该语句的标签。(GT-2847)
反编译器。更新了反编译器的“ 复制”操作,以在没有选择时复制光标下的符号。(GT-2914,问题#411)
反编译器。修复了外部导航损坏的问题:导航至“ 编辑->工具选项...”中的“ 外部程序”选项。(GT-2932)
反编译器。用于处理优化除法的反编译器逻辑已更新,可以识别通常在使用较新的64位编译器生成的可执行文件中发现的格式。(GT-2968,问题#668)
反编译器。为x64 __chkstk功能实现了呼叫修复。(GT-3006,版本# 670,671)
反编译器。反编译器简化了优化除法和比较表达式中使用的许多新符号位提取形式。(GT-3036)
反编译器。Ghidra现在在分析16位x86程序时支持保护模式寻址。这是分析NE格式可执行文件时的默认变体,但也可以用于MZ(和其他)格式。(GT-3090,第98期)
反编译器。向反编译器添加了“ 显示引用以查找地址和查找引用以引用符号”操作。在结构编辑器中添加了“ 字段的查找用途”操作。(GT-3115,版本# 474、542、543)
反编译器。更新了反编译器的“ 编辑数据类型”操作以处理更多字段。(GT-3116,版本# 275,511)
反编译器。在反编译器窗口中重命名单个参数不再阻止浮动参数的数据类型。重新键入单个参数将锁定该参数的数据类型,但不再阻止其他参数的数据类型浮动。(GT-3162)
文件资料。修复了GitHub相关文档中的拼写错误和其他错误。(GT-2748,版本# 345、361、370、375、398)
文件资料。向DevGuide.md添加了有关如何运行单元/集成测试的文档。(GT-3046,版本# 815,832)
DWARF。纠正了DWARF分析,以处理在非默认位置导入的二进制文件。(GT-2963,问题#637)
仿真器。在API级别添加了改进的仿真支持,包括通过EmulatorHelper类公开的简化API。提供了利用此API的示例GhidraScript。(GT-3066)
功能图。更新了功能图以缩小时显示当前程序选择。(GT-2735)
功能图。在功能图中添加了一个选项,以允许进行更复杂的边缘布线,以绕过非入射顶点。请参阅工具选项以获取更多信息并启用此功能。(GT-3019,问题#811)
功能图。修复了功能图边缘布局错误,该错误会导致某些边缘被顶点修剪。(GT-3161)
GUI。在“脚本表选择器”对话框中添加了侦听器,该对话框关闭时将得到通知。(GT-2216)
GUI。修复了全局工具自动保存选项,使其在Ghidra会话之间持续存在。(GT-2818,第231期)
GUI。添加了apple.laf.useScreenmenuBar选项,以将菜单栏提升到macOS上的窗口之外。该选项默认为关闭,但可以在support / launch.properties中激活。(GT-2859,问题#562)
GUI。更新了“ 重复文本/内存搜索”菜单项,以显示用于长时间搜索的搜索对话框。(GT-2872,问题#585)
GUI。更新了结构编辑器,以允许用户键绑定起作用。(GT-2894,问题#504)
GUI。现在可以配置用于发送重置和中断命令的Python解释器键绑定。(GT-2901,版本#588)
GUI。在support / launch.properties中调整了默认图形设置,以支持更多现成的显示。(GT-2913,问题#341)
GUI。添加了分配键绑定以激活单个组件提供程序的功能。(GT-2925,问题#539)
GUI。修复了“搜索结果”表的“ 预览”列中的渲染问题。(GT-2942,问题#550)
GUI。更新了功能签名编辑器的“ 数据类型选择器”对话框,以允许键盘导航。(GT-3110,问题#636)
GUI。修复了DB Viewer组件中的NullPointerException。(GT-3163,问题#1023)
进口商。更新了IDA的x86 16位处理器绑定。(GT-3004,问题#771)
进口商:ELF。改进的ELF加载器功能,可以处理格式错误的标头,包括负文件偏移量和缺少的节名称。(GT-2933,第35期)
进口商:PE。当对内存块进行布局时,PeLoader可以更好地说明节对齐,从而可以将文件中的其他字节加载到内存中。(GT-2827,第#327、418版)
进口商:PE。从PeLoader中删除了对分解器的异地调用并放下了类型。通过此修复程序,可以正确并以正确的顺序应用拆解和其他分析仪。(GT-2849)
进口商:PE。PeLoader现在将TLS回调函数添加为入口点。(GT-2898,第102期)
语言。添加了新的任务监视器服务,以在构建语言出现延迟时更好地处理用户体验。(GT-2376)
语言。纠正了Thumb bl和add指令的ARM / Thumb指令解析。(GT-2744,问题#362)
语言。添加了AVR8手动索引文件。(GT-2828,问题#346)
语言。改进了对Windows上ARM的支持。(GT-2880)
语言。M68000 LSL.W,ASL.B,LSL.B,并ASL.W说明现在正确地设置CF标志。(GT-2907,问题#619)
语言。更新了x86手动索引文件。(GT-2943,问题#366)
语言。改进了slaspec文件中与宏标签相关的错误报告。(GT-2995,问题#522)
语言。添加了MIPS特殊0x1f模式。(GT-3005,第#709版)
语言。添加X了对M68000处理器lsl和lsr指令的条件标志寄存器的正确更新。(GT-3137,问题#983)
语言。已实施的PowerPc VLE中断处理程序效率指令(GT-3143,第#935版)
语言。将AVR32说明手册索引更新为最新版本(GT-712)
清单。更新了清单以通过使用鼠标滚轮时按住Shift键来支持水平滚动。(GT-3105,第451期)
清单:参考。创建了新的覆盖引用类型,这些引用类型改进并扩展了覆盖调用,跳转和callothers的能力。(GT-2885)
多用户。添加了一个脚本,以使存储库管理员能够终止共享项目上属于单个用户的多个文件检出。(GT-2893)
多用户:Ghidra服务器。添加了其他Ghidra Server身份验证模式,包括:通过Kerberos和JAAS的Active Directory。JAAS框架可以促进使用登录名和密码的LDAP,PAM和其他JAAS支持的扩展的使用。(GT-2658)
PDB。现在将HTTPS用于Microsoft符号服务器URL。(GT-2819,问题#369)
PDB。现在,PDB处理可以在CategoryPath下存储包含正斜杠的数据类型。(GT-2974,版本# 94,182)
PDB。搜索PDB时,PDB Analyzer不再自动包括程序的PE标头中指定的PDB路径。但是,在搜索过程中会考虑此路径中的文件名。分析仪的“ 不安全:在PDB搜索中包括PE PDB路径”选项允许用户恢复到原始PDB搜索算法。(GT-3076,第277期)
程序API。向程序元数据和API添加了SHA256哈希。(GT-2753,问题#331)
脚本编写。更新的脚本表选择器对话框:修复了跟踪工作项的错误,添加了用于项删除和对话框关闭通知的新API方法,并防止同一项被多次处理。(GT-2724,问题#307)
脚本编写。修复了MultiInstructionMemReference ghidra脚本,以将引用正确放置在具有延迟槽的指令上。(GT-2906)
雪橇。sleigh编译器现在报告-nNOP命令行选项的行号。(GT-2905,问题#561)
雪橇。SLEIGH编译器现在警告在构造函数中构建操作数时可能会无意中覆盖另一个操作数。(GT-3085)
测试:Junits。test.gradle getLogFileUrl()不再搜索用户为.dir的log4j的属性文件。(GT-2834,问题#499)
测试:Junits。添加了新的Gradle任务以运行集成测试并生成HTML报告。(GT-3060,第870期)
错误
分析。修复了EmbeddedMediaAnalyzer中的一个异常,该异常是在地址空间的末尾发现媒体时发生的。(GT-2890)
分析。FMA,F16C和一些缺少的AVX指令的识别和反汇编已添加到基本x86处理器规范中。这些指令的pcode是伪操作,而不是完整的pcode实现。(GT-3168)
基本基础设施。将apache-commons-lang3库更新为支持Java 11的版本3.9。(GT-2879)
基本基础设施。阻止Ghidra在32位Java安装中启动。(GT-3146,问题#882)
数据类型。在未初始化的内存中定义时,已更正的字符串数据默认标签生成,现在将显示为。(GT-2715,第272期)STRING_address
数据类型。针对字符大小大于一(1)的处理器的改进的ASCII字符串数据处理。(GT-2842)
数据类型。更改了BooleanDataType以扩展AbstractIntegerDataType,包括对位字段的支持。(GT-3170)
反编译器。修复了别名问题,即反编译器有时会放弃初始化或将其他代码写入堆栈的问题。(GT-2369)
反编译器。修复了导致反编译器在包含switch语句时错误地忽略无限循环的显示的错误。(GT-2852,问题#443)
反编译器。如果隐含扩展名,则不再在反编译器中打印整数扩展名转换。(GT-2857)
反编译器。改进了对重叠空间的处理。特别是,反编译器现在可以处理对OTHER空间中定义的覆盖的引用。添加了SLEIGH版本号。(GT-2873)
反编译器。更新了反编译器,以便在反编译函数时将光标置于函数签名上。(GT-2882)
反编译器。修复了在反编译器中Data type does not fit使用“ 重新输入”操作时常见的错误源。(GT-2956)
反编译器。equals()Varnode AST中的固定方法。(GT-2959,问题#677)
反编译器。用户不能再从反编译器重命名未定义的函数。(GT-3043,问题#753)
反编译器。修复了不允许在反编译器中覆盖特定CALL原型到外部函数的错误。(GT-3145)
反编译器:Java。更新了Decompiler的悬停工具,以显示变量和返回类型的数据类型的预览。(GT-2629)
反编译器:Java。修复了涉及反汇编invokedynamicJVM类文件中某些指令的错误。对反编译JVM字节码进行了许多小的改进。(GT-2757,问题#287)
德曼格勒。修复了DemangledFunctionPointer中的NullPointerException。(GT-2948,问题#609)
DWARF。空的DWARF编译单元部分现在将被忽略。(GT-2939,第690期)
出口商。idaxml.py中的负内存引用不再导致错误。(GT-2696,版本# 213,885)
出口商。修复了Intel Hex Exporter不忽略“ 地址空间”选项值的问题。(GT-2749)
出口商。修复了C / C ++导出程序的取消行为。(GT-2881,问题#591)
文件格式。修复了CPIO文件系统中的内存不足错误。(GT-2912)
文件格式。DmgClientFileSystem不再错误地匹配zlib压缩文件。(GT-2926,问题#583)
文件系统浏览器。修复了当元素是在zip文件中没有对应条目的目录时,在文件系统浏览器中单击zip文件中的目录上的获取信息时,NullPointerException的问题。更改了获取信息操作,以显示有关突出显示的文件以及从该文件挂载的任何文件系统的信息。(GT-2758)
文件系统浏览器。修复了双击容器文件以打开其中的文件系统时,文件系统浏览器中对话框堆叠的问题。(GT-2764)
文件系统浏览器。减少了DYLD共享的缓存文件系统的磁盘使用率。(GT-2887)
功能图。修复了将功能图的输入节点放入组节点时遇到的异常。(GT-3074)
功能图。修复了功能图边缘路由错误,该错误有时会导致边缘向上流动,从而意外路由。(GT-3153,问题#994)
GUI。修复了删除位于其自身地址空间中的大内存块时的堆栈跟踪。(GT-2699)
GUI。更改了数据类型预览以允许添加字符串数据类型。(GT-2832)
GUI。固定在“反编译器”和“列表”窗口的工具提示弹出窗口中显示操作数标量值。(GT-2836,问题#120)
GUI。修复了数据类型预览中的错误,该错误在删除原始类型时导致结构中的渲染错误。(GT-2844)
GUI。修复了符号树ClassCastException,该树在树仍加载时单击节点时发生。(GT-2870,第96期)
GUI。修复了导致XRef的“ 引用类型”列无法正确排序的错误。(GT-2892)
GUI。修复了列表错误,使光标恢复到Ghidra启动时的先前位置。(GT-2927,问题#505)
GUI。更新了“编辑功能签名”对话框,以在首次打开时将焦点放在签名字段上。还添加了撤消/重做支持。(GT-2947,问题#635)
GUI。修复了在表中具有活动编辑的情况下关闭编辑器时在“引用编辑器”中遇到的异常。(GT-2951)
GUI。修复了以下错误:在菜单路径的最后一个字段中,“&”字符未设置Ghidra菜单助记符。(GT-2954)
GUI。更新了组件提供程序的“ 关闭”按钮以允许进行键绑定。(GT-2971,问题#533)
GUI。修复了使用快照窗口时启用工具导航按钮的问题。(GT-2973)
GUI。纠正了函数编辑器的问题,其中解析的签名文本导致不正确的类型大小,从而影响了自定义存储选择。还增加了对解析签名的支持,这些签名引用了来自开放数据类型档案的类型。(GT-3059)
GUI。在“ 选择字节”对话框中更新了调整大小。(GT-3072)
GUI。修复了打开或关闭大型结构或数组时列表跳到随机位置的错误。(GT-3088)
GUI。修复了导致某些表(例如,符号表)在其初始加载数据期间两次排序的错误。(GT-3142)
帮忙。修复了在导航帮助UI时出现NullPointerException的问题。(GT-2830,问题#493)
进口商。修复了MapLoader中的问题,该问题导致无法将.map文件添加到现有程序中。(GT-2972,第#762版)
进口商。对于批量导入,解决了Windows工作站上目录名的最后一个字符被截断的问题。(GT-3012,问题#797)
进口商。修复了NE导入器如何为其导入的程序创建外部功能符号的错误,该错误使反编译器可以正确访问任何可用信息。(GT-3140,第770期)
进口商:ELF。为添加了ELF重定位处理程序R_AARCH64_JUMP26。(GT-2999,问题#775)
进口商:ELF。改进的ELF MIPS支持PIC编译二进制文件中遇到的GP相对重定位。还增加了对R_MIPS_RPREL32搬迁的支持。(GT-3026,问题#764)
进口商:ELF。ELF X86-64搬迁R_X86_64_GOT32,R_X86_64_PLT32,R_X86_64_SIZE32,R_X86_64_SIZE64,和R_X86_64_GOTPC32已被正确地固定在搬迁。已添加其他ELF x86-64重定位,通常在未链接的.o文件中找到。(GT-3089,问题#910)
语言。利用FLOAT_NEGpcode op简化了PowerPC fneg指令。(GT-2781,问题#387)
语言。添加了6502 I状态位的保存和恢复。(GT-2826,问题#469)
语言。更正了z80处理器中的备用寄存器定义。(GT-2876,问题#520)
语言。检查了所有处理器模块的GhidraSleighEditor语法错误。(GT-2902)
语言。增加了支持RD,WR,FS,和GSBASE在x86指令。(GT-2940,第#554期,第555期)
语言。增加了修复的符号扩展ADD,AND,CMP,和SUB在x86-64位指令。(GT-2955,问题#881)
语言。更新了PIC-30除法器pcode以更正反编译问题。(GT-3008)
语言。修复了x86 AAM指令。(GT-3015)
语言。添加了SH1 / 2 / 2a雪橇处理器规格。(GT-3029,问题#715)
语言。纠正了MOVBE指令的x86解码(GT-3039,第#822版)
语言。更正了M68000 mov3q指令的解码和语义(GT-3080,第#905版)
语言。I2D现在,JVM指令可以正确地将8字节的双字节压入堆栈。(GT-3081)
语言。解决了在Windows Firefox中显示处理器手册的问题。(GT-3084)
语言。MOV放宽到调试寄存器的编码。(GT-3117)
语言。纠正了PowerPC vectorPermute pcodeop用于仿真的行为。(GT-3148)
语言。更正MIPS搬迁计算的R_MIPS_26,R_MIPS16_26和R_MICROMIPS_26_S1。(GT-3154,版本#1001)
语言。纠正了PowerPC VLE rlwimi和rlwinm指令的位模式。(GT-3159,问题#752)
清单。修复了编辑长注释时潜在的无限循环。(GT-2824,问题#437)
清单。修复了列表注释中潜在的ClassCastException。(GT-3023)
清单。现在,在编辑字段后,列表中的光标会保留在适当的列中。(GT-3045,第#702版)
清单。修复了某些寄存器/子寄存器组合可能会出现的寄存器突出显示问题。(GT-3071,问题#810)
多用户。纠正了已查看的结帐列表中的终止结帐,该结帐总是根据选定的行数而不是实际选定的行来终止第一行范围。(GT-2903)
多用户:Ghidra服务器。使用新-i选项添加了正确的Ghidra Server接口绑定。更正了-ip选项,以严格将远程访问主机名传达给客户端。由于注册表端口现在使用TLS,因此更新的服务器将仅接受来自Ghidra 9.1和更高版本客户端的连接。(GT-2685,第101期,第645版)
多用户:Ghidra服务器。修复了svrAdmin脚本中传递参数的错误。(GT-3082,问题#907)
多用户:合并。纠正了影响修改后的功能定义数据类型的合并问题,该问题可能导致NullPointerException。(GT-2922)
PDB。已添加到char16_t和char32_tPDB中BASIC_TYPE_STRINGS。(GT-2952,第685期)
PDB。解决了pdb.exe中的内存泄漏和字符串处理问题。(GT-2975,版本#674、597、598、599、600)
PDB。现在可以从最新的Visual Studio版本PDB恢复堆栈变量。(GT-3014)
程序API。更正了参数存储,该参数存储在撤消/重做后无法正确刷新。(GT-3130,问题#960)
项目经理。修复了在Windows根目录(例如Z:\)中创建Ghidra项目的问题。(GT-2585)
项目经理。修复了在加载恶意项目时可能发生的路径遍历漏洞。(GT-3001,第#789期)
脚本编写。GhidraScript.askDomainFile()现在,当单击“取消”按钮时,正确抛出CancelledException。(GT-2841)
脚本编写。删除了早于5个发行版的不推荐使用的脚本方法。(GT-2949)
雪橇。纠正了Sleigh编译器错误,该错误在空间字大小不为一(1)时对命名寄存器偏移量规范执行了不正确的边界检查。(GT-3034,问题#831)
版本跟踪。修复了版本跟踪哈希算法中的NullPointerException。(GT-2976)
Ghidra v9.0.4(2019年5月)
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2019-9-25 09:17
被ZwCopyAll编辑
,原因: