mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-09-28 17:11:11 -09:00
Merge remote-tracking branch 'origin/GP-2122_emteere_tmodereg_protect' into patch
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
/* ###
|
/* ###
|
||||||
* IP: GHIDRA
|
* IP: GHIDRA
|
||||||
* REVIEWED: YES
|
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -215,15 +214,17 @@ public class ArmAggressiveInstructionFinderAnalyzer extends AbstractAnalyzer {
|
|||||||
new PseudoDisassemblerContext(curProgram.getProgramContext());
|
new PseudoDisassemblerContext(curProgram.getProgramContext());
|
||||||
|
|
||||||
// get the current value from the program context
|
// get the current value from the program context
|
||||||
curValue = curProgram.getProgramContext().getValue(tmodeReg, entry, false);
|
if (tmodeReg != null) {
|
||||||
// if it doesn't have one set, try to get it the last context from the instruction before
|
curValue = curProgram.getProgramContext().getValue(tmodeReg, entry, false);
|
||||||
if (curValue == null) {
|
// if it doesn't have one set, try to get it the last context from the instruction before
|
||||||
Instruction instr = listing.getInstructionBefore(entry);
|
if (curValue == null) {
|
||||||
if (instr != null) {
|
Instruction instr = listing.getInstructionBefore(entry);
|
||||||
curValue =
|
if (instr != null) {
|
||||||
curProgram.getProgramContext().getValue(tmodeReg, instr.getMinAddress(), false);
|
curValue =
|
||||||
if (curValue != null) {
|
curProgram.getProgramContext().getValue(tmodeReg, instr.getMinAddress(), false);
|
||||||
pseudoContext.setValue(tmodeReg, entry, curValue);
|
if (curValue != null) {
|
||||||
|
pseudoContext.setValue(tmodeReg, entry, curValue);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -257,7 +258,9 @@ public class ArmAggressiveInstructionFinderAnalyzer extends AbstractAnalyzer {
|
|||||||
addsInfo = true;
|
addsInfo = true;
|
||||||
}
|
}
|
||||||
pseudoContext = new PseudoDisassemblerContext(curProgram.getProgramContext());
|
pseudoContext = new PseudoDisassemblerContext(curProgram.getProgramContext());
|
||||||
pseudoContext.setValue(tmodeReg, entry, curValue);
|
if (tmodeReg != null) {
|
||||||
|
pseudoContext.setValue(tmodeReg, entry, curValue);
|
||||||
|
}
|
||||||
AddressSet body =
|
AddressSet body =
|
||||||
pseudo.followSubFlows(entry, pseudoContext, 1000, new PseudoFlowProcessor() {
|
pseudo.followSubFlows(entry, pseudoContext, 1000, new PseudoFlowProcessor() {
|
||||||
Object lastResults[] = null;
|
Object lastResults[] = null;
|
||||||
|
|||||||
Reference in New Issue
Block a user