From 7bc0bc474d2c80cf4e3c180cad06fb4ba5374ad9 Mon Sep 17 00:00:00 2001 From: cadmic Date: Mon, 9 Jun 2025 21:45:21 -0700 Subject: [PATCH] Continue analyzing functions after unknown jumps (#106) * Continue analyzing functions after unknown jumps --- src/analysis/tracker.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/analysis/tracker.rs b/src/analysis/tracker.rs index 3226565..1ce172c 100644 --- a/src/analysis/tracker.rs +++ b/src/analysis/tracker.rs @@ -417,9 +417,13 @@ impl Tracker { Ok(ExecCbResult::Continue) } StepResult::Jump(target) => match target { + BranchTarget::Return => Ok(ExecCbResult::EndBlock), BranchTarget::Unknown - | BranchTarget::Return | BranchTarget::JumpTable { address: RelocationTarget::External, .. } => { + let next_addr = ins_addr + 4; + if next_addr < function_end { + possible_missed_branches.insert(ins_addr + 4, vm.clone_all()); + } Ok(ExecCbResult::EndBlock) } BranchTarget::Address(addr) => {