GP-0 Preliminary WhatsNew doc

This commit is contained in:
ghidra1 2023-12-05 14:48:53 -05:00
parent 797dae7c37
commit f9103016b1

View File

@ -45,12 +45,12 @@
</P> </P>
<hr> <hr>
<H1>What's New in Ghidra 10.4</H1> <H1>What's New in Ghidra 11.0</H1>
<H2>The not-so-fine print: Please Read!</H2> <H2>The not-so-fine print: Please Read!</H2>
<P>Ghidra 10.4 is fully backward compatible with project data from previous releases. <P>Ghidra 11.0 is fully backward compatible with project data from previous releases.
However, programs and data type archives which are created or modified in 10.4 will not be useable by an earlier Ghidra version. </P> However, programs and data type archives which are created or modified in 11.0 will not be useable by an earlier Ghidra version. </P>
<P>This release includes new features and capabilities, performance improvements, quite a few bug fixes, and many pull-request <P>This release includes new features and capabilities, performance improvements, quite a few bug fixes, and many pull-request
contributions. Thanks to all those who have contributed their time, thoughts, and code. The Ghidra user community thanks you too!</P> contributions. Thanks to all those who have contributed their time, thoughts, and code. The Ghidra user community thanks you too!</P>
@ -64,7 +64,7 @@
correctable. Programs imported with previous release versions should upgrade correctly through various automatic upgrade mechanisms. Any program correctable. Programs imported with previous release versions should upgrade correctly through various automatic upgrade mechanisms. Any program
you will continue to reverse engineer should be imported fresh with a release version or a build you trust with the latest code fixes.</P> you will continue to reverse engineer should be imported fresh with a release version or a build you trust with the latest code fixes.</P>
<P>NOTE: Ghidra Server: The Ghidra 10.4 server is compatible with Ghidra 9.2 and later Ghidra clients. Ghidra 10.4 <P>NOTE: Ghidra Server: The Ghidra 11.x server is compatible with Ghidra 9.2 and later Ghidra clients. Ghidra 11.x
clients are compatible with all 10.x and 9.x servers. Although, due to potential Java version differences, it is recommended clients are compatible with all 10.x and 9.x servers. Although, due to potential Java version differences, it is recommended
that Ghidra Server installations older than 10.2 be upgraded. Those using 10.2 and newer should not need a server upgrade.</P> that Ghidra Server installations older than 10.2 be upgraded. Those using 10.2 and newer should not need a server upgrade.</P>
@ -74,56 +74,10 @@
demangler, and legacy PDB executables for your plaform. Please see the "Building Ghidra Native Components" section in the demangler, and legacy PDB executables for your plaform. Please see the "Building Ghidra Native Components" section in the
<a href="InstallationGuide.html#Build">Ghidra Installation Guide</a> for additional information.</P> <a href="InstallationGuide.html#Build">Ghidra Installation Guide</a> for additional information.</P>
<H2>Mach-O Improvements</H2>
<P>Support for the Mach-O binary file format has received many updates, including more complete markup of load command data and Swift type metadata. <h2>--- TBD ---</h2>
Support has also been added for threaded binding (<span class="gcode">BIND_OPCODE_THREADED</span>). Libraries extracted from the <span class="gcode">dyld_shared_cache</span>
GFileSystem now contain a packed down <span class="gcode">__LINKEDIT</span> segment, significantly reducing the size of the resulting binary.</P>
<P>Local symbols within <span class="gcode">dyld_shared_cache</span> extracted libraries are now included in place of <span class="gcode">&lt;redacted&gt;</span> symbols.</P>
<P>In addition to searching local filesystem directories, library dependencies can now be loaded from the top-level of any GFileSystem-supported container file. This is allowed for all Import file
formats that support the loading of library dependencies. For example, this enables loading library dependencies directly from within a <span class="gcode">dyld_shared_cache</span> file without the
need to export them first to the local filesystem.</P>
<H2>Accessibility Improvements</H2>
<P>Ghidra's Listing, Byte Viewer, and Decompiler components have been updated to provide initial support for screen readers. These are custom Ghidra components
and as such do not have the typical built-in Java Swing support for screen readers. Other Ghidra components use standard Java Swing widgets and work
out of the box with screen readers.
</P>
<H2>Instruction Length Override</H2>
<P>Added the ability to reduce an instruction's effective code unit length to facilitate overlapping instructions when flows into the middle of
an instruction occur (i.e., offcut flow). This length override does not impact the actual number of bytes parsed. By reducing the first instruction's
effective code unit length, disassembly of the offcut location may be performed utilizing trailing bytes shared with the first instruction.
The first instruction will retain its original fallthrough, therefore overlapping instruction(s) which follow should generally be fully contained
within the first instruction's parsed byte length. The need for this has been observed in the x86 Linux libc library
where there may be a flow around a <span class="gcode">LOCK</span> prefix byte.
</P>
<H2>Analysis</H2>
<P>Function body creation has been reworked, when code from multiple functions overlap, to favor contiguous functions. There have been instances where compilers
share portions of another functions code, especially common return code. Where previously the jump to the other function would have been turned into a call, and
a portion of the other function split into two, the shared code will now belong to the function that falls into the shared code if possible.
Previously there was also a potential for arbitrary function bodies depending on which function was analzyed first.
These changes could have an affect on version tracking in some instances where the original binary was analyzed with an older version of Ghidra.</P>
<H2>Diff Improvement</H2>
<P>Diff can now be performed between two open programs which may include files previously opened via a Ghidra-URL. Previously, Diff only allowed
a file from the active project to be selected.</P>
<H2>GoLang Version Support</H2>
<P>GoLang versions 1.17, 1.19, and 1.20 have been added. Previously only version 1.18 was supported. A bug in the decompiler triggered
by GoLang binaries has also been fixed.</P>
<H2>Undo/Redo Change List</H2>
<P>Undo and Redo now have lists of transactions that can be undone or redone. This change makes it easy to choose a set of transactions to be undone/redone by choosing
an item further down the list instead of pressing undo/redo repeatedly</P>
<H2>Additional Bug Fixes and Enhancements</H2> <H2>Additional Bug Fixes and Enhancements</H2>
<P> Numerous other bug fixes and improvements are fully listed in the <a href="ChangeHistory.html">ChangeHistory</a> file.</P> <P> Numerous other bug fixes and improvements are fully listed in the <a href="ChangeHistory.html">ChangeHistory</a> file.</P>