diff --git a/Ghidra/Processors/AARCH64/certification.manifest b/Ghidra/Processors/AARCH64/certification.manifest index 2206636499..1390a55a38 100644 --- a/Ghidra/Processors/AARCH64/certification.manifest +++ b/Ghidra/Processors/AARCH64/certification.manifest @@ -21,4 +21,6 @@ data/languages/AARCH64sve.sinc||GHIDRA||||END| data/languages/AppleSilicon.ldefs||GHIDRA||||END| data/manuals/AARCH64.idx||GHIDRA||||END| data/patterns/AARCH64_LE_patterns.xml||GHIDRA||||END| +data/patterns/AARCH64_win_patterns.xml||GHIDRA||||END| data/patterns/patternconstraints.xml||GHIDRA||||END| +data/patterns/prepatternconstraints.xml||GHIDRA||||END| diff --git a/Ghidra/Processors/AARCH64/data/languages/AARCH64_win.cspec b/Ghidra/Processors/AARCH64/data/languages/AARCH64_win.cspec index 156fc99d37..8e02453a7e 100644 --- a/Ghidra/Processors/AARCH64/data/languages/AARCH64_win.cspec +++ b/Ghidra/Processors/AARCH64/data/languages/AARCH64_win.cspec @@ -193,4 +193,22 @@ + + + + + + + + + + + + + + diff --git a/Ghidra/Processors/AARCH64/data/patterns/AARCH64_win_patterns.xml b/Ghidra/Processors/AARCH64/data/patterns/AARCH64_win_patterns.xml new file mode 100644 index 0000000000..0f14dd7da0 --- /dev/null +++ b/Ghidra/Processors/AARCH64/data/patterns/AARCH64_win_patterns.xml @@ -0,0 +1,50 @@ + + + + + + + 0xff 0x43 0x00 0xd1 + ...10001 ........ ........ 1..10000 + 00110001 ......10 01...... 11111001 + 0xf1 0x63 0x31 0xcb + 0xf1 0x07 0x00 0xf9 + 0xc0 0x03 0x5f 0xd6 + + + + + + + ...10001 ........ ........ 1..10000 + 0xf0 0x07 0x40 0xf9 + 00110001 ......10 01...... 11111001 + 0xf0 0x63 0x30 0xcb + 0x1f 0x02 0x11 0xeb + ...00001 ........ ........ 01010100 + 0xff 0x43 0x00 0x91 + 0xc0 0x03 0x5f 0xd6 + 0x1f 0x20 0x03 0xd5 + + + + + + \ No newline at end of file diff --git a/Ghidra/Processors/AARCH64/data/patterns/prepatternconstraints.xml b/Ghidra/Processors/AARCH64/data/patterns/prepatternconstraints.xml new file mode 100644 index 0000000000..b7a92ce80b --- /dev/null +++ b/Ghidra/Processors/AARCH64/data/patterns/prepatternconstraints.xml @@ -0,0 +1,7 @@ + + + + AARCH64_win_patterns.xml + + + \ No newline at end of file diff --git a/Ghidra/Processors/ARM/data/languages/ARMTHUMBinstructions.sinc b/Ghidra/Processors/ARM/data/languages/ARMTHUMBinstructions.sinc index c53819453d..e839c4f829 100644 --- a/Ghidra/Processors/ARM/data/languages/ARMTHUMBinstructions.sinc +++ b/Ghidra/Processors/ARM/data/languages/ARMTHUMBinstructions.sinc @@ -883,7 +883,7 @@ thsdec4: thsdec5 is thc0404=0 & thsdec5 { } thsdec3: r3 is thc0303=1 & r3 & thc0415=0 { * mult_addr=r3; mult_addr = mult_addr - 4; } thsdec3: r3,thsdec4 is thc0303=1 & thsdec4 & r3 { * mult_addr=r3; mult_addr = mult_addr - 4; } thsdec3: thsdec4 is thc0303=0 & thsdec4 { } -thsdec2: r2 is thc0202=1 & r2 & thc0415=0 { * mult_addr=r2; mult_addr = mult_addr - 4; } +thsdec2: r2 is thc0202=1 & r2 & thc0315=0 { * mult_addr=r2; mult_addr = mult_addr - 4; } thsdec2: r2,thsdec3 is thc0202=1 & thsdec3 & r2 { * mult_addr=r2; mult_addr = mult_addr - 4; } thsdec2: thsdec3 is thc0202=0 & thsdec3 { } thsdec1: r1 is thc0101=1 & r1 & thc0215=0 { * mult_addr=r1; mult_addr = mult_addr - 4; }