Compare commits

..

56 Commits

Author SHA1 Message Date
Alex Cameron 81a04f2e1c Update stable to Ghidra v11.0 (#230)
* Fix a few more sleigh_RELEASE_IS_HEAD checks

* Update stable sleighspec file list

---------

Co-authored-by: Eric Kilmer <eric.d.kilmer@gmail.com>
2024-01-02 14:50:55 +00:00
auto-updater[bot] a0345f9df2 Update Ghidra HEAD to commit fa8eff4d3 (#231)
Bump Ghidra HEAD commit fa8eff4d3

Changed files:

```
M	Ghidra/Processors/HCS08/certification.manifest
M	Ghidra/Processors/HCS08/data/languages/HC05-M68HC05TB.pspec
A	Ghidra/Processors/HCS08/data/languages/HC05.cspec
M	Ghidra/Processors/HCS08/data/languages/HC05.ldefs
M	Ghidra/Processors/HCS08/data/languages/HC05.pspec
M	Ghidra/Processors/HCS08/data/languages/HCS08.cspec
M	Ghidra/Processors/HCS08/data/languages/HCS_HC.sinc
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2024-01-02 14:28:54 +11:00
Eric Kilmer 0c3b79aa33 Switch from "sleigh" to "ghidra" for include directory (#229)
This breaking change only affects header files from upstream Ghidra repository.

Instead of `#include <sleigh/header.hh>`, it will now be
`#include <ghidra/header.hh>` for headers from upstream.

---------

Co-authored-by: Alex Cameron <asc@tetsuo.sh>
2023-12-29 13:35:01 -05:00
Eric Kilmer b4f479a86f Add missing/new files for HEAD release (#228)
* Add new files to HEAD source list(s)

* Install missing headers

* Add extra headers that were missing
2023-12-25 14:10:09 -05:00
Eric Kilmer ee82a39842 Add note about extra ghidra namespace (#185) 2023-12-25 13:43:03 -05:00
auto-updater[bot] 71870b0bcd Update Ghidra HEAD to commit f7013bdfa (#227)
Bump Ghidra HEAD commit f7013bdfa

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/Makefile
A	Ghidra/Features/Decompiler/src/decompile/cpp/analyzesigs.cc
A	Ghidra/Features/Decompiler/src/decompile/cpp/analyzesigs.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.y
M	Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.cc
A	Ghidra/Features/Decompiler/src/decompile/cpp/signature.cc
A	Ghidra/Features/Decompiler/src/decompile/cpp/signature.hh
A	Ghidra/Features/Decompiler/src/decompile/cpp/signature_ghidra.cc
A	Ghidra/Features/Decompiler/src/decompile/cpp/signature_ghidra.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
M	Ghidra/Processors/Atmel/data/languages/avr8.sinc
M	Ghidra/Processors/Atmel/src/test.processors/java/ghidra/test/processors/AVR8_31_GCC_O0_EmulatorTest.java
M	Ghidra/Processors/Atmel/src/test.processors/java/ghidra/test/processors/AVR8_31_GCC_O3_EmulatorTest.java
M	Ghidra/Processors/Atmel/src/test.processors/java/ghidra/test/processors/AVR8_51_GCC_O0_EmulatorTest.java
M	Ghidra/Processors/Atmel/src/test.processors/java/ghidra/test/processors/AVR8_51_GCC_O3_EmulatorTest.java
M	Ghidra/Processors/Atmel/src/test.processors/java/ghidra/test/processors/AVR8_6_GCC_O0_EmulatorTest.java
M	Ghidra/Processors/Atmel/src/test.processors/java/ghidra/test/processors/AVR8_6_GCC_O3_EmulatorTest.java
M	Ghidra/Processors/Atmel/src/test.processors/java/ghidra/test/processors/AVR8_xmega_GCC_O0_EmulatorTest.java
M	Ghidra/Processors/Atmel/src/test.processors/java/ghidra/test/processors/AVR8_xmega_GCC_O3_EmulatorTest.java
A	Ghidra/Processors/Loongarch/src/main/java/ghidra/app/util/bin/format/elf/relocation/Loongarch_ElfRelocationConstants.java
A	Ghidra/Processors/Loongarch/src/main/java/ghidra/app/util/bin/format/elf/relocation/Loongarch_ElfRelocationHandler.java
M	Ghidra/Processors/MIPS/data/languages/mips32Instructions.sinc
M	Ghidra/Processors/PIC/data/languages/PIC24.sinc
M	Ghidra/Processors/PowerPC/certification.manifest
A	Ghidra/Processors/PowerPC/data/languages/SPE_FloatMulAdd.sinc
M	Ghidra/Processors/PowerPC/data/languages/Scalar_SPFP.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc.ldefs
A	Ghidra/Processors/PowerPC/data/languages/ppc_32_e500mc_be.cspec
A	Ghidra/Processors/PowerPC/data/languages/ppc_32_e500mc_be.slaspec
A	Ghidra/Processors/PowerPC/data/languages/ppc_32_e500mc_le.cspec
A	Ghidra/Processors/PowerPC/data/languages/ppc_32_e500mc_le.slaspec
M	Ghidra/Processors/PowerPC/data/languages/ppc_64_isa_vle_be.slaspec
M	Ghidra/Processors/PowerPC/data/languages/ppc_instructions.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc_vle.sinc
M	Ghidra/Processors/TI_MSP430/certification.manifest
M	Ghidra/Processors/TI_MSP430/data/languages/TI_MSP430.cspec
A	Ghidra/Processors/TI_MSP430/data/languages/TI_MSP430.dwarf
M	Ghidra/Processors/TI_MSP430/data/languages/TI_MSP430.ldefs
M	Ghidra/Processors/TI_MSP430/data/languages/TI_MSP430X.cspec
A	Ghidra/Processors/TI_MSP430/data/languages/TI_MSP430X.dwarf
M	Ghidra/Processors/x86/data/extensions/rust/unix/cc.xml
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationContext.java
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationHandler.java
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-12-25 12:05:09 -05:00
dependabot[bot] b2cd7abc2e build(deps): bump actions/upload-artifact from 3 to 4 (#226)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-15 18:02:38 +11:00
auto-updater[bot] 40d91fd61b Update Ghidra HEAD to commit 6242fda15 (#225)
Bump Ghidra HEAD commit 6242fda15

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/double.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/double.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/heritage.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/prettyprint.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/prettyprint.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
M	Ghidra/Processors/68000/data/languages/68000.sinc
M	Ghidra/Processors/JVM/src/main/java/ghidra/javaclass/format/ClassFileAnalysisState.java
M	Ghidra/Processors/MIPS/data/languages/mips.ldefs
M	Ghidra/Processors/MIPS/data/languages/mips32Instructions.sinc
M	Ghidra/Processors/RISCV/data/languages/riscv.custom.sinc
M	Ghidra/Processors/SuperH/data/languages/superh.sinc
M	Ghidra/Processors/x86/certification.manifest
A	Ghidra/Processors/x86/data/extensions/rust/unix/cc.xml
A	Ghidra/Processors/x86/data/extensions/rust/unix/probe_fixup.xml
A	Ghidra/Processors/x86/data/extensions/rust/unix/try_fixup.xml
A	Ghidra/Processors/x86/data/extensions/rust/windows/probe_fixup.xml
A	Ghidra/Processors/x86/data/extensions/rust/windows/try_fixup.xml
M	Ghidra/Processors/x86/data/languages/ia.sinc
M	Ghidra/Processors/x86/data/languages/x86-64-gcc.cspec
M	Ghidra/Processors/x86/data/languages/x86-64-win.cspec
M	Ghidra/Processors/x86/data/languages/x86.opinion
M	Ghidra/Processors/x86/data/languages/x86gcc.cspec
M	Ghidra/Processors/x86/data/languages/x86win.cspec
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-12-11 12:49:48 +11:00
dependabot[bot] 67c695f263 build(deps): bump actions/setup-python from 4 to 5 (#224)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-07 08:32:27 -05:00
auto-updater[bot] c4cab14295 Update Ghidra HEAD to commit 5fd01c739 (#223)
Bump Ghidra HEAD commit 5fd01c739

Changed files:

```
M	Ghidra/Processors/MC6800/data/languages/6x09.sinc
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-12-04 09:23:17 -05:00
auto-updater[bot] e46879c87f Update Ghidra HEAD to commit c225fac12 (#221)
Bump Ghidra HEAD commit c225fac12

Changed files:

```
M	Ghidra/Processors/Loongarch/data/languages/ilp32f.cspec
M	Ghidra/Processors/Loongarch/data/languages/loongarch.ldefs
M	Ghidra/Processors/MIPS/data/languages/mips.sinc
A	Ghidra/Processors/Xtensa/Module.manifest
A	Ghidra/Processors/Xtensa/build.gradle
A	Ghidra/Processors/Xtensa/certification.manifest
A	Ghidra/Processors/Xtensa/data/languages/cust.sinc
A	Ghidra/Processors/Xtensa/data/languages/flix.sinc
A	Ghidra/Processors/Xtensa/data/languages/xtensa.cspec
A	Ghidra/Processors/Xtensa/data/languages/xtensa.dwarf
A	Ghidra/Processors/Xtensa/data/languages/xtensa.ldefs
A	Ghidra/Processors/Xtensa/data/languages/xtensa.opinion
A	Ghidra/Processors/Xtensa/data/languages/xtensa.pspec
A	Ghidra/Processors/Xtensa/data/languages/xtensaArch.sinc
A	Ghidra/Processors/Xtensa/data/languages/xtensaInstructions.sinc
A	Ghidra/Processors/Xtensa/data/languages/xtensaMain.sinc
A	Ghidra/Processors/Xtensa/data/languages/xtensa_be.slaspec
A	Ghidra/Processors/Xtensa/data/languages/xtensa_depbits.sinc
A	Ghidra/Processors/Xtensa/data/languages/xtensa_le.slaspec
A	Ghidra/Processors/Xtensa/data/manuals/xtensa.idx
A	Ghidra/Processors/Xtensa/data/patterns/patternconstraints.xml
A	Ghidra/Processors/Xtensa/data/patterns/xtensa_patterns.xml
A	Ghidra/Processors/Xtensa/src/main/java/ghidra/app/util/bin/format/elf/relocation/Xtensa_ElfRelocationConstants.java
A	Ghidra/Processors/Xtensa/src/main/java/ghidra/app/util/bin/format/elf/relocation/Xtensa_ElfRelocationHandler.java
A	Ghidra/Processors/Xtensa/src/main/java/ghidra/program/emulation/XtensaEmulateInstructionStateModifier.java
A	Ghidra/Processors/Xtensa/src/test.processors/java/ghidra/test/processors/Xtensa_O0_EmulatorTest.java
A	Ghidra/Processors/Xtensa/src/test.processors/java/ghidra/test/processors/Xtensa_O3_EmulatorTest.java
```

Co-authored-by: ekilmer <ekilmer@users.noreply.github.com>
2023-11-27 16:18:02 +00:00
auto-updater[bot] 5d9f0a1862 Update Ghidra HEAD to commit eaf6f0e64 (#219)
* Bump Ghidra HEAD commit eaf6f0e64

* Add new files to CMake

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/Makefile
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.y
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.hh
A	Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.cc
A	Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/translate.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/translate.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
A	Ghidra/Features/Decompiler/src/decompile/datatests/retspecial.xml
M	Ghidra/Features/Decompiler/src/decompile/unittests/testfuncproto.cc
A	Ghidra/Features/Decompiler/src/decompile/unittests/testparamstore.cc
M	Ghidra/Processors/AARCH64/data/languages/AARCH64.cspec
A	Ghidra/Processors/Loongarch/Module.manifest
A	Ghidra/Processors/Loongarch/build.gradle
A	Ghidra/Processors/Loongarch/certification.manifest
A	Ghidra/Processors/Loongarch/data/languages/ilp32d.cspec
A	Ghidra/Processors/Loongarch/data/languages/ilp32f.cspec
A	Ghidra/Processors/Loongarch/data/languages/lasx.sinc
A	Ghidra/Processors/Loongarch/data/languages/lbt.sinc
A	Ghidra/Processors/Loongarch/data/languages/loongarch.ldefs
A	Ghidra/Processors/Loongarch/data/languages/loongarch.opinion
A	Ghidra/Processors/Loongarch/data/languages/loongarch32.pspec
A	Ghidra/Processors/Loongarch/data/languages/loongarch32_f32.slaspec
A	Ghidra/Processors/Loongarch/data/languages/loongarch32_f64.slaspec
A	Ghidra/Processors/Loongarch/data/languages/loongarch32_instructions.sinc
A	Ghidra/Processors/Loongarch/data/languages/loongarch64.pspec
A	Ghidra/Processors/Loongarch/data/languages/loongarch64_f32.slaspec
A	Ghidra/Processors/Loongarch/data/languages/loongarch64_f64.slaspec
A	Ghidra/Processors/Loongarch/data/languages/loongarch64_instructions.sinc
A	Ghidra/Processors/Loongarch/data/languages/loongarch_double.sinc
A	Ghidra/Processors/Loongarch/data/languages/loongarch_float.sinc
A	Ghidra/Processors/Loongarch/data/languages/loongarch_main.sinc
A	Ghidra/Processors/Loongarch/data/languages/lp64d.cspec
A	Ghidra/Processors/Loongarch/data/languages/lp64f.cspec
A	Ghidra/Processors/Loongarch/data/languages/lsx.sinc
A	Ghidra/Processors/Loongarch/data/languages/lvz.sinc
A	Ghidra/Processors/Loongarch/data/manuals/loongarch.idx
A	Ghidra/Processors/Loongarch/data/patterns/loongarch_patterns.xml
A	Ghidra/Processors/Loongarch/data/patterns/patternconstraints.xml
A	Ghidra/Processors/Loongarch/src/main/java/ghidra/app/plugin/core/analysis/LoongsonAnalyzer.java
A	Ghidra/Processors/Loongarch/src/test.processors/java/ghidra/test/processors/Loongarch64_O0_EmulatorTest.java
A	Ghidra/Processors/Loongarch/src/test.processors/java/ghidra/test/processors/Loongarch64_O3_EmulatorTest.java
A	Ghidra/Processors/Loongarch/src/test.processors/java/ghidra/test/processors/Loongarch64f_O0_EmulatorTest.java
A	Ghidra/Processors/Loongarch/src/test.processors/java/ghidra/test/processors/Loongarch64f_O3_EmulatorTest.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationHandler.java
```

---------

Co-authored-by: Eric Kilmer <eric.d.kilmer@gmail.com>
2023-11-27 14:27:27 +00:00
auto-updater[bot] f9bbbbcdb0 Update Ghidra HEAD to commit ddf36db43 (#218)
Bump Ghidra HEAD commit ddf36db43

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Processors/68000/data/languages/68000.sinc
M	Ghidra/Processors/AARCH64/data/languages/AARCH64base.sinc
M	Ghidra/Processors/Atmel/data/languages/avr32a_bit_operations.sinc
M	Ghidra/Processors/HCS12/data/languages/XGATE.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc.dwarf
M	Ghidra/Processors/tricore/data/languages/tricore.sinc
M	Ghidra/Processors/x86/data/languages/ia.sinc
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-11-13 12:04:23 +11:00
auto-updater[bot] cfa08a5f9c Update Ghidra HEAD to commit 134806cbe (#217)
Bump Ghidra HEAD commit 134806cbe

Changed files:

```
M	Ghidra/Processors/CR16/Module.manifest
M	Ghidra/Processors/x86/certification.manifest
M	Ghidra/Processors/x86/data/languages/ia.sinc
A	Ghidra/Processors/x86/data/languages/old/x86RealV2.lang
A	Ghidra/Processors/x86/data/languages/old/x86RealV2.trans
A	Ghidra/Processors/x86/data/languages/old/x86V2.lang
A	Ghidra/Processors/x86/data/languages/old/x86V2.trans
A	Ghidra/Processors/x86/data/languages/old/x86_64bit_compat32_v2.lang
A	Ghidra/Processors/x86/data/languages/old/x86_64bit_compat32_v2.trans
A	Ghidra/Processors/x86/data/languages/old/x86_64bit_v2.lang
A	Ghidra/Processors/x86/data/languages/old/x86_64bit_v2.trans
A	Ghidra/Processors/x86/data/languages/old/x86_ProtV2.lang
A	Ghidra/Processors/x86/data/languages/old/x86_ProtV2.trans
A	Ghidra/Processors/x86/data/languages/old/x86smmV2.lang
A	Ghidra/Processors/x86/data/languages/old/x86smmV2.trans
M	Ghidra/Processors/x86/data/languages/x86.ldefs
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-11-06 11:46:46 +11:00
auto-updater[bot] 7702679f9e Update Ghidra HEAD to commit 7c9aa58aa (#215)
Bump Ghidra HEAD commit 7c9aa58aa

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-10-30 13:33:15 +11:00
auto-updater[bot] 8ab198294f Update Ghidra HEAD to commit 4c8c6aedb (#214)
Bump Ghidra HEAD commit 4c8c6aedb

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/varmap.cc
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-10-23 12:56:46 +11:00
auto-updater[bot] 064320f431 Update Ghidra HEAD to commit fae64a82c (#213)
Bump Ghidra HEAD commit fae64a82c

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/blockaction.cc
M	Ghidra/Processors/x86/data/languages/x86-64-win.cspec
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-10-16 16:08:27 +11:00
auto-updater[bot] 0ea1abe327 Update Ghidra HEAD to commit c24d25f3a (#212)
Bump Ghidra HEAD commit c24d25f3a

Changed files:

```
M	Ghidra/Processors/ARM/data/manuals/ARM.idx
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-10-09 12:33:02 +11:00
Eric Kilmer 8c12126d65 Update stable to Ghidra v10.4 (#211) 2023-10-04 12:18:22 -04:00
auto-updater[bot] 10ad498c54 Update Ghidra HEAD to commit 54e0ab1a3 (#210)
Bump Ghidra HEAD commit 54e0ab1a3

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/block.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/double.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_arch.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_arch.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.y
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/sleigh_arch.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/sleigh_arch.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/unionresolve.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/varmap.cc
M	Ghidra/Features/Decompiler/src/decompile/datatests/impliedfield.xml
A	Ghidra/Features/Decompiler/src/decompile/datatests/longdouble.xml
M	Ghidra/Features/Decompiler/src/decompile/datatests/nestedoffset.xml
M	Ghidra/Features/Decompiler/src/decompile/datatests/offsetarray.xml
M	Ghidra/Features/Decompiler/src/decompile/datatests/packstructaccess.xml
M	Ghidra/Processors/x86/data/languages/x86gcc.cspec
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-10-02 16:59:57 +11:00
auto-updater[bot] 534adad29a Update Ghidra HEAD to commit 650808862 (#209)
Bump Ghidra HEAD commit 650808862

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.cc
A	Ghidra/Features/Decompiler/src/decompile/datatests/ptrtoarray.xml
M	Ghidra/Processors/68000/src/main/java/ghidra/app/plugin/core/analysis/Motorola68KAnalyzer.java
M	Ghidra/Processors/AARCH64/data/languages/AARCH64.cspec
M	Ghidra/Processors/AARCH64/data/languages/AARCH64.pspec
M	Ghidra/Processors/AARCH64/data/languages/AARCH64_ilp32.cspec
M	Ghidra/Processors/ARM/src/main/java/ghidra/app/plugin/core/analysis/ArmAnalyzer.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/plugin/core/analysis/MipsAddressAnalyzer.java
M	Ghidra/Processors/PIC/src/main/java/ghidra/app/plugin/core/analysis/Pic16Analyzer.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/plugin/core/analysis/PowerPCAddressAnalyzer.java
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/plugin/core/analysis/RISCVAddressAnalyzer.java
M	Ghidra/Processors/Sparc/src/main/java/ghidra/app/plugin/core/analysis/SparcAnalyzer.java
M	Ghidra/Processors/SuperH4/src/main/java/ghidra/app/plugin/core/analysis/SH4AddressAnalyzer.java
M	Ghidra/Processors/x86/data/languages/ia.sinc
M	Ghidra/Processors/x86/data/languages/lockable.sinc
M	Ghidra/Processors/x86/src/main/java/ghidra/app/plugin/core/analysis/X86Analyzer.java
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-09-25 12:04:27 +10:00
auto-updater[bot] 393adb711e Update Ghidra HEAD to commit 4561e8335 (#208)
Bump Ghidra HEAD commit 4561e8335

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/Doxyfile
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/block.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/block.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/cover.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/database.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/heritage.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/merge.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/prettyprint.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/prettyprint.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/printjava.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printlanguage.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printlanguage.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/sleigh.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/subflow.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/varmap.cc
A	Ghidra/Features/Decompiler/src/decompile/datatests/boolless.xml
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-09-18 13:03:13 +10:00
dependabot[bot] fb4dec76cb build(deps): bump tibdex/github-app-token from 1 to 2 (#207)
Bumps [tibdex/github-app-token](https://github.com/tibdex/github-app-token) from 1 to 2.
- [Release notes](https://github.com/tibdex/github-app-token/releases)
- [Commits](https://github.com/tibdex/github-app-token/compare/v1...v2)

---
updated-dependencies:
- dependency-name: tibdex/github-app-token
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 16:21:32 +10:00
Alex Cameron 331f4cc2b7 Update stable to Ghidra v10.3.3 (#204) 2023-09-05 14:21:36 +00:00
dependabot[bot] 0d84e6ffb5 build(deps): bump actions/checkout from 3 to 4 (#206)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-05 15:57:27 +10:00
auto-updater[bot] f84470ac10 Update Ghidra HEAD to commit d7d6b44e2 (#205)
Bump Ghidra HEAD commit d7d6b44e2

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/double.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.hh
M	Ghidra/Processors/ARM/certification.manifest
M	Ghidra/Processors/ARM/data/languages/ARMv8.sinc
M	Ghidra/Processors/ARM/data/patterns/ARM_BE_patterns.xml
M	Ghidra/Processors/ARM/data/patterns/ARM_LE_patterns.xml
M	Ghidra/Processors/Atmel/data/languages/avr8.sinc
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationContext.java
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationHandler.java
M	Ghidra/Processors/x86/data/languages/x86win.cspec
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-09-04 10:52:58 +10:00
auto-updater[bot] 04d1204eb5 Update Ghidra HEAD to commit b261137b4 (#203)
Bump Ghidra HEAD commit b261137b4

Changed files:

```
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationContext.java
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-08-28 10:42:35 +10:00
auto-updater[bot] 1c5fad6a6b Update Ghidra HEAD to commit ba5fcdf4e (#202)
Bump Ghidra HEAD commit ba5fcdf4e

Changed files:

```
M	Ghidra/Processors/MIPS/data/languages/mips.ldefs
A	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationContext.java
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationHandler.java
M	Ghidra/Processors/x86/data/languages/ia.sinc
M	Ghidra/Processors/x86/data/languages/x86-64-gcc.cspec
M	Ghidra/Processors/x86/data/languages/x86gcc.cspec
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-08-21 11:08:08 +10:00
auto-updater[bot] 459824f983 Update Ghidra HEAD to commit 72fd30080 (#201)
Bump Ghidra HEAD commit 72fd30080

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/merge.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/merge.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/op.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/xml.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/xml.y
M	Ghidra/Processors/AARCH64/data/languages/AARCH64neon.sinc
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-08-14 11:37:44 +10:00
auto-updater[bot] ea5986827e Update Ghidra HEAD to commit 26d4bd910 (#200)
Bump Ghidra HEAD commit 26d4bd910

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
A	Ghidra/Features/Decompiler/src/decompile/datatests/nan.xml
M	Ghidra/Processors/MC6800/data/languages/6x09_push.sinc
M	Ghidra/Processors/x86/data/languages/ia.sinc
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-08-07 11:39:27 +10:00
Alex Cameron 393ed42fc6 Update stable to Ghidra v10.3.2 (#199) 2023-08-02 10:51:50 -04:00
Alex Cameron 57e6d7c79d Remove buggy UBSAN fix from stable patch and regenerate HEAD patches (#198) 2023-08-02 13:53:16 +00:00
Alex Cameron 8c5b8049a6 Update stable to Ghidra v10.3.1 (#197) 2023-08-02 09:04:17 -04:00
auto-updater[bot] 7b1232ec99 Update Ghidra HEAD to commit b0e0c7372 (#196)
Bump Ghidra HEAD commit b0e0c7372

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_arch.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/prettyprint.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-07-31 12:20:13 +10:00
auto-updater[bot] f9a4905c31 Update Ghidra HEAD to commit bece81176 (#195)
* Bump Ghidra HEAD commit bece81176

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/cover.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/cover.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/merge.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/merge.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/rangeutil.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.hh
A	Ghidra/Features/Decompiler/src/decompile/datatests/varcross.xml
M	Ghidra/Features/Decompiler/src/decompile/unittests/testcirclerange.cc
M	Ghidra/Processors/AARCH64/data/languages/AARCH64.opinion
M	Ghidra/Processors/MC6800/data/languages/6x09.sinc
```

* Fix UBSAN patch

* Update stable UBSAN patch

---------

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
Co-authored-by: Alex Cameron <asc@tetsuo.sh>
2023-07-25 14:00:08 +10:00
Alex Cameron ff5929e1fc Remove unnecessary sign_extend patch (#194)
The issue was actually with the UBSAN patch to the `sign_extend` function and not the upstream commit itself. When NationalSecurityAgency/ghidra@3c08b44 landed, I had to regenerate the UBSAN patch but I botched the part of the patch that modifies `sign_extend` and introduced this bug.

Now that the UBSAN patch no longer touches this function, I should just get rid of the new patch and things should "just work".
2023-07-20 09:16:37 -04:00
auto-updater[bot] 844e5e07fe Update Ghidra HEAD to commit befa5aa77 (#193)
Bump Ghidra HEAD commit befa5aa77

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/heritage.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/heritage.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/varmap.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/varmap.hh
A	Ghidra/Features/Decompiler/src/decompile/datatests/stackreturn.xml
M	Ghidra/Processors/MC6800/data/languages/6x09.sinc
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-07-17 11:51:17 +10:00
Alex Cameron 51bd95f360 Add patch to undo regression in sign_extend (#192)
* Undo UBSAN fix for `sign_extend`

* Add patch to CMake configuration
2023-07-12 09:05:27 -04:00
auto-updater[bot] f63b99a700 Update Ghidra HEAD to commit d932173a2 (#191)
Bump Ghidra HEAD commit d932173a2

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/subflow.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/subflow.hh
M	Ghidra/Processors/68000/data/languages/68000.sinc
M	Ghidra/Processors/ARM/src/main/java/ghidra/app/plugin/core/analysis/ArmAnalyzer.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/plugin/core/analysis/PowerPCAddressAnalyzer.java
M	Ghidra/Processors/x86/data/languages/x86.opinion
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationContext.java
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-07-10 10:47:04 +10:00
auto-updater[bot] f1d1eab45f Update Ghidra HEAD to commit 73e80aa1f (#189)
Bump Ghidra HEAD commit 73e80aa1f

Changed files:

```
M	Ghidra/Processors/MC6800/data/languages/6x09.sinc
M	Ghidra/Processors/x86/certification.manifest
A	Ghidra/Processors/x86/data/languages/x86-64-compat32.pspec
M	Ghidra/Processors/x86/data/languages/x86-64.pspec
M	Ghidra/Processors/x86/data/languages/x86.ldefs
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-07-03 11:07:26 +10:00
auto-updater[bot] 83ae3b5dfe Update Ghidra HEAD to commit 571963265 (#188)
Bump Ghidra HEAD commit 571963265

Changed files:

```
M	Ghidra/Processors/ARM/data/languages/ARMinstructions.sinc
M	Ghidra/Processors/ARM/data/languages/ARMneon.sinc
M	Ghidra/Processors/PIC/data/languages/PIC24.sinc
M	Ghidra/Processors/x86/data/languages/x86-32-golang.cspec
M	Ghidra/Processors/x86/data/languages/x86-64-golang.cspec
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-06-26 11:29:58 +10:00
auto-updater[bot] 548b28c67d Update Ghidra HEAD to commit 8cc3a9443 (#187)
Bump Ghidra HEAD commit 8cc3a9443

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/double.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.hh
M	Ghidra/Features/Decompiler/src/decompile/datatests/partialunion.xml
M	Ghidra/Processors/6502/data/languages/6502.slaspec
M	Ghidra/Processors/68000/certification.manifest
M	Ghidra/Processors/68000/data/languages/68000.cspec
M	Ghidra/Processors/68000/data/languages/68000.ldefs
M	Ghidra/Processors/68000/data/languages/68000.sinc
A	Ghidra/Processors/68000/data/languages/68000_register.cspec
A	Ghidra/Processors/68000/data/patterns/68000_patterns.xml
A	Ghidra/Processors/68000/data/patterns/patternconstraints.xml
M	Ghidra/Processors/8048/data/languages/8048.pspec
M	Ghidra/Processors/8048/data/languages/8048.slaspec
M	Ghidra/Processors/AARCH64/data/languages/AARCH64instructions.sinc
M	Ghidra/Processors/x86/data/languages/x86win.cspec
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-06-19 12:32:21 +10:00
auto-updater[bot] f23739ee3f Update Ghidra HEAD to commit 0d71657d0 (#186)
* Bump Ghidra HEAD commit 0d71657d0

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/address.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/database.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/dynamic.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/float.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_op.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/rangeutil.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghpatexpress.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghpatexpress.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/space.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/subflow.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/unionresolve.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/varmap.cc
M	Ghidra/Processors/68000/data/manuals/68000.idx
M	Ghidra/Processors/PowerPC/data/languages/ppc_32_be_Mac.cspec
M	Ghidra/Processors/PowerPC/data/languages/ppc_32_e500_be.cspec
M	Ghidra/Processors/PowerPC/data/languages/ppc_32_e500_le.cspec
M	Ghidra/Processors/PowerPC/data/manuals/PowerISA.idx
M	Ghidra/Processors/x86/data/languages/ia.sinc
M	Ghidra/Processors/x86/data/languages/x86-64-golang.register.info
```

* patches: Regenerate UBSAN fixes patch
* NOTE: Sleigh tests have begun failing upstream. We need to figure this out and file an issue to Ghidra.

---------

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
Co-authored-by: Alex Cameron <asc@tetsuo.sh>
2023-06-08 16:28:49 +12:00
Eric Kilmer c8cb034afb Fix GitHub Actions trigger patterns 2023-05-30 10:25:53 -04:00
auto-updater[bot] 384d7de32a Update Ghidra HEAD to commit 3e9419d4d (#184)
Bump Ghidra HEAD commit 3e9419d4d

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/callgraph.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/database.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/database.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/database_ghidra.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/flow.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/op.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printjava.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
A	Ghidra/Features/Decompiler/src/decompile/datatests/switchind.xml
M	Ghidra/Processors/AARCH64/data/languages/AARCH64_win.cspec
M	Ghidra/Processors/x86/data/languages/x86-64-win.cspec
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-05-29 10:38:59 +10:00
auto-updater[bot] d75230a7bc Update Ghidra HEAD to commit 894bd3cfc (#181)
Bump Ghidra HEAD commit 894bd3cfc

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Processors/AARCH64/src/main/java/ghidra/app/util/bin/format/elf/relocation/AARCH64_ElfRelocationHandler.java
M	Ghidra/Processors/PowerPC/data/languages/ppc_a2.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc_embedded.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc_instructions.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc_isa.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc_vle.sinc
M	Ghidra/Processors/PowerPC/data/languages/quicciii.sinc
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-05-22 13:25:58 +10:00
Alex Cameron 7e9641e394 Update stable to Ghidra v10.3 (#179)
* sleigh-lift, support: Qualify names with `ghidra` namespace

* Bump Ghidra HEAD commit 4b99900d2

Changed files:

```
M	Ghidra/Processors/68000/data/languages/68000.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc_instructions.sinc
M	Ghidra/Processors/x86/data/languages/ia.sinc
```
2023-05-16 09:51:01 -04:00
auto-updater[bot] 37b2cbcf1c Update Ghidra HEAD to commit b3616a683 (#178)
Bump Ghidra HEAD commit b3616a683

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Processors/68000/src/main/java/ghidra/app/plugin/core/analysis/Motorola68KAnalyzer.java
M	Ghidra/Processors/AARCH64/src/main/java/ghidra/app/plugin/core/analysis/AARCH64PltThunkAnalyzer.java
M	Ghidra/Processors/ARM/certification.manifest
M	Ghidra/Processors/ARM/src/main/java/ghidra/app/plugin/core/analysis/ArmAnalyzer.java
A	Ghidra/Processors/BPF/Module.manifest
A	Ghidra/Processors/BPF/build.gradle
A	Ghidra/Processors/BPF/certification.manifest
A	Ghidra/Processors/BPF/data/languages/BPF.cspec
A	Ghidra/Processors/BPF/data/languages/BPF.ldefs
A	Ghidra/Processors/BPF/data/languages/BPF.pspec
A	Ghidra/Processors/BPF/data/languages/BPF.sinc
A	Ghidra/Processors/BPF/data/languages/BPF_le.slaspec
M	Ghidra/Processors/JVM/resources/ArrayTests.java
M	Ghidra/Processors/JVM/resources/GetPutFieldTest.java
M	Ghidra/Processors/JVM/resources/GetPutStaticTest.java
M	Ghidra/Processors/JVM/resources/NewTests.java
M	Ghidra/Processors/JVM/src/main/java/ghidra/javaclass/analyzers/JavaAnalyzer.java
M	Ghidra/Processors/JVM/src/main/java/ghidra/javaclass/analyzers/JvmSwitchAnalyzer.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/plugin/core/analysis/MipsAddressAnalyzer.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/plugin/core/analysis/MipsPreAnalyzer.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/extend/MIPS_ElfExtension.java
M	Ghidra/Processors/PIC/src/main/java/ghidra/app/plugin/core/analysis/Pic16Analyzer.java
M	Ghidra/Processors/PIC/src/main/java/ghidra/app/plugin/core/analysis/Pic17c7xxAnalyzer.java
M	Ghidra/Processors/PIC/src/main/java/ghidra/app/plugin/core/analysis/Pic18Analyzer.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/plugin/core/analysis/PPC64CallStubAnalyzer.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/plugin/core/analysis/PowerPCAddressAnalyzer.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/extend/PowerPC64_ElfExtension.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/extend/PowerPC_ElfExtension.java
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/plugin/core/analysis/RISCVAddressAnalyzer.java
M	Ghidra/Processors/Sparc/src/main/java/ghidra/app/plugin/core/analysis/SparcAnalyzer.java
M	Ghidra/Processors/SuperH4/src/main/java/ghidra/app/plugin/core/analysis/SH4AddressAnalyzer.java
M	Ghidra/Processors/SuperH4/src/main/java/ghidra/app/plugin/core/analysis/SH4EarlyAddressAnalyzer.java
A	Ghidra/Processors/eBPF/Module.manifest
A	Ghidra/Processors/eBPF/build.gradle
A	Ghidra/Processors/eBPF/certification.manifest
A	Ghidra/Processors/eBPF/data/languages/eBPF.cspec
A	Ghidra/Processors/eBPF/data/languages/eBPF.dwarf
A	Ghidra/Processors/eBPF/data/languages/eBPF.ldefs
A	Ghidra/Processors/eBPF/data/languages/eBPF.opinion
A	Ghidra/Processors/eBPF/data/languages/eBPF.pspec
A	Ghidra/Processors/eBPF/data/languages/eBPF.sinc
A	Ghidra/Processors/eBPF/data/languages/eBPF_le.slaspec
A	Ghidra/Processors/eBPF/src/main/java/ghidra/app/plugin/core/analysis/eBPFAnalyzer.java
A	Ghidra/Processors/eBPF/src/main/java/ghidra/app/util/bin/format/elf/extend/eBPF_ElfExtension.java
A	Ghidra/Processors/eBPF/src/main/java/ghidra/app/util/bin/format/elf/relocation/ElfeBPFRelocationFixupHandler.java
A	Ghidra/Processors/eBPF/src/main/java/ghidra/app/util/bin/format/elf/relocation/eBPF_ElfRelocationConstants.java
A	Ghidra/Processors/eBPF/src/main/java/ghidra/app/util/bin/format/elf/relocation/eBPF_ElfRelocationHandler.java
M	Ghidra/Processors/x86/certification.manifest
M	Ghidra/Processors/x86/data/languages/ia.sinc
A	Ghidra/Processors/x86/data/languages/x86-32-golang.cspec
A	Ghidra/Processors/x86/data/languages/x86-32-golang.register.info
A	Ghidra/Processors/x86/data/languages/x86-64-golang.cspec
A	Ghidra/Processors/x86/data/languages/x86-64-golang.register.info
M	Ghidra/Processors/x86/data/languages/x86.ldefs
M	Ghidra/Processors/x86/data/languages/x86.opinion
M	Ghidra/Processors/x86/src/main/java/ghidra/app/plugin/core/analysis/X86Analyzer.java
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-05-08 18:09:40 +10:00
auto-updater[bot] 7c6b742446 Update Ghidra HEAD to commit 80ccdadeb (#177)
Bump Ghidra HEAD commit 80ccdadeb

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/database.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/merge.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/subflow.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/subflow.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/unionresolve.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/varmap.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/varmap.hh
A	Ghidra/Features/Decompiler/src/decompile/datatests/partialsplit.xml
M	Ghidra/Processors/68000/data/languages/68000.cspec
M	Ghidra/Processors/68000/data/languages/68000.sinc
M	Ghidra/Processors/AARCH64/src/main/java/ghidra/app/util/bin/format/elf/relocation/AARCH64_ElfRelocationHandler.java
M	Ghidra/Processors/ARM/src/main/java/ghidra/app/plugin/core/analysis/ArmAnalyzer.java
M	Ghidra/Processors/ARM/src/main/java/ghidra/app/util/bin/format/elf/relocation/ARM_ElfRelocationHandler.java
M	Ghidra/Processors/HCS12/data/languages/HCS_HC12.sinc
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationHandler.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC64_ElfRelocationHandler.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC_ElfRelocationHandler.java
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationHandler.java
M	Ghidra/Processors/SuperH4/src/main/java/ghidra/app/util/bin/format/elf/relocation/SH_ElfRelocationHandler.java
M	Ghidra/Processors/x86/certification.manifest
M	Ghidra/Processors/x86/data/languages/avx.sinc
M	Ghidra/Processors/x86/data/languages/avx_manual.sinc
M	Ghidra/Processors/x86/data/languages/ia.sinc
A	Ghidra/Processors/x86/data/languages/lockable.sinc
M	Ghidra/Processors/x86/data/languages/x86-64-gcc.cspec
M	Ghidra/Processors/x86/data/languages/x86-64.slaspec
M	Ghidra/Processors/x86/data/languages/x86.ldefs
M	Ghidra/Processors/x86/data/languages/x86.slaspec
M	Ghidra/Processors/x86/data/languages/x86borland.cspec
M	Ghidra/Processors/x86/data/languages/x86delphi.cspec
M	Ghidra/Processors/x86/data/languages/x86gcc.cspec
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_32_ElfRelocationHandler.java
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationHandler.java
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-05-02 15:42:54 -04:00
auto-updater[bot] b3669ea4bd Update Ghidra HEAD to commit 7891d2611 (#175)
Bump Ghidra HEAD commit 7891d2611

Changed files:

```
M	Ghidra/Processors/AARCH64/data/languages/AARCH64.ldefs
M	Ghidra/Processors/Atmel/ghidra_scripts/CreateAVR8GDTArchiveScript.java
M	Ghidra/Processors/Dalvik/src/main/java/ghidra/dalvik/dex/inject/ConstantPoolDex.java
M	Ghidra/Processors/JVM/ghidra_scripts/CreateJNIGDTArchivesScript.java
M	Ghidra/Processors/JVM/src/main/java/ghidra/app/util/pcodeInject/ConstantPoolJava.java
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-04-24 12:18:08 +10:00
auto-updater[bot] e1562dd87f Update Ghidra HEAD to commit 84332ef95 (#174)
* Bump Ghidra HEAD commit 84332ef95

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/sleighexample.cc
```

* cmake: Remove Sleigh example patch

---------

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
Co-authored-by: Alex Cameron <asc@tetsuo.sh>
2023-04-18 17:43:43 +10:00
auto-updater[bot] 262f8d8421 Update Ghidra HEAD to commit 85cc8ee88 (#172)
Changed files: ALL decompiler sources

New 'ghidra' namespace!

---------

Co-authored-by: Eric Kilmer <eric.d.kilmer@gmail.com>
2023-04-12 08:33:03 -04:00
Artem Dinaburg ef4e13d243 Add CODEOWNERS file (#173) 2023-04-10 23:12:09 +00:00
auto-updater[bot] 6d6335b2c5 Update Ghidra HEAD to commit ca9a56b5f (#171)
Bump Ghidra HEAD commit ca9a56b5f

Changed files:

```
M	Ghidra/Processors/ARM/data/languages/ARM.cspec
M	Ghidra/Processors/MIPS/data/languages/mips32be.cspec
M	Ghidra/Processors/MIPS/data/languages/mips32le.cspec
A	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/macho/relocation/PowerPC_MachoRelocationConstants.java
A	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/macho/relocation/PowerPC_MachoRelocationHandler.java
M	Ghidra/Processors/x86/data/languages/x86-64-gcc.cspec
M	Ghidra/Processors/x86/data/languages/x86.opinion
M	Ghidra/Processors/x86/data/languages/x86gcc.cspec
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-04-10 09:07:44 -04:00
dependabot[bot] 6f03e21e23 build(deps): bump peter-evans/create-pull-request from 4 to 5 (#170)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4 to 5.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v4...v5)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-05 17:12:01 +10:00
auto-updater[bot] cae987f993 Update Ghidra HEAD to commit 02e547dac (#169)
* Bump Ghidra HEAD commit 02e547dac

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/Makefile
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/dynamic.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.y
M	Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/opcodes.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/opcodes.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/pcodeparse.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/pcodeparse.y
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/printlanguage.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghparse.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghparse.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghparse.y
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghscan.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghscan.l
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/unionresolve.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/xml.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/xml.y
A	Ghidra/Features/Decompiler/src/decompile/datatests/lzcount.xml
M	Ghidra/Processors/68000/data/languages/68000.sinc
M	Ghidra/Processors/68000/src/main/java/ghidra/program/emulation/m68kEmulateInstructionStateModifier.java
M	Ghidra/Processors/AARCH64/data/languages/AARCH64base.sinc
M	Ghidra/Processors/AARCH64/data/languages/AARCH64instructions.sinc
M	Ghidra/Processors/ARM/data/languages/ARM.sinc
M	Ghidra/Processors/ARM/data/languages/ARMTHUMBinstructions.sinc
M	Ghidra/Processors/ARM/data/languages/ARMinstructions.sinc
M	Ghidra/Processors/ARM/src/main/java/ghidra/program/emulation/ARMEmulateInstructionStateModifier.java
M	Ghidra/Processors/MIPS/data/languages/mips.sinc
M	Ghidra/Processors/MIPS/data/languages/mips32Instructions.sinc
M	Ghidra/Processors/MIPS/data/languages/mips64Instructions.sinc
M	Ghidra/Processors/MIPS/data/languages/mipsmicro.sinc
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/extend/MIPS_ElfExtension.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_Elf64Relocation.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationConstants.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationContext.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationHandler.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/program/emulation/MIPSEmulateInstructionStateModifier.java
M	Ghidra/Processors/PowerPC/data/languages/ppc_common.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc_instructions.sinc
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/program/emulation/PPCEmulateInstructionStateModifier.java
M	Ghidra/Processors/tricore/data/languages/tricore.sinc
M	Ghidra/Processors/x86/data/languages/ia.sinc
M	Ghidra/Processors/x86/data/languages/lzcnt.sinc
```

* Regenerate patches

---------

Co-authored-by: Eric Kilmer <eric.d.kilmer@gmail.com>
2023-04-03 11:04:47 -04:00
25 changed files with 303 additions and 34024 deletions
+7 -7
View File
@@ -3,15 +3,15 @@ name: Build
on:
push:
branches:
- '*'
- "*"
# Version tags should start with "v"
tags:
- 'v*'
- "v*"
pull_request:
branches:
- '*'
- "*"
jobs:
build:
@@ -25,7 +25,7 @@ jobs:
release: [stable, HEAD]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Git User for Applying Patches
# See this thread for more details https://github.community/t/github-actions-bot-email-address/17204/5
@@ -182,7 +182,7 @@ jobs:
# DEB Package
- name: Upload the DEB package artifact (RelWithDebInfo only)
if: matrix.build_type == 'RelWithDebInfo' && runner.os == 'Linux'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ${{ env.DEB_PACKAGE_NAME }}
path: ${{ env.DEB_PACKAGE_PATH }}
@@ -196,7 +196,7 @@ jobs:
# RPM Package
- name: Upload the RPM package artifact (RelWithDebInfo only)
if: matrix.build_type == 'RelWithDebInfo' && runner.os == 'Linux'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ${{ env.RPM_PACKAGE_NAME }}
path: ${{ env.RPM_PACKAGE_PATH }}
@@ -209,7 +209,7 @@ jobs:
# TGZ Package
- name: Upload the TGZ package artifact (RelWithDebInfo only)
if: matrix.build_type == 'RelWithDebInfo'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ${{ env.TGZ_PACKAGE_NAME }}
path: ${{ env.TGZ_PACKAGE_PATH }}
+4 -4
View File
@@ -12,9 +12,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
with:
# Use oldest supported version for maximum script compatibility
python-version: '3.7'
@@ -27,7 +27,7 @@ jobs:
# Need this to run further Actions on the newly created PR
# See here for more details https://github.com/peter-evans/create-pull-request/blob/28fa4848947e0faa7fa50647691d01477589d5e9/docs/concepts-guidelines.md#authenticating-with-github-app-generated-tokens
- uses: tibdex/github-app-token@v1
- uses: tibdex/github-app-token@v2
if: steps.head_update.outputs.did_update
id: generate-token
with:
@@ -36,7 +36,7 @@ jobs:
- name: Create PR
if: steps.head_update.outputs.did_update
uses: peter-evans/create-pull-request@v4
uses: peter-evans/create-pull-request@v5
with:
title: Update Ghidra HEAD to commit ${{ steps.head_update.outputs.short_sha }}
commit-message: |
+16 -9
View File
@@ -30,7 +30,7 @@ include(cmake/project-is-top-level.cmake)
include(cmake/options.cmake)
#
# Move headers so we can prefix with "sleigh/"
# Move headers so we can prefix with "ghidra/"
#
set(public_include_header_list
"${library_root}/action.hh"
@@ -135,21 +135,28 @@ set(public_include_header_list
"${library_root}/xml_arch.hh"
"${library_root}/unionresolve.hh"
"${library_root}/marshal.hh"
"${library_root}/analyzesigs.hh"
"${library_root}/modelrules.hh"
"${library_root}/signature.hh"
"${library_root}/signature_ghidra.hh"
)
#if(sleigh_RELEASE_IS_HEAD)
# list(APPEND public_include_header_list
# )
#endif()
# if(sleigh_RELEASE_IS_HEAD)
# list(APPEND public_include_header_list
# )
# endif()
# Create custom target so that IDEs know these files are part of the sources
add_custom_target(sleigh_all_headers SOURCES ${public_include_header_list})
set(public_headers_dir ${CMAKE_CURRENT_BINARY_DIR}/include)
file(MAKE_DIRECTORY "${public_headers_dir}/sleigh")
configure_file(cmake/libconfig.h.in "${public_headers_dir}/sleigh/libconfig.h")
file(MAKE_DIRECTORY "${public_headers_dir}/ghidra")
# Copy the public headers into our build directory so that we can control the layout.
# Ideally, we want to let people '#include <sleigh/{header}>' without installing sleigh
# Ideally, we want to let people '#include <ghidra/{header}>' without installing sleigh
foreach(public_header ${public_include_header_list})
configure_file("${public_header}" "${public_headers_dir}/sleigh" COPYONLY)
configure_file("${public_header}" "${public_headers_dir}/ghidra" COPYONLY)
endforeach()
# This project also generates a helper header for managing sleigh versions.
# We intentionally use the `sleigh` directory for this header because it's
# not from upstream.
configure_file(cmake/libconfig.h.in "${public_headers_dir}/sleigh/libconfig.h")
#
# sla
+1
View File
@@ -0,0 +1 @@
* @ekilmer @tetsuo-cpp
+30 -25
View File
@@ -45,7 +45,7 @@ static void PrintVersion(void) {
}
}
class InMemoryLoadImage : public LoadImage {
class InMemoryLoadImage : public ghidra::LoadImage {
public:
explicit InMemoryLoadImage(uint64_t base_addr)
: LoadImage("nofile"), base_addr(base_addr) {}
@@ -55,7 +55,8 @@ public:
image_buffer = std::move(buf);
}
void loadFill(unsigned char *ptr, int size, const Address &addr) override {
void loadFill(unsigned char *ptr, int size,
const ghidra::Address &addr) override {
uint64_t start = addr.getOffset();
for (int i = 0; i < size; ++i) {
uint64_t offset = start + i;
@@ -108,18 +109,18 @@ static std::string ParseHexBytes(std::string_view bytes, uint64_t addr,
return buffer;
}
class AssemblyPrinter : public AssemblyEmit {
class AssemblyPrinter : public ghidra::AssemblyEmit {
public:
void dump(const Address &addr, const std::string &mnemonic,
void dump(const ghidra::Address &addr, const std::string &mnemonic,
const std::string &body) override {
addr.printRaw(std::cout);
std::cout << ": " << mnemonic << ' ' << body << std::endl;
}
};
static void PrintAssembly(Sleigh &engine, uint64_t addr, size_t len) {
static void PrintAssembly(ghidra::Sleigh &engine, uint64_t addr, size_t len) {
AssemblyPrinter asm_emit;
Address cur_addr(engine.getDefaultCodeSpace(), addr),
ghidra::Address cur_addr(engine.getDefaultCodeSpace(), addr),
last_addr(engine.getDefaultCodeSpace(), addr + len);
while (cur_addr < last_addr) {
int32_t instr_len = engine.printAssembly(asm_emit, cur_addr);
@@ -127,15 +128,16 @@ static void PrintAssembly(Sleigh &engine, uint64_t addr, size_t len) {
}
}
static void PrintVarData(std::ostream &s, VarnodeData &data) {
static void PrintVarData(std::ostream &s, ghidra::VarnodeData &data) {
s << '(' << data.space->getName() << ',';
data.space->printOffset(s, data.offset);
s << ',' << std::dec << data.size << ')';
}
class PcodePrinter : public PcodeEmit {
class PcodePrinter : public ghidra::PcodeEmit {
public:
void dump(const Address &, OpCode op, VarnodeData *outvar, VarnodeData *vars,
void dump(const ghidra::Address &, ghidra::OpCode op,
ghidra::VarnodeData *outvar, ghidra::VarnodeData *vars,
int32_t isize) override {
if (outvar) {
PrintVarData(std::cout, *outvar);
@@ -150,9 +152,9 @@ public:
}
};
static void PrintPcode(Sleigh &engine, uint64_t addr, size_t len) {
static void PrintPcode(ghidra::Sleigh &engine, uint64_t addr, size_t len) {
PcodePrinter pcode_emit;
Address cur_addr(engine.getDefaultCodeSpace(), addr),
ghidra::Address cur_addr(engine.getDefaultCodeSpace(), addr),
last_addr(engine.getDefaultCodeSpace(), addr + len);
while (cur_addr < last_addr) {
int32_t instr_len = engine.oneInstruction(pcode_emit, cur_addr);
@@ -257,13 +259,14 @@ int main(int argc, char *argv[]) {
return EXIT_FAILURE;
}
// Put together Sleigh components
AttributeId::initialize();
ElementId::initialize();
ghidra::AttributeId::initialize();
ghidra::ElementId::initialize();
InMemoryLoadImage load_image(addr);
ContextInternal ctx;
Sleigh engine(&load_image, &ctx);
DocumentStorage storage;
Element *root = storage.openDocument(sla_file_path->string())->getRoot();
ghidra::ContextInternal ctx;
ghidra::Sleigh engine(&load_image, &ctx);
ghidra::DocumentStorage storage;
ghidra::Element *root =
storage.openDocument(sla_file_path->string())->getRoot();
storage.registerTag(root);
std::optional<std::filesystem::path> pspec_file_path;
if (args->pspec_file_name) {
@@ -287,7 +290,8 @@ int main(int argc, char *argv[]) {
}
}
if (pspec_file_path) {
Element *pspec_root = storage.openDocument(pspec_file_path->string())->getRoot();
ghidra::Element *pspec_root =
storage.openDocument(pspec_file_path->string())->getRoot();
storage.registerTag(pspec_root);
}
engine.initialize(storage);
@@ -296,14 +300,15 @@ int main(int argc, char *argv[]) {
// we can set the default context
// This imitates what is done in
// void Architecture::parseProcessorConfig(DocumentStorage &store)
const Element *el = storage.getTag("processor_spec");
const ghidra::Element *el = storage.getTag("processor_spec");
if (el) {
XmlDecode decoder(&engine, el);
uint4 elemId = decoder.openElement(ELEM_PROCESSOR_SPEC);
for(;;) {
uint4 subId = decoder.peekElement();
if (subId == 0) break;
else if (subId == ELEM_CONTEXT_DATA) {
ghidra::XmlDecode decoder(&engine, el);
ghidra::uint4 elemId = decoder.openElement(ghidra::ELEM_PROCESSOR_SPEC);
for (;;) {
ghidra::uint4 subId = decoder.peekElement();
if (subId == 0)
break;
else if (subId == ghidra::ELEM_CONTEXT_DATA) {
ctx.decodeFromSpec(decoder);
break;
} else {
@@ -1,137 +0,0 @@
From 0ca6d7c5c7f927a37482962df4399031581cf8af Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Thu, 28 Jul 2022 09:20:03 -0400
Subject: [PATCH 1/7] Add include guards to decompiler C++ headers
---
Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh | 5 +++++
Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh | 6 ++++++
Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh | 5 +++++
Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh | 5 +++++
.../Features/Decompiler/src/decompile/cpp/slgh_compile.hh | 5 +++++
Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh | 6 ++++++
6 files changed, 32 insertions(+)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh
index 875d3bb78..6ade01ecc 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh
@@ -17,6 +17,9 @@
/// \file bfd_arch.hh
/// \brief Specific implementation of Architecture using GNU BFD libraries
+#ifndef __BFD_ARCH__
+#define __BFD_ARCH__
+
#include "sleigh_arch.hh"
#include "loadimage_bfd.hh"
@@ -47,3 +50,5 @@ class BfdArchitecture : public SleighArchitecture {
BfdArchitecture(const string &fname,const string &targ,ostream *estream); ///< Constructor
virtual ~BfdArchitecture(void) {}
};
+
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh
index 364a5258d..edd6ce865 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh
@@ -14,8 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
+#ifndef __GRAPH__
+#define __GRAPH__
+
#include "funcdata.hh"
extern void dump_dataflow_graph(Funcdata &data,ostream &s);
extern void dump_controlflow_graph(const string &name,const BlockGraph &graph,ostream &s);
extern void dump_dom_graph(const string &name,const BlockGraph &graph,ostream &s);
+
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh
index 3ca912dd6..0b70d8b22 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh
@@ -16,6 +16,9 @@
/// \file ifaceterm.hh
/// \brief Add some terminal capabilities to the command-line interface (IfaceStatus)
+#ifndef __IFACE_TERM__
+#define __IFACE_TERM__
+
#include "interface.hh"
#ifdef __TERMINAL__
@@ -48,3 +51,5 @@ class IfaceTerm : public IfaceStatus {
virtual void popScript(void);
virtual bool isStreamFinished(void) const;
};
+
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh
index 2245840a0..490abf901 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh
@@ -15,6 +15,10 @@
*/
/// \file raw_arch.hh
/// \brief Bare bones capability for treating a file as a raw executable image
+
+#ifndef __RAW_ARCH__
+#define __RAW_ARCH__
+
#include "sleigh_arch.hh"
#include "loadimage.hh"
@@ -46,3 +50,4 @@ class RawBinaryArchitecture : public SleighArchitecture {
virtual ~RawBinaryArchitecture(void) {}
};
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh
index 91e12244b..2b18e10fc 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh
@@ -16,6 +16,9 @@
/// \file slgh_compile.hh
/// \brief High-level control of the sleigh compilation process
+#ifndef __SLGH_COMPILE__
+#define __SLGH_COMPILE__
+
#include "sleighbase.hh"
#include "pcodecompile.hh"
#include "filemanage.hh"
@@ -450,3 +453,5 @@ class SleighCompile : public SleighBase {
extern SleighCompile *slgh; ///< A global reference to the SLEIGH compiler accessible to the parse functions
extern int yydebug; ///< Debug state for the SLEIGH parse functions
+
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh
index d395fb8a3..6371148b0 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh
@@ -15,6 +15,10 @@
*/
/// \file xml_arch.hh
/// \brief Extension to read executables based on an XML format
+
+#ifndef __XML_ARCH__
+#define __XML_ARCH__
+
#include "sleigh_arch.hh"
#include "loadimage_xml.hh"
@@ -45,3 +49,5 @@ class XmlArchitecture : public SleighArchitecture {
XmlArchitecture(const string &fname,const string &targ,ostream *estream); ///< Constructor
virtual ~XmlArchitecture(void) {}
};
+
+#endif
--
2.40.0
@@ -1,10 +1,9 @@
From 1f00ab9f7c53b6611fc1cf16455bb6069c0c0b69 Mon Sep 17 00:00:00 2001
From 67ac779382508ab0d5ff10bcb0a8453068cce5a2 Mon Sep 17 00:00:00 2001
From: Alex Cameron <asc@tetsuo.sh>
Date: Mon, 7 Feb 2022 02:02:03 +1100
Subject: [PATCH 2/7] Fix UBSAN errors in decompiler
Date: Mon, 5 Jun 2023 16:45:04 +1200
Subject: [PATCH 1/2] Fix UBSAN errors in decompiler
---
.../Decompiler/src/decompile/cpp/address.cc | 4 ++--
.../Decompiler/src/decompile/cpp/fspec.cc | 8 ++++++--
.../src/decompile/cpp/funcdata_varnode.cc | 8 +++++++-
.../Decompiler/src/decompile/cpp/op.cc | 6 +++++-
@@ -17,35 +16,13 @@ Subject: [PATCH 2/7] Fix UBSAN errors in decompiler
.../Decompiler/src/decompile/cpp/slghsymbol.cc | 2 +-
.../Decompiler/src/decompile/cpp/type.cc | 2 +-
.../src/decompile/unittests/testfloatemu.cc | 2 +-
13 files changed, 59 insertions(+), 23 deletions(-)
12 files changed, 57 insertions(+), 21 deletions(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
index 26694b558..395fee432 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
@@ -685,7 +685,7 @@ uintb sign_extend(uintb in,int4 sizein,int4 sizeout)
void sign_extend(intb &val,int4 bit)
{
- intb mask = 0;
+ uintb mask = 0;
mask = (~mask)<<bit;
if (((val>>bit)&1)!=0)
val |= mask;
@@ -699,7 +699,7 @@ void sign_extend(intb &val,int4 bit)
void zero_extend(intb &val,int4 bit)
{
- intb mask = 0;
+ uintb mask = 0;
mask = (~mask)<<bit;
mask <<= 1;
val &= (~mask);
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
index 0f8c95d60..95ab4b0ee 100644
index 82771cc04..da78c8071 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
@@ -2659,8 +2659,12 @@ void ProtoModelMerged::decode(Decoder &decoder)
@@ -2661,8 +2661,12 @@ void ProtoModelMerged::decode(Decoder &decoder)
modellist.push_back(mymodel);
}
decoder.closeElement(elemId);
@@ -61,10 +38,10 @@ index 0f8c95d60..95ab4b0ee 100644
void ParameterBasic::setTypeLock(bool val)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
index 0a641091b..70acfad8f 100644
index f77817073..283d81c31 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
@@ -501,7 +501,13 @@ void Funcdata::setHighLevel(void)
@@ -503,7 +503,13 @@ void Funcdata::setHighLevel(void)
void Funcdata::transferVarnodeProperties(Varnode *vn,Varnode *newVn,int4 lsbOffset)
{
@@ -80,10 +57,10 @@ index 0a641091b..70acfad8f 100644
uint4 vnFlags = vn->getFlags() & (Varnode::directwrite|Varnode::addrforce);
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
index 4c0749590..24551ed11 100644
index 0e3decc80..403ec35a7 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
@@ -666,7 +666,11 @@ uintb PcodeOp::getNZMaskLocal(bool cliploop) const
@@ -672,7 +672,11 @@ uintb PcodeOp::getNZMaskLocal(bool cliploop) const
break;
case CPUI_PIECE:
resmask = getIn(0)->getNZMask();
@@ -97,16 +74,16 @@ index 4c0749590..24551ed11 100644
break;
case CPUI_INT_MULT:
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
index 3b84bac6a..3e0c39904 100644
index aebcfd910..6c47e6eb1 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
@@ -747,7 +747,13 @@ uintb OpBehaviorPiece::evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb i
@@ -746,7 +746,13 @@ uintb OpBehaviorPiece::evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb i
uintb OpBehaviorSubpiece::evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2) const
{
- uintb res = (in1>>(in2*8)) & calc_mask(sizeout);
+ uintb res = in1;
+ if ((in2*8) < sizeof(in1)) {
+ if (in2 < sizeof(in1)) {
+ res >>= (in2*8);
+ } else {
+ res = 0;
@@ -116,10 +93,10 @@ index 3b84bac6a..3e0c39904 100644
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc
index 49128f7e6..133da8178 100644
index ca9d71ab9..85d4dd281 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc
@@ -619,8 +619,10 @@ vector<OpTpl *> *PcodeCompile::assignBitRange(VarnodeTpl *vn,uint4 bitoffset,uin
@@ -621,8 +621,10 @@ vector<OpTpl *> *PcodeCompile::assignBitRange(VarnodeTpl *vn,uint4 bitoffset,uin
uint4 smallsize = (numbits+7)/8; // Size of input (output of rhs)
bool shiftneeded = (bitoffset != 0);
bool zextneeded = true;
@@ -132,7 +109,7 @@ index 49128f7e6..133da8178 100644
if (vn->getSize().getType()==ConstTpl::real) {
// If we know the size of the bitranged varnode, we can
@@ -724,9 +726,6 @@ ExprTree *PcodeCompile::createBitRange(SpecificSymbol *sym,uint4 bitoffset,uint4
@@ -726,9 +728,6 @@ ExprTree *PcodeCompile::createBitRange(SpecificSymbol *sym,uint4 bitoffset,uint4
}
}
@@ -142,7 +119,7 @@ index 49128f7e6..133da8178 100644
if (truncneeded && ((bitoffset % 8)==0)) {
truncshift = bitoffset/8;
bitoffset = 0;
@@ -749,8 +748,13 @@ ExprTree *PcodeCompile::createBitRange(SpecificSymbol *sym,uint4 bitoffset,uint4
@@ -751,8 +750,13 @@ ExprTree *PcodeCompile::createBitRange(SpecificSymbol *sym,uint4 bitoffset,uint4
appendOp(CPUI_INT_RIGHT,res,bitoffset,4);
if (truncneeded)
appendOp(CPUI_SUBPIECE,res,truncshift,4);
@@ -159,10 +136,10 @@ index 49128f7e6..133da8178 100644
return res;
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
index 9068f2a81..216f2f45f 100644
index ae2e502c1..a22b8ebdc 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
@@ -974,7 +974,12 @@ int4 RulePullsubIndirect::applyOp(PcodeOp *op,Funcdata &data)
@@ -976,7 +976,12 @@ int4 RulePullsubIndirect::applyOp(PcodeOp *op,Funcdata &data)
Varnode *outvn = op->getOut();
if (outvn->isPrecisLo()||outvn->isPrecisHi()) return 0; // Don't pull apart double precision object
@@ -176,7 +153,7 @@ index 9068f2a81..216f2f45f 100644
consume = ~consume;
if ((consume & indir->getIn(0)->getConsume())!=0) return 0;
@@ -6738,8 +6743,9 @@ int4 RulePtrsubCharConstant::applyOp(PcodeOp *op,Funcdata &data)
@@ -6789,8 +6794,9 @@ int4 RulePtrsubCharConstant::applyOp(PcodeOp *op,Funcdata &data)
Varnode *sb = op->getIn(0);
Datatype *sbType = sb->getTypeReadFacing(op);
if (sbType->getMetatype() != TYPE_PTR) return 0;
@@ -188,7 +165,7 @@ index 9068f2a81..216f2f45f 100644
Varnode *vn1 = op->getIn(1);
if (!vn1->isConstant()) return 0;
Varnode *outvn = op->getOut();
@@ -8469,7 +8475,11 @@ int4 RuleSubvarSubpiece::applyOp(PcodeOp *op,Funcdata &data)
@@ -8600,7 +8606,11 @@ int4 RuleSubvarSubpiece::applyOp(PcodeOp *op,Funcdata &data)
Varnode *outvn = op->getOut();
int4 flowsize = outvn->getSize();
uintb mask = calc_mask( flowsize );
@@ -202,10 +179,10 @@ index 9068f2a81..216f2f45f 100644
if (!aggressive) {
if ((vn->getConsume() & mask) != vn->getConsume()) return 0;
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
index ecebc0970..1c9ab7560 100644
index 2e3531ea2..42482be7c 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
@@ -20,6 +20,7 @@ ConstTpl::ConstTpl(const_type tp)
@@ -22,6 +22,7 @@ ConstTpl::ConstTpl(const_type tp)
{ // Constructor for relative jump constants and uniques
type = tp;
@@ -213,7 +190,7 @@ index ecebc0970..1c9ab7560 100644
}
ConstTpl::ConstTpl(const_type tp,uintb val)
@@ -54,6 +55,7 @@ ConstTpl::ConstTpl(AddrSpace *sid)
@@ -56,6 +57,7 @@ ConstTpl::ConstTpl(AddrSpace *sid)
{
type = spaceid;
value.spaceid = sid;
@@ -222,10 +199,10 @@ index ecebc0970..1c9ab7560 100644
bool ConstTpl::isConstSpace(void) const
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh
index 3b836244c..1fbd169c9 100644
index 8e283dca0..652600c16 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh
@@ -46,7 +46,7 @@ class ConstTpl {
@@ -48,7 +48,7 @@ private:
static void printHandleSelector(ostream &s,v_field val);
static v_field readHandleSelector(const string &name);
public:
@@ -235,10 +212,10 @@ index 3b836244c..1fbd169c9 100644
type=op2.type; value=op2.value; value_real=op2.value_real; select=op2.select; }
ConstTpl(const_type tp,uintb val);
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
index b92a3de3b..ac9a70c93 100644
index b40f74389..3c37958df 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
@@ -2157,8 +2157,8 @@ string SleighCompile::checkSymbols(SymbolScope *scope)
@@ -2163,8 +2163,8 @@ string SleighCompile::checkSymbols(SymbolScope *scope)
ostringstream msg;
SymbolTree::const_iterator iter;
for(iter=scope->begin();iter!=scope->end();++iter) {
@@ -249,10 +226,10 @@ index b92a3de3b..ac9a70c93 100644
msg << " Label <" << sym->getName() << "> was placed but not used" << endl;
else if (!sym->isPlaced())
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
index 8516dbf10..352a0ae99 100644
index b308e1b71..af2982aee 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
@@ -2566,7 +2566,7 @@ void ContextOp::restoreXml(const Element *el,SleighBase *trans)
@@ -2569,7 +2569,7 @@ void ContextOp::restoreXml(const Element *el,SleighBase *trans)
const List &list(el->getChildren());
List::const_iterator iter;
iter = list.begin();
@@ -262,10 +239,10 @@ index 8516dbf10..352a0ae99 100644
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
index 9fc48aa7d..8b75afb6d 100644
index 32ede6b0f..238d97f40 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
@@ -3233,8 +3233,8 @@ void TypeFactory::recalcPointerSubmeta(Datatype *base,sub_metatype sub)
@@ -3384,8 +3384,8 @@ void TypeFactory::recalcPointerSubmeta(Datatype *base,sub_metatype sub)
top.submeta = sub; // Search on the incorrect submeta
iter = tree.lower_bound(&top);
while(iter != tree.end()) {
@@ -276,10 +253,10 @@ index 9fc48aa7d..8b75afb6d 100644
++iter;
if (ptr->submeta == sub) {
diff --git a/Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc b/Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc
index f88b4d000..3b16ed13c 100644
index c35bde877..061e53677 100644
--- a/Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc
@@ -343,7 +343,7 @@ TEST(float_opTrunc_to_int) {
@@ -346,7 +346,7 @@ TEST(float_opTrunc_to_int) {
for(float f:float_test_values) {
// avoid undefined behavior
@@ -289,5 +266,5 @@ index f88b4d000..3b16ed13c 100644
uintb true_result = ((uintb)(int32_t)f) & 0xffffffff;
uintb encoding = format.getEncoding(f);
--
2.40.0
2.39.2 (Apple Git-143)
@@ -1,7 +1,7 @@
From ad4a5782300ff499c1633da6923669545b78a2cc Mon Sep 17 00:00:00 2001
From 9fd26cd754b6f83e45199db896fd0fcea23cd59d Mon Sep 17 00:00:00 2001
From: Alex Cameron <asc@tetsuo.sh>
Date: Wed, 3 Aug 2022 20:01:18 +1000
Subject: [PATCH 3/7] Use `stroull` instead of `stroul` to parse address
Subject: [PATCH 2/2] Use `stroull` instead of `stroul` to parse address
offsets
---
@@ -9,7 +9,7 @@ Subject: [PATCH 3/7] Use `stroull` instead of `stroul` to parse address
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/space.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
index b511f8919..4ae8f18a6 100644
index bf4e1dc96..594b4583a 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
@@ -16,6 +16,8 @@
@@ -18,10 +18,10 @@ index b511f8919..4ae8f18a6 100644
+#include <climits>
+
namespace ghidra {
AttributeId ATTRIB_BASE = AttributeId("base",89);
AttributeId ATTRIB_DEADCODEDELAY = AttributeId("deadcodedelay",90);
AttributeId ATTRIB_DELAY = AttributeId("delay", 91);
@@ -288,7 +290,10 @@ uintb AddrSpace::read(const string &s,int4 &size) const
@@ -290,7 +292,10 @@ uintb AddrSpace::read(const string &s,int4 &size) const
}
}
catch(LowlevelError &err) { // Name doesn't exist
@@ -34,5 +34,5 @@ index b511f8919..4ae8f18a6 100644
enddata = (const char *) tmpdata;
if (enddata - s.c_str() == s.size()) { // If no size or offset override
--
2.40.0
2.39.2 (Apple Git-143)
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,51 +0,0 @@
From 24a158c4514567a0cc253f0c0a4b7a9f5df7384d Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Wed, 15 Mar 2023 23:04:28 -0400
Subject: [PATCH 6/7] (3/4) decompiler: Manually fix std namespace in generated
file
We must manually fix the symbols from std namespace because the
automated tool does not know how to parse yacc/bison files.
---
.../Decompiler/src/decompile/cpp/slghparse.y | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/slghparse.y b/Ghidra/Features/Decompiler/src/decompile/cpp/slghparse.y
index 0e2172f79..039963cd5 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/slghparse.y
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/slghparse.y
@@ -32,24 +32,24 @@ using namespace std;
char ch;
uintb *i;
intb *big;
- string *str;
- vector<string> *strlist;
- vector<intb> *biglist;
- vector<ExprTree *> *param;
+ std::string *str;
+ std::vector<std::string> *strlist;
+ std::vector<intb> *biglist;
+ std::vector<ExprTree *> *param;
SpaceQuality *spacequal;
FieldQuality *fieldqual;
StarQuality *starqual;
VarnodeTpl *varnode;
ExprTree *tree;
- vector<OpTpl *> *stmt;
+ std::vector<OpTpl *> *stmt;
ConstructTpl *sem;
SectionVector *sectionstart;
Constructor *construct;
PatternEquation *pateq;
PatternExpression *patexp;
- vector<SleighSymbol *> *symlist;
- vector<ContextChange *> *contop;
+ std::vector<SleighSymbol *> *symlist;
+ std::vector<ContextChange *> *contop;
SleighSymbol *anysym;
SpaceSymbol *spacesym;
SectionSymbol *sectionsym;
--
2.40.0
@@ -1,29 +0,0 @@
From ed427a72a0d2f70565752902f274a748835afa1a Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Wed, 15 Mar 2023 23:10:22 -0400
Subject: [PATCH 7/7] (4/4) decompiler: Manually fix missed std variable usage
Unfortunately, the heuristics in remusing are unable to automatically
fix this case of variables from the C++ standard library.
This was fixed by resolving the error(s) produced by the compiler.
---
Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_process.hh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_process.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_process.hh
index 64fd45e35..428319a65 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_process.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_process.hh
@@ -79,7 +79,7 @@ class GhidraCommand {
virtual void loadParameters(void); ///< Read parameters directing command execution
virtual void sendResult(void); ///< Send results of the command (if any) back to the Ghidra client
public:
- GhidraCommand(void) : sin(cin),sout(cout) {
+ GhidraCommand(void) : sin(std::cin),sout(std::cout) {
ghidra = (ArchitectureGhidra *)0;
} ///< Construct given i/o streams
virtual ~GhidraCommand(void) {} ///< Destructor
--
2.40.0
@@ -1,10 +1,10 @@
From 4fa4b34e64c277f699a0c4d9cda1a2de739b9130 Mon Sep 17 00:00:00 2001
From: Alex Cameron <asc@tetsuo.sh>
Date: Mon, 7 Feb 2022 02:02:03 +1100
Subject: [PATCH 3/8] Fix UBSAN errors in decompiler
From 0e437cb96249306d17f26ff6614871ecd9b37359 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Wed, 2 Aug 2023 23:19:42 +1000
Subject: [PATCH 1/2] Fix UBSAN errors in decompiler
---
.../Decompiler/src/decompile/cpp/address.cc | 4 ++--
.../Decompiler/src/decompile/cpp/fspec.cc | 8 ++++++--
.../src/decompile/cpp/funcdata_varnode.cc | 8 +++++++-
.../Decompiler/src/decompile/cpp/op.cc | 6 +++++-
@@ -17,35 +17,13 @@ Subject: [PATCH 3/8] Fix UBSAN errors in decompiler
.../Decompiler/src/decompile/cpp/slghsymbol.cc | 2 +-
.../Decompiler/src/decompile/cpp/type.cc | 2 +-
.../src/decompile/unittests/testfloatemu.cc | 2 +-
13 files changed, 59 insertions(+), 23 deletions(-)
12 files changed, 57 insertions(+), 21 deletions(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
index b3758ddd1..0b3bf04c8 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
@@ -685,7 +685,7 @@ uintb sign_extend(uintb in,int4 sizein,int4 sizeout)
void sign_extend(intb &val,int4 bit)
{
- intb mask = 0;
+ uintb mask = 0;
mask = (~mask)<<bit;
if (((val>>bit)&1)!=0)
val |= mask;
@@ -699,7 +699,7 @@ void sign_extend(intb &val,int4 bit)
void zero_extend(intb &val,int4 bit)
{
- intb mask = 0;
+ uintb mask = 0;
mask = (~mask)<<bit;
mask <<= 1;
val &= (~mask);
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
index c52d92c80..937b57157 100644
index 8380d3cd..a18d5007 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
@@ -2649,8 +2649,12 @@ void ProtoModelMerged::decode(Decoder &decoder)
@@ -2661,8 +2661,12 @@ void ProtoModelMerged::decode(Decoder &decoder)
modellist.push_back(mymodel);
}
decoder.closeElement(elemId);
@@ -61,10 +39,10 @@ index c52d92c80..937b57157 100644
void ParameterBasic::setTypeLock(bool val)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
index 63784131d..ff8bb6a23 100644
index f7781707..283d81c3 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
@@ -501,7 +501,13 @@ void Funcdata::setHighLevel(void)
@@ -503,7 +503,13 @@ void Funcdata::setHighLevel(void)
void Funcdata::transferVarnodeProperties(Varnode *vn,Varnode *newVn,int4 lsbOffset)
{
@@ -80,10 +58,10 @@ index 63784131d..ff8bb6a23 100644
uint4 vnFlags = vn->getFlags() & (Varnode::directwrite|Varnode::addrforce);
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
index b4f8a3f8e..068393416 100644
index 0e3decc8..403ec35a 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
@@ -667,7 +667,11 @@ uintb PcodeOp::getNZMaskLocal(bool cliploop) const
@@ -672,7 +672,11 @@ uintb PcodeOp::getNZMaskLocal(bool cliploop) const
break;
case CPUI_PIECE:
resmask = getIn(0)->getNZMask();
@@ -97,16 +75,16 @@ index b4f8a3f8e..068393416 100644
break;
case CPUI_INT_MULT:
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
index 3b84bac6a..3e0c39904 100644
index fcd75cc7..ed0e005a 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
@@ -747,7 +747,13 @@ uintb OpBehaviorPiece::evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb i
@@ -750,7 +750,13 @@ uintb OpBehaviorPiece::evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb i
uintb OpBehaviorSubpiece::evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2) const
{
- uintb res = (in1>>(in2*8)) & calc_mask(sizeout);
+ uintb res = in1;
+ if ((in2*8) < sizeof(in1)) {
+ if (in2 < sizeof(in1)) {
+ res >>= (in2*8);
+ } else {
+ res = 0;
@@ -116,10 +94,10 @@ index 3b84bac6a..3e0c39904 100644
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc
index 49128f7e6..133da8178 100644
index ca9d71ab..85d4dd28 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc
@@ -619,8 +619,10 @@ vector<OpTpl *> *PcodeCompile::assignBitRange(VarnodeTpl *vn,uint4 bitoffset,uin
@@ -621,8 +621,10 @@ vector<OpTpl *> *PcodeCompile::assignBitRange(VarnodeTpl *vn,uint4 bitoffset,uin
uint4 smallsize = (numbits+7)/8; // Size of input (output of rhs)
bool shiftneeded = (bitoffset != 0);
bool zextneeded = true;
@@ -132,7 +110,7 @@ index 49128f7e6..133da8178 100644
if (vn->getSize().getType()==ConstTpl::real) {
// If we know the size of the bitranged varnode, we can
@@ -724,9 +726,6 @@ ExprTree *PcodeCompile::createBitRange(SpecificSymbol *sym,uint4 bitoffset,uint4
@@ -726,9 +728,6 @@ ExprTree *PcodeCompile::createBitRange(SpecificSymbol *sym,uint4 bitoffset,uint4
}
}
@@ -142,7 +120,7 @@ index 49128f7e6..133da8178 100644
if (truncneeded && ((bitoffset % 8)==0)) {
truncshift = bitoffset/8;
bitoffset = 0;
@@ -749,8 +748,13 @@ ExprTree *PcodeCompile::createBitRange(SpecificSymbol *sym,uint4 bitoffset,uint4
@@ -751,8 +750,13 @@ ExprTree *PcodeCompile::createBitRange(SpecificSymbol *sym,uint4 bitoffset,uint4
appendOp(CPUI_INT_RIGHT,res,bitoffset,4);
if (truncneeded)
appendOp(CPUI_SUBPIECE,res,truncshift,4);
@@ -159,10 +137,10 @@ index 49128f7e6..133da8178 100644
return res;
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
index 973a7a31d..3955b836b 100644
index 4851365d..d069d1c9 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
@@ -974,7 +974,12 @@ int4 RulePullsubIndirect::applyOp(PcodeOp *op,Funcdata &data)
@@ -976,7 +976,12 @@ int4 RulePullsubIndirect::applyOp(PcodeOp *op,Funcdata &data)
Varnode *outvn = op->getOut();
if (outvn->isPrecisLo()||outvn->isPrecisHi()) return 0; // Don't pull apart double precision object
@@ -176,7 +154,7 @@ index 973a7a31d..3955b836b 100644
consume = ~consume;
if ((consume & indir->getIn(0)->getConsume())!=0) return 0;
@@ -6805,8 +6810,9 @@ int4 RulePtrsubCharConstant::applyOp(PcodeOp *op,Funcdata &data)
@@ -6782,8 +6787,9 @@ int4 RulePtrsubCharConstant::applyOp(PcodeOp *op,Funcdata &data)
Varnode *sb = op->getIn(0);
Datatype *sbType = sb->getTypeReadFacing(op);
if (sbType->getMetatype() != TYPE_PTR) return 0;
@@ -188,7 +166,7 @@ index 973a7a31d..3955b836b 100644
Varnode *vn1 = op->getIn(1);
if (!vn1->isConstant()) return 0;
Varnode *outvn = op->getOut();
@@ -8289,7 +8295,11 @@ int4 RuleSubvarSubpiece::applyOp(PcodeOp *op,Funcdata &data)
@@ -8593,7 +8599,11 @@ int4 RuleSubvarSubpiece::applyOp(PcodeOp *op,Funcdata &data)
Varnode *outvn = op->getOut();
int4 flowsize = outvn->getSize();
uintb mask = calc_mask( flowsize );
@@ -202,10 +180,10 @@ index 973a7a31d..3955b836b 100644
if (!aggressive) {
if ((vn->getConsume() & mask) != vn->getConsume()) return 0;
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
index ecebc0970..1c9ab7560 100644
index 2e3531ea..42482be7 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
@@ -20,6 +20,7 @@ ConstTpl::ConstTpl(const_type tp)
@@ -22,6 +22,7 @@ ConstTpl::ConstTpl(const_type tp)
{ // Constructor for relative jump constants and uniques
type = tp;
@@ -213,7 +191,7 @@ index ecebc0970..1c9ab7560 100644
}
ConstTpl::ConstTpl(const_type tp,uintb val)
@@ -54,6 +55,7 @@ ConstTpl::ConstTpl(AddrSpace *sid)
@@ -56,6 +57,7 @@ ConstTpl::ConstTpl(AddrSpace *sid)
{
type = spaceid;
value.spaceid = sid;
@@ -222,10 +200,10 @@ index ecebc0970..1c9ab7560 100644
bool ConstTpl::isConstSpace(void) const
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh
index 3b836244c..1fbd169c9 100644
index 8e283dca..652600c1 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh
@@ -46,7 +46,7 @@ class ConstTpl {
@@ -48,7 +48,7 @@ private:
static void printHandleSelector(ostream &s,v_field val);
static v_field readHandleSelector(const string &name);
public:
@@ -235,10 +213,10 @@ index 3b836244c..1fbd169c9 100644
type=op2.type; value=op2.value; value_real=op2.value_real; select=op2.select; }
ConstTpl(const_type tp,uintb val);
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
index c26cd468f..40d731480 100644
index b40f7438..3c37958d 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
@@ -2152,8 +2152,8 @@ string SleighCompile::checkSymbols(SymbolScope *scope)
@@ -2163,8 +2163,8 @@ string SleighCompile::checkSymbols(SymbolScope *scope)
ostringstream msg;
SymbolTree::const_iterator iter;
for(iter=scope->begin();iter!=scope->end();++iter) {
@@ -249,10 +227,10 @@ index c26cd468f..40d731480 100644
msg << " Label <" << sym->getName() << "> was placed but not used" << endl;
else if (!sym->isPlaced())
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
index dbb8f9e51..85bd54261 100644
index b308e1b7..af2982ae 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
@@ -2565,7 +2565,7 @@ void ContextOp::restoreXml(const Element *el,SleighBase *trans)
@@ -2569,7 +2569,7 @@ void ContextOp::restoreXml(const Element *el,SleighBase *trans)
const List &list(el->getChildren());
List::const_iterator iter;
iter = list.begin();
@@ -262,10 +240,10 @@ index dbb8f9e51..85bd54261 100644
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
index 8d5dc17ed..f50e07f84 100644
index 30faf0b6..e76a0619 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
@@ -3233,8 +3233,8 @@ void TypeFactory::recalcPointerSubmeta(Datatype *base,sub_metatype sub)
@@ -3359,8 +3359,8 @@ void TypeFactory::recalcPointerSubmeta(Datatype *base,sub_metatype sub)
top.submeta = sub; // Search on the incorrect submeta
iter = tree.lower_bound(&top);
while(iter != tree.end()) {
@@ -276,10 +254,10 @@ index 8d5dc17ed..f50e07f84 100644
++iter;
if (ptr->submeta == sub) {
diff --git a/Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc b/Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc
index ab99382a3..67d92c573 100644
index c35bde87..061e5367 100644
--- a/Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc
@@ -338,7 +338,7 @@ TEST(float_opTrunc_to_int) {
@@ -346,7 +346,7 @@ TEST(float_opTrunc_to_int) {
for(float f:float_test_values) {
// avoid undefined behavior
@@ -289,5 +267,5 @@ index ab99382a3..67d92c573 100644
uintb true_result = ((uintb)(int32_t)f) & 0xffffffff;
uintb encoding = format.getEncoding(f);
--
2.40.0
2.39.2 (Apple Git-143)
@@ -1,165 +0,0 @@
From 2ade75baba3f2945d5b53e5c1eedb53ebe10f61b Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Sun, 13 Feb 2022 12:59:42 -0500
Subject: [PATCH 1/8] Small improvements to C++ decompiler testing from CLI
* Fixes argument parsing to accept more than one option for specifying
paths.
* Return a non-zero exit code (clamped to max value 255, even if more
than 255 tests fail) indicating number of failed tests. This is
helpful when running in a script (like in CI) to detect failures
instead of detecting failures through manual visual inspection of
output text.
---
.../Decompiler/src/decompile/cpp/test.cc | 42 ++++++++++++++-----
.../Decompiler/src/decompile/cpp/test.hh | 2 +-
.../src/decompile/cpp/testfunction.cc | 3 +-
.../src/decompile/cpp/testfunction.hh | 2 +-
4 files changed, 36 insertions(+), 13 deletions(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/test.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/test.cc
index e81f2564a..ebc049c29 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/test.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/test.cc
@@ -14,6 +14,9 @@
* limitations under the License.
*/
#include "test.hh"
+
+#include <algorithm>
+
#include "libdecomp.hh"
vector<UnitTest *> UnitTest::tests;
@@ -21,7 +24,8 @@ vector<UnitTest *> UnitTest::tests;
/// Run all the tests unless a non-empty set of names is passed in.
/// In which case, only the named tests in the set are run.
/// \param testNames is the set of names
-void UnitTest::run(set<string> &testNames)
+/// \return number of failed tests
+int UnitTest::run(set<string> &testNames)
{
int total = 0;
@@ -42,6 +46,7 @@ void UnitTest::run(set<string> &testNames)
}
std::cerr << "==============================" << std::endl;
std::cerr << passed << "/" << total << " tests passed." << std::endl;
+ return total - passed;
}
/// Create list of the absolute path of all tests to be run
@@ -85,7 +90,7 @@ int main(int argc, char **argv) {
set<string> dataTestNames;
string dirname("../datatests");
string sleighdirname("../../../../../../..");
- if (argc > 0) {
+ while (argc > 0) {
string command(argv[0]);
if (command == "-path") {
dirname = argv[1];
@@ -109,30 +114,47 @@ int main(int argc, char **argv) {
argv += 1;
argc -= 1;
}
- }
- if (argc > 0) {
- string command(argv[0]);
- if (command == "unittests") {
+ else if (command == "unittests") {
runUnitTests = true;
runDataTests = false; // Run only unit tests
unitTestNames.insert(argv + 1,argv + argc);
+ break;
}
else if (command == "datatests") {
runUnitTests = false; // Run only data-tests
runDataTests = true;
dataTestNames.insert(argv + 1,argv + argc);
+ break;
}
else {
- cout << "USAGE: ghidra_test [-path <datatestdir>] [[unittests|datatests] [testname1 testname2 ...]]" << endl;
+ cout << "USAGE: ghidra_test [-usesleighenv] [-sleighpath <sleighdir>] [-path <datatestdir>] [[unittests|datatests] [testname1 testname2 ...]]" << endl;
+ return -1;
}
}
startDecompilerLibrary(sleighdirname.c_str());
- if (runUnitTests)
- UnitTest::run(unitTestNames);
+
+ // Keep track of failed tests as return code to indicate failures, clamped at
+ // max 255 value
+ int failedTests = 0;
+ if (runUnitTests) {
+ int errors = UnitTest::run(unitTestNames);
+ // Clamp at 255 max return code
+ failedTests = std::min(
+ failedTests +
+ (errors < 0 ? 255 : std::min(errors, 255)),
+ 255);
+ }
if (runDataTests) {
vector<string> testFiles;
gatherDataTests(dirname,dataTestNames,testFiles);
cout << endl << endl;
- FunctionTestCollection::runTestFiles(testFiles,cout);
+ int errors = FunctionTestCollection::runTestFiles(testFiles,cout);
+ // Clamp at 255 max return code
+ failedTests = std::min(
+ failedTests +
+ (errors < 0 ? 255 : std::min(errors, 255)),
+ 255);
}
+
+ return failedTests;
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/test.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/test.hh
index 8b762c5b1..a138f511d 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/test.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/test.hh
@@ -54,7 +54,7 @@ struct UnitTest {
tests.push_back(this);
}
- static void run(std::set<std::string> &testNames); ///< Run all the instantiated tests
+ static int run(std::set<std::string> &testNames); ///< Run all the instantiated tests
};
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.cc
index 6311dba06..4f7110bb4 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.cc
@@ -304,7 +304,7 @@ void FunctionTestCollection::runTests(list<string> &lateStream)
/// Run through all XML files in the given list, processing each in turn.
/// \param testFiles is the given list of test files
/// \param s is the output stream to print results to
-void FunctionTestCollection::runTestFiles(const vector<string> &testFiles,ostream &s)
+int FunctionTestCollection::runTestFiles(const vector<string> &testFiles,ostream &s)
{
int4 totalTestsApplied = 0;
@@ -344,4 +344,5 @@ void FunctionTestCollection::runTestFiles(const vector<string> &testFiles,ostrea
if (iter == failures.end()) break;
}
}
+ return totalTestsApplied - totalTestsSucceeded;
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.hh
index 52125b401..46abd6bce 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.hh
@@ -91,7 +91,7 @@ class FunctionTestCollection {
void restoreXml(DocumentStorage &store,const Element *el); ///< Load tests from a \<decompilertest> tag.
void restoreXmlOldForm(DocumentStorage &store,const Element *el); ///< Load tests from \<binaryimage> tag.
void runTests(list<string> &lateStream); ///< Run the script and perform the tests
- static void runTestFiles(const vector<string> &testFiles,ostream &s); ///< Run tests for each listed file
+ static int runTestFiles(const vector<string> &testFiles,ostream &s); ///< Run tests for each listed file
};
#endif
--
2.40.0
@@ -1,137 +0,0 @@
From 9f82d92228afeaac6e8482a1e842fea9d195e750 Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Thu, 28 Jul 2022 09:20:03 -0400
Subject: [PATCH 2/8] Add include guards to decompiler C++ headers
---
Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh | 5 +++++
Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh | 6 ++++++
Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh | 5 +++++
Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh | 5 +++++
.../Features/Decompiler/src/decompile/cpp/slgh_compile.hh | 5 +++++
Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh | 6 ++++++
6 files changed, 32 insertions(+)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh
index 875d3bb78..6ade01ecc 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh
@@ -17,6 +17,9 @@
/// \file bfd_arch.hh
/// \brief Specific implementation of Architecture using GNU BFD libraries
+#ifndef __BFD_ARCH__
+#define __BFD_ARCH__
+
#include "sleigh_arch.hh"
#include "loadimage_bfd.hh"
@@ -47,3 +50,5 @@ class BfdArchitecture : public SleighArchitecture {
BfdArchitecture(const string &fname,const string &targ,ostream *estream); ///< Constructor
virtual ~BfdArchitecture(void) {}
};
+
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh
index 364a5258d..edd6ce865 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh
@@ -14,8 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
+#ifndef __GRAPH__
+#define __GRAPH__
+
#include "funcdata.hh"
extern void dump_dataflow_graph(Funcdata &data,ostream &s);
extern void dump_controlflow_graph(const string &name,const BlockGraph &graph,ostream &s);
extern void dump_dom_graph(const string &name,const BlockGraph &graph,ostream &s);
+
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh
index 3ca912dd6..0b70d8b22 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh
@@ -16,6 +16,9 @@
/// \file ifaceterm.hh
/// \brief Add some terminal capabilities to the command-line interface (IfaceStatus)
+#ifndef __IFACE_TERM__
+#define __IFACE_TERM__
+
#include "interface.hh"
#ifdef __TERMINAL__
@@ -48,3 +51,5 @@ class IfaceTerm : public IfaceStatus {
virtual void popScript(void);
virtual bool isStreamFinished(void) const;
};
+
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh
index 2245840a0..490abf901 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh
@@ -15,6 +15,10 @@
*/
/// \file raw_arch.hh
/// \brief Bare bones capability for treating a file as a raw executable image
+
+#ifndef __RAW_ARCH__
+#define __RAW_ARCH__
+
#include "sleigh_arch.hh"
#include "loadimage.hh"
@@ -46,3 +50,4 @@ class RawBinaryArchitecture : public SleighArchitecture {
virtual ~RawBinaryArchitecture(void) {}
};
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh
index e7ab19185..8fd9ba2fd 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh
@@ -16,6 +16,9 @@
/// \file slgh_compile.hh
/// \brief High-level control of the sleigh compilation process
+#ifndef __SLGH_COMPILE__
+#define __SLGH_COMPILE__
+
#include "sleighbase.hh"
#include "pcodecompile.hh"
#include "filemanage.hh"
@@ -446,3 +449,5 @@ class SleighCompile : public SleighBase {
extern SleighCompile *slgh; ///< A global reference to the SLEIGH compiler accessible to the parse functions
extern int yydebug; ///< Debug state for the SLEIGH parse functions
+
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh
index d395fb8a3..6371148b0 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh
@@ -15,6 +15,10 @@
*/
/// \file xml_arch.hh
/// \brief Extension to read executables based on an XML format
+
+#ifndef __XML_ARCH__
+#define __XML_ARCH__
+
#include "sleigh_arch.hh"
#include "loadimage_xml.hh"
@@ -45,3 +49,5 @@ class XmlArchitecture : public SleighArchitecture {
XmlArchitecture(const string &fname,const string &targ,ostream *estream); ///< Constructor
virtual ~XmlArchitecture(void) {}
};
+
+#endif
--
2.40.0
@@ -1,7 +1,8 @@
From a5f1be9df17f10db97dbd12243b001591d8b64d9 Mon Sep 17 00:00:00 2001
From: Alex Cameron <asc@tetsuo.sh>
Date: Wed, 3 Aug 2022 20:01:18 +1000
Subject: [PATCH 4/8] Use `stroull` instead of `stroul` to parse address
From 95f230f46bdb95aa4aab7f5d320691f87107fb36 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Wed, 2 Aug 2023 23:20:14 +1000
Subject: [PATCH 2/2] Use `stroull` instead of `stroul` to parse address
offsets
---
@@ -9,7 +10,7 @@ Subject: [PATCH 4/8] Use `stroull` instead of `stroul` to parse address
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/space.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
index 40a3e3bfe..ff6f282ca 100644
index bf4e1dc9..594b4583 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
@@ -16,6 +16,8 @@
@@ -18,10 +19,10 @@ index 40a3e3bfe..ff6f282ca 100644
+#include <climits>
+
namespace ghidra {
AttributeId ATTRIB_BASE = AttributeId("base",89);
AttributeId ATTRIB_DEADCODEDELAY = AttributeId("deadcodedelay",90);
AttributeId ATTRIB_DELAY = AttributeId("delay", 91);
@@ -268,7 +270,10 @@ uintb AddrSpace::read(const string &s,int4 &size) const
@@ -290,7 +292,10 @@ uintb AddrSpace::read(const string &s,int4 &size) const
}
}
catch(LowlevelError &err) { // Name doesn't exist
@@ -34,5 +35,5 @@ index 40a3e3bfe..ff6f282ca 100644
enddata = (const char *) tmpdata;
if (enddata - s.c_str() == s.size()) { // If no size or offset override
--
2.40.0
2.39.2 (Apple Git-143)
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,51 +0,0 @@
From 893e32017fb08c773bfedafe790667db3a39cf62 Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Sun, 19 Mar 2023 15:46:26 -0400
Subject: [PATCH 7/8] (3/4) decompiler: Manually fix std namespace in generated
file
We must manually fix the symbols from std namespace because the
automated tool does not know how to parse yacc/bison files.
---
.../Decompiler/src/decompile/cpp/slghparse.y | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/slghparse.y b/Ghidra/Features/Decompiler/src/decompile/cpp/slghparse.y
index 0e2172f79..039963cd5 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/slghparse.y
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/slghparse.y
@@ -32,24 +32,24 @@ using namespace std;
char ch;
uintb *i;
intb *big;
- string *str;
- vector<string> *strlist;
- vector<intb> *biglist;
- vector<ExprTree *> *param;
+ std::string *str;
+ std::vector<std::string> *strlist;
+ std::vector<intb> *biglist;
+ std::vector<ExprTree *> *param;
SpaceQuality *spacequal;
FieldQuality *fieldqual;
StarQuality *starqual;
VarnodeTpl *varnode;
ExprTree *tree;
- vector<OpTpl *> *stmt;
+ std::vector<OpTpl *> *stmt;
ConstructTpl *sem;
SectionVector *sectionstart;
Constructor *construct;
PatternEquation *pateq;
PatternExpression *patexp;
- vector<SleighSymbol *> *symlist;
- vector<ContextChange *> *contop;
+ std::vector<SleighSymbol *> *symlist;
+ std::vector<ContextChange *> *contop;
SleighSymbol *anysym;
SpaceSymbol *spacesym;
SectionSymbol *sectionsym;
--
2.40.0
@@ -1,29 +0,0 @@
From 92dd6f2579323dba0b5438c245f342507d27ec01 Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Sun, 19 Mar 2023 15:47:28 -0400
Subject: [PATCH 8/8] (4/4) decompiler: Manually fix missed std variable usage
Unfortunately, the heuristics in remusing are unable to automatically
fix this case of variables from the C++ standard library.
This was fixed by resolving the error(s) produced by the compiler.
---
Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_process.hh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_process.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_process.hh
index 64fd45e35..428319a65 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_process.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_process.hh
@@ -79,7 +79,7 @@ class GhidraCommand {
virtual void loadParameters(void); ///< Read parameters directing command execution
virtual void sendResult(void); ///< Send results of the command (if any) back to the Ghidra client
public:
- GhidraCommand(void) : sin(cin),sout(cout) {
+ GhidraCommand(void) : sin(std::cin),sout(std::cout) {
ghidra = (ArchitectureGhidra *)0;
} ///< Construct given i/o streams
virtual ~GhidraCommand(void) {} ///< Destructor
--
2.40.0
+18 -22
View File
@@ -22,7 +22,7 @@ set_property(CACHE sleigh_RELEASE_TYPE PROPERTY STRINGS "stable" "HEAD")
find_package(Git REQUIRED)
# Ghidra pinned stable version commit
set(ghidra_version "10.2.3")
set(ghidra_version "11.0")
set(ghidra_git_tag "Ghidra_${ghidra_version}_build")
set(ghidra_shallow TRUE)
@@ -38,36 +38,25 @@ set(ghidra_patches
PATCH_COMMAND "${GIT_EXECUTABLE}" config user.name "${ghidra_patch_user}" &&
"${GIT_EXECUTABLE}" config user.email "${ghidra_patch_email}" &&
"${GIT_EXECUTABLE}" am --ignore-space-change --ignore-whitespace --no-gpg-sign
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0001-Small-improvements-to-C-decompiler-testing-from-CLI.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0002-Add-include-guards-to-decompiler-C-headers.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0003-Fix-UBSAN-errors-in-decompiler.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0004-Use-stroull-instead-of-stroul-to-parse-address-offse.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0005-1-4-decompiler-Add-using-namespace-std-to-all-.cc.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0006-2-4-decompiler-Remusing-automated-std-namespace-fix.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0007-3-4-decompiler-Manually-fix-std-namespace-in-generat.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0008-4-4-decompiler-Manually-fix-missed-std-variable-usag.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0001-Fix-UBSAN-errors-in-decompiler.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0002-Use-stroull-instead-of-stroul-to-parse-address-offse.patch"
)
# Ghidra pinned commits used for pinning last known working HEAD commit
if("${sleigh_RELEASE_TYPE}" STREQUAL "HEAD")
# TODO: Try to remember to look at Ghidra/application.properties
# TODO: CMake only likes numeric characters in the version string....
set(ghidra_head_version "10.3")
set(ghidra_head_version "11.1")
set(ghidra_version "${ghidra_head_version}")
set(ghidra_head_git_tag "acb07dd535a9ff10d230e989cc45523482e76fa9")
set(ghidra_head_git_tag "fa8eff4d33f6323bcd8e26615d5a362046bb2756")
set(ghidra_git_tag "${ghidra_head_git_tag}")
set(ghidra_shallow FALSE)
set(ghidra_patches
PATCH_COMMAND "${GIT_EXECUTABLE}" config user.name "${ghidra_patch_user}" &&
"${GIT_EXECUTABLE}" config user.email "${ghidra_patch_email}" &&
"${GIT_EXECUTABLE}" am --ignore-space-change --ignore-whitespace --no-gpg-sign
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0001-Add-include-guards-to-decompiler-C-headers.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0002-Fix-UBSAN-errors-in-decompiler.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0003-Use-stroull-instead-of-stroul-to-parse-address-offse.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0004-1-4-decompiler-Add-using-namespace-std-to-all-.cc-fi.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0005-2-4-decompiler-Automated-std-namespace-fix-with-remu.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0006-3-4-decompiler-Manually-fix-std-namespace-in-generat.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0007-4-4-decompiler-Manually-fix-missed-std-variable-usag.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0001-Fix-UBSAN-errors-in-decompiler.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0002-Use-stroull-instead-of-stroul-to-parse-address-offse.patch"
)
string(SUBSTRING "${ghidra_git_tag}" 0 7 ghidra_short_commit)
else()
@@ -173,11 +162,13 @@ set(sleigh_deccore_source_list
"${library_root}/opbehavior.cc"
"${library_root}/paramid.cc"
"${library_root}/unionresolve.cc"
"${library_root}/modelrules.cc"
"${library_root}/signature.cc"
)
#if("${sleigh_RELEASE_TYPE}" STREQUAL "HEAD")
# list(APPEND sleigh_deccore_source_list
# )
#endif()
# if("${sleigh_RELEASE_TYPE}" STREQUAL "HEAD")
# list(APPEND sleigh_deccore_source_list
# )
# endif()
set(sleigh_extra_source_list
"${library_root}/callgraph.cc"
@@ -220,7 +211,12 @@ set(sleigh_ghidra_source_list
"${library_root}/ghidra_process.cc"
"${library_root}/comment_ghidra.cc"
"${library_root}/string_ghidra.cc"
"${library_root}/signature_ghidra.cc"
)
# if("${sleigh_RELEASE_TYPE}" STREQUAL "HEAD")
# list(APPEND sleigh_ghidra_source_list
# )
# endif()
set(sleigh_slacomp_source_list
"${library_root}/slgh_compile.cc"
+10
View File
@@ -33,6 +33,7 @@ set(spec_file_list
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Atmel/data/languages/avr8e.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Atmel/data/languages/avr8eind.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Atmel/data/languages/avr8xmega.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/BPF/data/languages/BPF_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/CP1600/data/languages/CP1600.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/CR16/data/languages/CR16B.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/CR16/data/languages/CR16C.slaspec"
@@ -56,6 +57,10 @@ set(spec_file_list
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/HCS12/data/languages/HCS12.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/HCS12/data/languages/HCS12X.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/JVM/data/languages/JVM.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Loongarch/data/languages/loongarch32_f32.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Loongarch/data/languages/loongarch32_f64.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Loongarch/data/languages/loongarch64_f32.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Loongarch/data/languages/loongarch64_f64.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/M8C/data/languages/m8c.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/MC6800/data/languages/6805.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/MC6800/data/languages/6809.slaspec"
@@ -86,6 +91,8 @@ set(spec_file_list
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_e500_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_e500_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_e500mc_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_e500mc_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_quicciii_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_quicciii_le.slaspec"
@@ -121,8 +128,11 @@ set(spec_file_list
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Toy/data/languages/toy_wsz_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Toy/data/languages/toy_wsz_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/V850/data/languages/V850.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Xtensa/data/languages/xtensa_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Xtensa/data/languages/xtensa_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Z80/data/languages/z180.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Z80/data/languages/z80.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/eBPF/data/languages/eBPF_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/tricore/data/languages/tricore.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/x86/data/languages/x86-64.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/x86/data/languages/x86.slaspec"
+10
View File
@@ -33,6 +33,7 @@ set(spec_file_list
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Atmel/data/languages/avr8e.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Atmel/data/languages/avr8eind.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Atmel/data/languages/avr8xmega.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/BPF/data/languages/BPF_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/CP1600/data/languages/CP1600.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/CR16/data/languages/CR16B.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/CR16/data/languages/CR16C.slaspec"
@@ -56,6 +57,10 @@ set(spec_file_list
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/HCS12/data/languages/HCS12.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/HCS12/data/languages/HCS12X.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/JVM/data/languages/JVM.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Loongarch/data/languages/loongarch32_f32.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Loongarch/data/languages/loongarch32_f64.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Loongarch/data/languages/loongarch64_f32.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Loongarch/data/languages/loongarch64_f64.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/M8C/data/languages/m8c.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/MC6800/data/languages/6805.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/MC6800/data/languages/6809.slaspec"
@@ -86,6 +91,8 @@ set(spec_file_list
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_e500_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_e500_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_e500mc_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_e500mc_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_quicciii_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_quicciii_le.slaspec"
@@ -121,8 +128,11 @@ set(spec_file_list
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Toy/data/languages/toy_wsz_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Toy/data/languages/toy_wsz_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/V850/data/languages/V850.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Xtensa/data/languages/xtensa_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Xtensa/data/languages/xtensa_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Z80/data/languages/z180.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Z80/data/languages/z80.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/eBPF/data/languages/eBPF_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/tricore/data/languages/tricore.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/x86/data/languages/x86-64.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/x86/data/languages/x86.slaspec"
+112 -102
View File
@@ -15,108 +15,118 @@
#pragma GCC diagnostic ignored "-Wsign-compare"
#pragma GCC diagnostic ignored "-Wunused-parameter"
#endif
#include <sleigh/action.hh>
#include <sleigh/address.hh>
#include <sleigh/architecture.hh>
#include <sleigh/block.hh>
#include <sleigh/blockaction.hh>
#include <sleigh/callgraph.hh>
#include <sleigh/capability.hh>
#include <sleigh/cast.hh>
#include <sleigh/codedata.hh>
#include <sleigh/comment.hh>
#include <sleigh/comment_ghidra.hh>
#include <sleigh/condexe.hh>
#include <sleigh/context.hh>
#include <sleigh/coreaction.hh>
#include <sleigh/cover.hh>
#include <sleigh/cpool.hh>
#include <sleigh/cpool_ghidra.hh>
#include <sleigh/crc32.hh>
#include <sleigh/database.hh>
#include <sleigh/database_ghidra.hh>
#include <sleigh/doccore.hh>
#include <sleigh/docmain.hh>
#include <sleigh/double.hh>
#include <sleigh/dynamic.hh>
#include <sleigh/emulate.hh>
#include <sleigh/emulateutil.hh>
#include <sleigh/error.hh>
#include <sleigh/filemanage.hh>
#include <sleigh/float.hh>
#include <sleigh/flow.hh>
#include <sleigh/fspec.hh>
#include <sleigh/funcdata.hh>
#include <sleigh/ghidra_arch.hh>
#include <sleigh/ghidra_context.hh>
#include <sleigh/ghidra_process.hh>
#include <sleigh/ghidra_translate.hh>
#include <sleigh/globalcontext.hh>
#include <sleigh/grammar.hh>
#include <sleigh/graph.hh>
#include <sleigh/heritage.hh>
#include <sleigh/ifacedecomp.hh>
#include <sleigh/ifaceterm.hh>
#include <sleigh/inject_ghidra.hh>
#include <sleigh/inject_sleigh.hh>
#include <sleigh/interface.hh>
#include <sleigh/jumptable.hh>
#include <sleigh/libdecomp.hh>
#include <sleigh/loadimage.hh>
#include <sleigh/loadimage_ghidra.hh>
#include <sleigh/loadimage_xml.hh>
#include <sleigh/memstate.hh>
#include <sleigh/merge.hh>
#include <sleigh/op.hh>
#include <sleigh/opbehavior.hh>
#include <sleigh/opcodes.hh>
#include <sleigh/options.hh>
#include <sleigh/override.hh>
#include <sleigh/paramid.hh>
#include <sleigh/partmap.hh>
#include <sleigh/pcodecompile.hh>
#include <sleigh/pcodeinject.hh>
#include <sleigh/pcodeparse.hh>
#include <sleigh/pcoderaw.hh>
#include <sleigh/prefersplit.hh>
#include <sleigh/prettyprint.hh>
#include <sleigh/printc.hh>
#include <sleigh/printjava.hh>
#include <sleigh/printlanguage.hh>
#include <sleigh/rangemap.hh>
#include <sleigh/rangeutil.hh>
#include <sleigh/raw_arch.hh>
#include <sleigh/ruleaction.hh>
#include <sleigh/rulecompile.hh>
#include <sleigh/semantics.hh>
#include <sleigh/sleigh.hh>
#include <sleigh/sleigh_arch.hh>
#include <sleigh/sleighbase.hh>
#include <sleigh/slgh_compile.hh>
#include <sleigh/slghparse.hh>
#include <sleigh/slghpatexpress.hh>
#include <sleigh/slghpattern.hh>
#include <sleigh/slghsymbol.hh>
#include <sleigh/space.hh>
#include <sleigh/string_ghidra.hh>
#include <sleigh/stringmanage.hh>
#include <sleigh/subflow.hh>
#include <sleigh/testfunction.hh>
#include <sleigh/transform.hh>
#include <sleigh/translate.hh>
#include <sleigh/type.hh>
#include <sleigh/typegrp_ghidra.hh>
#include <sleigh/typeop.hh>
#include <sleigh/types.h>
#include <sleigh/unify.hh>
#include <sleigh/userop.hh>
#include <sleigh/variable.hh>
#include <sleigh/varmap.hh>
#include <sleigh/varnode.hh>
#include <sleigh/xml.hh>
#include <sleigh/xml_arch.hh>
#include <sleigh/unionresolve.hh>
#include <sleigh/marshal.hh>
#include <ghidra/action.hh>
#include <ghidra/address.hh>
#include <ghidra/architecture.hh>
#include <ghidra/block.hh>
#include <ghidra/blockaction.hh>
#include <ghidra/callgraph.hh>
#include <ghidra/capability.hh>
#include <ghidra/cast.hh>
#include <ghidra/codedata.hh>
#include <ghidra/comment.hh>
#include <ghidra/comment_ghidra.hh>
#include <ghidra/condexe.hh>
#include <ghidra/context.hh>
#include <ghidra/coreaction.hh>
#include <ghidra/cover.hh>
#include <ghidra/cpool.hh>
#include <ghidra/cpool_ghidra.hh>
#include <ghidra/crc32.hh>
#include <ghidra/database.hh>
#include <ghidra/database_ghidra.hh>
#include <ghidra/doccore.hh>
#include <ghidra/docmain.hh>
#include <ghidra/double.hh>
#include <ghidra/dynamic.hh>
#include <ghidra/emulate.hh>
#include <ghidra/emulateutil.hh>
#include <ghidra/error.hh>
#include <ghidra/filemanage.hh>
#include <ghidra/float.hh>
#include <ghidra/flow.hh>
#include <ghidra/fspec.hh>
#include <ghidra/funcdata.hh>
#include <ghidra/ghidra_arch.hh>
#include <ghidra/ghidra_context.hh>
#include <ghidra/ghidra_process.hh>
#include <ghidra/ghidra_translate.hh>
#include <ghidra/globalcontext.hh>
#include <ghidra/grammar.hh>
#include <ghidra/graph.hh>
#include <ghidra/heritage.hh>
#include <ghidra/ifacedecomp.hh>
#include <ghidra/ifaceterm.hh>
#include <ghidra/inject_ghidra.hh>
#include <ghidra/inject_sleigh.hh>
#include <ghidra/interface.hh>
#include <ghidra/jumptable.hh>
#include <ghidra/libdecomp.hh>
#include <ghidra/loadimage.hh>
#include <ghidra/loadimage_ghidra.hh>
#include <ghidra/loadimage_xml.hh>
#include <ghidra/memstate.hh>
#include <ghidra/merge.hh>
#include <ghidra/op.hh>
#include <ghidra/opbehavior.hh>
#include <ghidra/opcodes.hh>
#include <ghidra/options.hh>
#include <ghidra/override.hh>
#include <ghidra/paramid.hh>
#include <ghidra/partmap.hh>
#include <ghidra/pcodecompile.hh>
#include <ghidra/pcodeinject.hh>
#include <ghidra/pcodeparse.hh>
#include <ghidra/pcoderaw.hh>
#include <ghidra/prefersplit.hh>
#include <ghidra/prettyprint.hh>
#include <ghidra/printc.hh>
#include <ghidra/printjava.hh>
#include <ghidra/printlanguage.hh>
#include <ghidra/rangemap.hh>
#include <ghidra/rangeutil.hh>
#include <ghidra/raw_arch.hh>
#include <ghidra/ruleaction.hh>
#include <ghidra/rulecompile.hh>
#include <ghidra/semantics.hh>
#include <ghidra/sleigh.hh>
#include <ghidra/sleigh_arch.hh>
#include <ghidra/sleighbase.hh>
#include <ghidra/slgh_compile.hh>
// This is required because slghparse.hh does not have a namespace block
namespace ghidra {
#include <ghidra/slghparse.hh>
} // End namespace ghidra
#include <ghidra/slghpatexpress.hh>
#include <ghidra/slghpattern.hh>
#include <ghidra/slghsymbol.hh>
#include <ghidra/space.hh>
#include <ghidra/string_ghidra.hh>
#include <ghidra/stringmanage.hh>
#include <ghidra/subflow.hh>
#include <ghidra/testfunction.hh>
#include <ghidra/transform.hh>
#include <ghidra/translate.hh>
#include <ghidra/type.hh>
#include <ghidra/typegrp_ghidra.hh>
#include <ghidra/typeop.hh>
#include <ghidra/types.h>
#include <ghidra/unify.hh>
#include <ghidra/userop.hh>
#include <ghidra/variable.hh>
#include <ghidra/varmap.hh>
#include <ghidra/varnode.hh>
#include <ghidra/xml.hh>
#include <ghidra/xml_arch.hh>
#include <ghidra/unionresolve.hh>
#include <ghidra/marshal.hh>
#include <ghidra/analyzesigs.hh>
#include <ghidra/modelrules.hh>
#include <ghidra/signature.hh>
#include <ghidra/signature_ghidra.hh>
// #ifdef sleigh_RELEASE_IS_HEAD
// #endif
#ifndef _MSC_VER
#pragma GCC diagnostic pop
+6 -5
View File
@@ -20,15 +20,16 @@ add_executable(sleigh_ghidra_test
"${library_root}/../unittests/testcirclerange.cc"
"${library_root}/../unittests/testfloatemu.cc"
"${library_root}/../unittests/testfuncproto.cc"
"${library_root}/../unittests/testtypes.cc"
"${library_root}/../unittests/testmarshal.cc"
"${library_root}/../unittests/testparamstore.cc"
)
if(sleigh_RELEASE_IS_HEAD)
target_sources(sleigh_ghidra_test PRIVATE
"${library_root}/../unittests/testfuncproto.cc"
)
endif()
# if(sleigh_RELEASE_IS_HEAD)
# target_sources(sleigh_ghidra_test PRIVATE
# )
# endif()
target_compile_features(sleigh_ghidra_test PRIVATE cxx_std_11)
target_include_directories(sleigh_ghidra_test PRIVATE "${library_root}")