diff options
| author | Mason Reed <mason@vector35.com> | 2025-07-20 20:41:01 -0400 |
|---|---|---|
| committer | Mason Reed <mason@vector35.com> | 2025-07-21 12:14:45 -0400 |
| commit | 889220635ade554600346a576fe60de0a40b3b07 (patch) | |
| tree | 4094f429c8284dcffd3adc822792540d64b9ec44 /plugins | |
| parent | 34216a4e6724c80c018b8cfa6f133a270728f095 (diff) | |
[WARP] Fix garbage jumps from being included in the variant instruction masking
We emit jumps at the end of some blocks that the architecture is not aware of, they are not actually apart of the functions instructions
rather they are used in our analysis... somehow, I have not figured out what they are supposed to be used for but regardless, they should be
ignored by WARP.
This was just a case where the filtering was including jumps in non start instructions, where we actually wanted the opposite.
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/warp/src/lib.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/plugins/warp/src/lib.rs b/plugins/warp/src/lib.rs index 0a4a758c..fd935702 100644 --- a/plugins/warp/src/lib.rs +++ b/plugins/warp/src/lib.rs @@ -248,7 +248,7 @@ pub fn filtered_instructions_at<M: FunctionMutability>( LowLevelILInstructionKind::NoRet(_) | LowLevelILInstructionKind::Ret(_) => false, // Stop collecting instruction if we are probably the end function jump in lifted IL. This // is emitted at the end of the function and will mess with our GUID. - LowLevelILInstructionKind::Jump(_) => *i != 0, + LowLevelILInstructionKind::Jump(_) => *i == 0, _ => true, }) .map(|(_, instr)| instr) |
