mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-03 09:49:23 +02:00
Merge remote-tracking branch 'origin/patch'
This commit is contained in:
commit
cc177afc8f
3 changed files with 73 additions and 36 deletions
|
@ -435,6 +435,11 @@ public class ConstantPropagationAnalyzer extends AbstractAnalyzer {
|
|||
// now get rid of all the instructions that were analyzed
|
||||
todoSet.delete(resultSet);
|
||||
}
|
||||
|
||||
// make sure todoSet removes start address if no results
|
||||
if (resultSet == null || resultSet.isEmpty()) {
|
||||
todoSet.delete(start,start);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,32 +1,34 @@
|
|||
<patternlist>
|
||||
<patternpairs totalbits="32" postbits="16">
|
||||
<prepatterns>
|
||||
<data>0x03e00008 0x........</data> <!-- RETN : delayslot -->
|
||||
<data>0x03e00008 0x........ 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x03e00008 0x........ 0x00000000 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x03e00008 0x........</data> <!-- RETN : delayslot -->
|
||||
<data>0x03e00008 0x........ 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x03e00008 0x........ 0x00000000 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x03e00008 0x........ 0x00000000 0x00000000 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>000010.. 0x...... 0x27 0xbd 0....... ......00</data> <!-- J xyz : _ADDIU This is probably a shared return-->
|
||||
<data>0x1000.... 0x27 0xbd 0....... ......00</data> <!-- B xyz : _ADDIU This is probably a shared return-->
|
||||
<data>0x03 0x20 00000... ..001000 0x27 0xbd 0x0. 0x.. </data> <!-- JR t9 : _ADDIU -->
|
||||
<data>000010.. 0x...... 0.100111 0xbd 0....... ......00</data> <!-- J xyz : _D/ADDIU This is probably a shared return-->
|
||||
<data>000010.. 0x...... 0.100111 0xbd 0....... ......00 0x00000000 </data> <!-- J xyz : _D/ADDIU This is probably a shared return-->
|
||||
<data>0x1000.... 0.100111 0xbd 0....... ......00</data> <!-- B xyz : _D/ADDIU This is probably a shared return-->
|
||||
<data>0x1000.... 0.100111 0xbd 0....... ......00 0x00000000 </data> <!-- B xyz : _D/ADDIU This is probably a shared return-->
|
||||
<data>0x03 0x20 00000... ..001000 0.100111 0xbd 0x0. 0x.. </data> <!-- JR t9 : _D/ADDIU -->
|
||||
</prepatterns>
|
||||
<postpatterns>
|
||||
<data>00100111 10111101 1....... ......00</data> <!-- ADDIU SP,SP,-xxxx -->
|
||||
<data>0x3c...... 0x27 0xbd 1....... ......00</data> <!-- LUI - ADDIU SP,SP,-xxxx -->
|
||||
<data>100011.. 0x...... 0x27 0xbd 1....... ......00</data> <!-- LW - ADDIU SP,SP,-xxxx -->
|
||||
<data>0x3c...... 100011.. 0x...... 0x27 0xbd 1....... ......00</data> <!-- LUI - LW - ADDIU SP,SP,-xxxx -->
|
||||
<data>0x3c1c.... 0x279c.... </data> <!-- LUI gp,xxxx ADDIU GP,GP,xxxx -->
|
||||
<data>0.100111 10111101 1....... ......00 </data> <!-- D/D/ADDIU SP,SP,-xxxx -->
|
||||
<data>0x3c...... 0.100111 0xbd 1....... ......00</data> <!-- LUI - D/ADDIU SP,SP,-xxxx -->
|
||||
<data>100011.. 0x...... 0.100111 0xbd 1....... ......00</data> <!-- LW - D/ADDIU SP,SP,-xxxx -->
|
||||
<data>0x3c...... 100011.. 0x...... 0.100111 0xbd 1....... ......00</data> <!-- LUI - LW - D/ADDIU SP,SP,-xxxx -->
|
||||
<data>0x3c1c.... 0.100111 0x9c.... </data> <!-- LUI gp,xxxx D/ADDIU GP,GP,xxxx -->
|
||||
<funcstart/>
|
||||
</postpatterns>
|
||||
</patternpairs>
|
||||
<patternpairs totalbits="32" postbits="16">
|
||||
<prepatterns>
|
||||
<data>0x03e00008 0x........</data> <!-- RETN : delayslot -->
|
||||
<data>0x03e00008 0x........ 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x03e00008 0x........ 0x00000000 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x03e00008 0x........ 0x00000000 0x00000000 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>000010.. 0x...... 0x27 0xbd 0....... ......00</data> <!-- J xyz : _ADDIU This is probably a shared return-->
|
||||
<data>0x1000.... 0x27 0xbd 0....... ......00</data> <!-- B xyz : _ADDIU This is probably a shared return-->
|
||||
<data>0x03 0x20 00000... ..001000 0x27 0xbd 0x0. 0x.. </data> <!-- JR t9 : _ADDIU -->
|
||||
<data>0x03e00008 0x........</data> <!-- RETN : delayslot -->
|
||||
<data>0x03e00008 0x........ 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x03e00008 0x........ 0x00000000 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x03e00008 0x........ 0x00000000 0x00000000 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>000010.. 0x...... 0.100111 0xbd 0....... ......00</data> <!-- J xyz : _D/ADDIU This is probably a shared return-->
|
||||
<data>0x1000.... 0.100111 0xbd 0....... ......00</data> <!-- B xyz : _D/ADDIU This is probably a shared return-->
|
||||
<data>0x03 0x20 00000... ..001000 0.100111 0xbd 0x0. 0x.. </data> <!-- JR t9 : _D/ADDIU -->
|
||||
</prepatterns>
|
||||
<postpatterns>
|
||||
<data>0x3c06.... </data> <!-- lui a2,xxx -->
|
||||
|
@ -34,6 +36,21 @@
|
|||
</postpatterns>
|
||||
</patternpairs>
|
||||
|
||||
<pattern> <!-- MIPS64 -->
|
||||
<data> 01100111 10111101 1....... ......00 0xff 0xbc 0....... ......00 </data>
|
||||
<!-- daddiu sp, sp, -xxxx
|
||||
sd gp, (0x...)sp
|
||||
-->
|
||||
<funcstart validcode="6" contiguous="true"/>
|
||||
</pattern>
|
||||
|
||||
<pattern> <!-- MIPS32 -->
|
||||
<data> 00100111 10111101 1....... ......00 0xaf 0xbc 0....... ......00 </data>
|
||||
<!-- addiu sp, sp, -xxxx
|
||||
sw gp, (0x...)sp
|
||||
-->
|
||||
<funcstart validcode="6" contiguous="true"/>
|
||||
</pattern>
|
||||
|
||||
<pattern> <!-- MIPS32 Thunk -->
|
||||
<data> 0x3c 0x0f 0x.. 0x.. 0x8d 0xf9 0x.. 0x.. 0x03 0x20 00000... 0x08 0x25 0xf8 0x.. 0x.. </data>
|
||||
|
|
|
@ -1,32 +1,32 @@
|
|||
<patternlist>
|
||||
<patternpairs totalbits="32" postbits="16">
|
||||
<prepatterns>
|
||||
<data>0x0800e003 0x........</data> <!-- RETN : delayslot -->
|
||||
<data>0x0800e003 0x........ 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x0800e003 0x........ 0x00000000 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x0800e003 0x........</data> <!-- RETN : delayslot -->
|
||||
<data>0x0800e003 0x........ 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x0800e003 0x........ 0x00000000 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x0800e003 0x........ 0x00000000 0x00000000 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x...... 000010.. ......00 0....... 0xbd 0x27 </data> <!-- J xyz : _ADDIU This is probably a shared return-->
|
||||
<data>0x....0010 ......00 0....... 0xbd 0x27</data> <!-- B xyz : _ADDIU This is probably a shared return-->
|
||||
<data>..001000 00000... 0x20 0x03 0x0. 0x.. 0xbd 0x27 </data> <!-- JR t9 : _ADDIU -->
|
||||
<data>0x...... 000010.. ......00 0....... 0xbd 0.100111 </data> <!-- J xyz : _ADDIU This is probably a shared return-->
|
||||
<data>0x....0010 ......00 0....... 0xbd 0.100111</data> <!-- B xyz : _ADDIU This is probably a shared return-->
|
||||
<data>..001000 00000... 0x20 0x03 0x0. 0x.. 0xbd 0.100111 </data> <!-- JR t9 : _ADDIU -->
|
||||
</prepatterns>
|
||||
<postpatterns>
|
||||
<data>......00 1....... 10111101 00100111</data> <!-- ADDIU SP,SP,-xxxx -->
|
||||
<data>0x......3c ......00 1....... 0xbd 0x27</data> <!-- LUI - ADDIU SP,SP,-xxxx -->
|
||||
<data>0x...... 100011.. ......00 1....... 0xbd 0x27</data> <!-- LW - ADDIU SP,SP,-xxxx -->
|
||||
<data>0x......3c 0x...... 100011.. ......00 1....... 0xbd 0x27</data> <!-- LUI - LW - ADDIU SP,SP,-xxxx -->
|
||||
<data>0x....1c3c 0x....9c27 </data> <!-- LUI gp,xxxx ADDIU GP,GP,xxxx -->
|
||||
<data>......00 1....... 10111101 00100111</data> <!-- ADDIU SP,SP,-xxxx -->
|
||||
<data>0x......3c ......00 1....... 0xbd 0.100111 </data> <!-- LUI - ADDIU SP,SP,-xxxx -->
|
||||
<data>0x...... 100011.. ......00 1....... 0xbd 0.100111 </data> <!-- LW - ADDIU SP,SP,-xxxx -->
|
||||
<data>0x......3c 0x...... 100011.. ......00 1....... 0xbd 0.100111 </data> <!-- LUI - LW - ADDIU SP,SP,-xxxx -->
|
||||
<data>0x....1c3c 0x....9c 0.100111 </data> <!-- LUI gp,xxxx ADDIU GP,GP,xxxx -->
|
||||
<funcstart/>
|
||||
</postpatterns>
|
||||
</patternpairs>
|
||||
<patternpairs totalbits="32" postbits="16">
|
||||
<prepatterns>
|
||||
<data>0x0800e003 0x........</data> <!-- RETN : delayslot -->
|
||||
<data>0x0800e003 0x........ 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x0800e003 0x........ 0x00000000 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x0800e003 0x........ 0x00000000 0x00000000 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x...... 000010.. ......00 0....... 0xbd 0x27 </data> <!-- J xyz : _ADDIU This is probably a shared return-->
|
||||
<data>0x....0010 ......00 0....... 0xbd 0x27</data> <!-- B xyz : _ADDIU This is probably a shared return-->
|
||||
<data>..001000 00000... 0x20 0x03 0x0. 0x.. 0xbd 0x27 </data> <!-- JR t9 : _ADDIU -->
|
||||
<data>0x0800e003 0x........</data> <!-- RETN : delayslot -->
|
||||
<data>0x0800e003 0x........ 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x0800e003 0x........ 0x00000000 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x0800e003 0x........ 0x00000000 0x00000000 0x00000000 </data> <!-- RETN : delayslot filler -->
|
||||
<data>0x...... 000010.. ......00 0....... 0xbd 0.100111 </data> <!-- J xyz : _ADDIU This is probably a shared return-->
|
||||
<data>0x....0010 ......00 0....... 0xbd 0.100111 </data> <!-- B xyz : _ADDIU This is probably a shared return-->
|
||||
<data>..001000 00000... 0x20 0x03 0x0. 0x.. 0xbd 0.100111 </data> <!-- JR t9 : _ADDIU -->
|
||||
</prepatterns>
|
||||
<postpatterns>
|
||||
<data>0x....063c </data> <!-- lui a2,xxx -->
|
||||
|
@ -34,6 +34,21 @@
|
|||
</postpatterns>
|
||||
</patternpairs>
|
||||
|
||||
<pattern> <!-- MIPS64 -->
|
||||
<data> ......00 1....... 10111101 01100111 ......00 0....... 0xbc 0xff </data>
|
||||
<!-- daddiu sp, sp, -xxxx
|
||||
sd gp, (0x...)sp
|
||||
-->
|
||||
<funcstart validcode="6" contiguous="true"/>
|
||||
</pattern>
|
||||
|
||||
<pattern> <!-- MIPS32 -->
|
||||
<data> ......00 1....... 10111101 00100111 ......00 0....... 0xbc 0xaf </data>
|
||||
<!-- addiu sp, sp, -xxxx
|
||||
sw gp, (0x...)sp
|
||||
-->
|
||||
<funcstart validcode="6" contiguous="true"/>
|
||||
</pattern>
|
||||
|
||||
<pattern> <!-- MIPS32 Thunk -->
|
||||
<data> 0x.. 0x.. 0x0f 0x3c 0x.. 0x.. 0xf9 0x8d 0x08 00000... 0x20 0x03 0x.. 0x.. 0xf8 0x25 </data>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue