Skip to content
  1. Oct 14, 2016
  2. Aug 16, 2016
  3. Aug 14, 2016
  4. Aug 12, 2016
  5. Jul 04, 2016
    • Dov Feldstern's avatar
      mips_toIR: fail attempt to decode a branch or jump without its delay slot · 2df16473
      Dov Feldstern authored
      This (at least partially) fixes angr/angr#71.
      
      Note that there is already code in place
      (https://github.com/angr/vex/blob/acccba9/priv/guest_mips_toIR.c#L17239) to
      check if the last instruction in the to-be-decoded block is a branch or jump,
      in which case the code simply stops decoding *before* that last instruction, so
      as not to separate it from the delay slot. However, this check is only applied
      to the "next" instruction, but not to the first instruction in the block. So if
      only a single instruction is to be decoded, and it happens to be a branch or
      jump, the existing code doesn't catch it.
      
      It might be possible to modify the existing code to also catch the single-
      instruction case, however that would be a more invasive change (and would
      probably also require moving the whole check from the end of the function to
      its beginning), so I preferred special-casing the single-instruction case.
      2df16473
  6. Jun 30, 2016
  7. Mar 15, 2016
  8. Oct 23, 2015
  9. Oct 22, 2015
  10. Oct 06, 2015
  11. Aug 07, 2015
  12. Jul 31, 2015
  13. Jul 30, 2015
  14. Jul 29, 2015
  15. Jul 28, 2015
  16. Jul 27, 2015
    • Ronny Chevalier's avatar
      {amd64,x86}_toIR: handle hlt instruction · d12fd926
      Ronny Chevalier authored
      GCC put this instruction just after the call to ___libc_start_main in
      case exit failed.
      
      In user mode this instruction will kill the process if it is executed,
      but with the right privileges it will place the processor in a halt
      state and can be resumed, continuing with the next instruction. Since we
      cannot differentiate usermode from the other, we consider it like the
      "int 0x03" debug instruction since it can be resumed the same way.
      
      It also fixes a bug where Simuvex would have created an empty IRSB
      raising an SimIRSBError.
      d12fd926
  17. Jul 24, 2015