BinaryAnalysisPlatform / bap

Binary Analysis Platform
MIT License
2.07k stars 273 forks source link

fixes unconditional pop with return in thumb #1449

Closed ivg closed 2 years ago

ivg commented 2 years ago

Not really a bug but an ugly code generated for the unconditional pop instruction that involves the PC register,

bap mc --arch=thumb --show-bil --show-insn=asm --show-mem --addr=0x1c04 -- f0 bd
1c04: f0 bd
pop {r4, r5, r6, r7, pc}
{
  if (1) {
    R4 := mem[SP, el]:u32
    R5 := mem[SP + 4, el]:u32
    R6 := mem[SP + 8, el]:u32
    R7 := mem[SP + 0xC, el]:u32
    SP := SP + 0x10
    jmp (mem[SP, el]:u32)
  }
}

This change removes this bogus if(1).