Commit Graph

17782 Commits

Author SHA1 Message Date
James
221ad21bed GP-6976 handle .cold symbols in ELF files 2026-07-22 09:23:05 -04:00
Ryan Kurtz
d70f969e8e GP-6773: Fallback loader fix for batch importer 2026-06-22 05:14:04 -04:00
Ryan Kurtz
5931088767 Merge remote-tracking branch 'origin/GP-6979_caheckman_ThumbPointers'
(Closes #8990, Closes #8471))
2026-06-18 13:54:12 -04:00
Ryan Kurtz
7714c29d98 Merge remote-tracking branch
'origin/GP-6975-dragonmacher-window-min-size' (Closes #9260)
2026-06-18 13:47:08 -04:00
Ryan Kurtz
3fbc53f39c Merge remote-tracking branch 'origin/GP-6906-dragonmacher-analysis-panel-nav--SQUASHED' 2026-06-18 13:44:23 -04:00
Ryan Kurtz
5b98619bea Merge remote-tracking branch 'origin/GP-6946_caheckman_ThunkCheck' 2026-06-18 13:42:48 -04:00
Ryan Kurtz
df8d7f151d Merge remote-tracking branch 'origin/patch' 2026-06-18 13:41:48 -04:00
Ryan Kurtz
30802d883f Merge remote-tracking branch 'origin/GP-6896_ryanmkurtz_import-file--SQUASHED' into patch 2026-06-18 13:38:16 -04:00
ghidra1
81a379c09a GP-1 ProgramLoader javadoc update 2026-06-18 12:56:24 -04:00
ghidra1
f60a0152e7 Merge remote-tracking branch 'origin/patch' 2026-06-18 12:17:21 -04:00
Ryan Kurtz
ef20124903 GP-6896: ImporterDialog 'Program Name' to 'Name' label change 2026-06-18 09:49:57 -04:00
caheckman
86f4daefc5 Handle TYPE_CODE in isPtrsubMatching 2026-06-18 00:18:15 +00:00
Nicolas Iooss
7cfdb50315 Do not apply rule ptrsubundo for pointers targeting ARM Thumb functions
In ARM Thumb, function pointers are used with an offset. For example,
let's consider this C program:

    static void fn(void) {}

    __attribute__((noinline, optimize("O0")))
    static void call_function(void (*callback)(void)) {
        callback();
    }

    void call_fn_through_reference(void) {
        call_function(fn);
    }

Function call_fn_through_reference actually gives the address fn + 1 in
the first parameter of call_function, when this code is compiled in ARM
Thumb mode. In such a situation, Ghidra's decompiler produced:

    void call_fn_through_reference(void)
    {
      call_function((void *)0x10189);
      return;
    }

The rules which were applied included both:

- rule constantptr, which converted the constant 0x10189 to
  (#0x0 -> #0x10188) + #0x1 (opcodes PTRSUB and INT_ADD) ;
- rule ptrsubundo, which converted this expression to
  (#0x0 + #0x10188) + #0x1 (later simplified to #0x10189).

The second rule cancelled the first one. In this case, rule ptrsubundo
should not be applied as the expression involving PTRSUB targets a valid
location.

Nevertheless, TypePointer::isPtrsubMatching(off=0x10188, extra=1, multiplier=0)
returned false. This is due to the fact that even though the size of
symbol fn was adjusted to be 2 (in method DecompileCallback::encodeFunction in
Ghidra/Features/Decompiler/src/main/java/ghidra/app/decompiler/DecompileCallback.java
), the actual type is "pointer to a TypeCode which size is 1", so
extra >= subType->getSize() and the method returned false.

Fix TypePointer::isPtrsubMatching to return true when a pointer to some
code is encountered with extra >= 0. This makes Ghidra's decompiler now
produce:

    void call_fn_through_reference(void)
    {
      call_function(fn + 1);
      return;
    }

Fixes: https://github.com/NationalSecurityAgency/ghidra/issues/8471
Fixes: 34adcff830 ("GP-4782 Refactor RulePtrsubUndo")
2026-06-18 00:16:02 +00:00
dragonmacher
e685e2c839 GP-6906 - Accessibility - Options fixes for Tab key traversal and for jumping between the options tree to the editor pane using Ctrl-E 2026-06-17 16:16:55 -04:00
Ryan Kurtz
4a802292a1 Merge remote-tracking branch 'origin/GP-0_Dan_fixTests-2026-06-17-1' 2026-06-17 14:28:47 -04:00
Dan
4f6ecbf983 GP-0: Fix tests and clean up. 2026-06-17 18:24:48 +00:00
Ryan Kurtz
3a8dc77d40 GP-0: Correcting gradle-wrapper.properties location 2026-06-17 11:00:53 -04:00
Ryan Kurtz
38196bedf9 Merge remote-tracking branch 'origin/GP-6967_caheckman_ScopeDelimiter' 2026-06-17 10:52:46 -04:00
Ryan Kurtz
67bae973e9 Merge remote-tracking branch 'origin/GP-6957_caheckman_RelBranchToNextInst' 2026-06-17 10:50:26 -04:00
Ryan Kurtz
47e7ca9cc2 Merge remote-tracking branch 'origin/patch' 2026-06-17 10:49:32 -04:00
ghidra1
2ad4bdcae5 Merge branch 'GP-1_ghidra1_HeadlessURLFix' into patch 2026-06-17 10:48:57 -04:00
Ryan Kurtz
190949f267 GP-0: Upping gradle wrapper to 9.5.1 2026-06-17 10:45:56 -04:00
Ryan Kurtz
75f4965eef Merge remote-tracking branch 'origin/GP-6968_emteere_e500mcStackOffset'
into patch (Closes #9089)
2026-06-17 10:42:20 -04:00
caheckman
ff4f0ed1f6 GP-6946 Refactor JumpTable thunk check 2026-06-16 21:55:29 +00:00
caheckman
e465f9b3d6 GP-6967 Add getScopeDelimiter 2026-06-16 21:41:18 +00:00
Ryan Kurtz
f9e13846b2 Merge remote-tracking branch 'origin/GP-6940-dragonmacher-function-editor-issue--SQUASHED' 2026-06-16 15:31:13 -04:00
Ryan Kurtz
61cab17ef8 Merge remote-tracking branch
'origin/GP-6973_dragonmacher_PR-9240_hay-mon_fix_ano_tests'
(Closes #9240)
2026-06-16 15:30:05 -04:00
Ryan Kurtz
ded900082f Merge remote-tracking branch 'origin/patch' 2026-06-16 15:28:15 -04:00
Ryan Kurtz
1ceb722497 GP-0: Removing ancient/useless debug JVM args 2026-06-16 15:23:23 -04:00
Ryan Kurtz
3ab53dbfa5 Merge remote-tracking branch
'origin/GP-6964_ghidorahrex_PR-9278_joshualmashburn_superh_index_file'
into patch (Closes #9278)
2026-06-16 15:21:53 -04:00
Ryan Kurtz
80cd37bc3b GP-0: Fixing ServerTestUtil so it can run on Windows 2026-06-16 15:19:41 -04:00
dragonmacher
bbfd8d93f8 GP-6975 - Added a window minimum size to prevent losing really small
windows
2026-06-16 15:04:00 -04:00
dragonmacher
99a75d13ba GP-6973 - Variable annotation address handling update 2026-06-16 14:38:01 -04:00
hay-mon
9a3f0c0537 Annotation: Adjust Variable Handler
Reduce the supported address set to exclude non-local addresses.
2026-06-16 14:05:29 -04:00
dragonmacher
31ff8bd600 GP-6940 - Fixed a bug in function editor namespace combo box when tabbing from signature 2026-06-16 12:23:06 -04:00
ghidra1
d0478ad2f6 GP-1 Corrected folder URL creation for HeadlessAnalyzer.processURL 2026-06-16 10:28:32 -04:00
ghidorahrex
4170459fdd GP-6964: Added index entries for 1dc/lds/stc/sts.l instructions 2026-06-16 14:01:12 +00:00
Ryan Kurtz
9ea285b77a Merge remote-tracking branch 'origin/patch' 2026-06-16 06:36:11 -04:00
Ryan Kurtz
5f947dd3c2 Merge remote-tracking branch 'origin/GP-6971_ghizard_Fix_PDB_memory_consuption_issue_for_malformed_directory_stream' into patch 2026-06-16 06:31:51 -04:00
ghizard
c34a6604c9 GP-6971 - Fix memory-consumption issue in malformed PDB directory stream 2026-06-16 06:25:44 -04:00
Ryan Kurtz
a3c59d876e GP-0: Fixing RTTI test 2026-06-16 06:25:34 -04:00
Ryan Kurtz
a8473cc42f Merge remote-tracking branch 'origin/GP-6961_Dan_fixReadFromStaticOnlyIfNeverKnown--SQUASHED' 2026-06-16 05:16:14 -04:00
Ryan Kurtz
8eaa4cdc0f Merge remote-tracking branch 'origin/GP-6840_d-millar_remote_dbgeng_from_linux--SQUASHED' 2026-06-16 05:14:47 -04:00
Ryan Kurtz
706ad8e6dd Merge remote-tracking branch 'origin/GP-6904_d-millar_unwinder_tests--SQUASHED' 2026-06-16 05:13:00 -04:00
Ryan Kurtz
0394d6e1a1 Merge remote-tracking branch 'origin/GP-6939-dragonmacher-decomp-repaint-issue' 2026-06-16 05:11:48 -04:00
Ryan Kurtz
bf3ea537c9 Merge remote-tracking branch 'origin/patch' 2026-06-16 05:10:34 -04:00
Ryan Kurtz
4bc4218768 Merge remote-tracking branch 'origin/GP-6769_ghidorahrex_tricore_fix_carry_flag--SQUASHED' into patch 2026-06-16 05:03:32 -04:00
Ryan Kurtz
4c7ddb6041 Merge remote-tracking branch 'origin/GP-6970_ghidra1_GhidraURLFixes'
into patch (Closes #9275)
2026-06-16 04:56:13 -04:00
ghidra1
b2298c51ae GP-6970 Corrected GhidraURL encode/decode issues. Improved tolerance
for GhidraURLs produced by BSim which failed to properly encode.
2026-06-15 19:06:07 -04:00
emteere
8cdec9bbf6 GP-6989 e500mc stack offset adjustment 2026-06-15 20:08:40 +00:00