Skip to content
Snippets Groups Projects
  1. Jul 20, 2022
  2. Jul 11, 2022
  3. May 19, 2022
  4. May 04, 2022
    • Jason Hiser's avatar
      Update to fix calls for exception handling. · be161585
      Jason Hiser authored
      Fixed calls break exception handling, and largely aren't needed anymore.
      We were still "fixing" calls when it had no fallthrough instruction,
      assuming the call is used for something else.  Except that sometimes a
      "call _cxa_throw" ends a function/section and legitimately has no
      fallthrough.  And this breaks the exception handling.
      
      Testing this fix against the Zipr test suite to verify that it is OK
      on a large suite of programs.
      be161585
  5. Apr 27, 2022
  6. Apr 25, 2022
  7. Apr 22, 2022
  8. Apr 21, 2022
  9. Apr 16, 2022
    • Andreas Wendler's avatar
      Fix DecodedOperandCapstoneX86_t::getString() · bbdd2b1e
      Andreas Wendler authored
      The main problem is the use of an addition instead of a multiplication for scale values.
      In addition, to make sure the result can be used to create new instructions from assembly,
      all generated numbers must be in hex.
      bbdd2b1e
  10. Jan 10, 2022
  11. Jan 08, 2022
  12. Dec 31, 2021
  13. Dec 29, 2021
  14. Dec 20, 2021
  15. Dec 09, 2021
  16. Nov 30, 2021
  17. Nov 28, 2021
    • Jason Hiser's avatar
      Work through issues discovered in GT benchmark suite. · 5fc3e51a
      Jason Hiser authored
      * Update 68-sled code to be keystone friendly
      * Corrected spelling of getInstruction.  removed extraneous assert.
      * Disable should-pin-immediately because it interfers with sleds.
      * Remove assert from fix-calls about odd prefixing, just dont fix the call.  More of an issue with FII doing disassembly
      * Update switch->code discovery path to only happen if switch table is in text segment
      * fixed FII to do what the last commit said -- only disassembly when TABLE is in text.  also patched zipr to handle xbegin gracefully.
      * Disable verbose setting
      * Create lots of dbs instead of just a few
      5fc3e51a
  18. Nov 22, 2021
  19. Nov 21, 2021
  20. Nov 17, 2021
    • Jason Hiser's avatar
      Fixed issue with FII finding wrong cmp · c73569e8
      Jason Hiser authored
      Issue was related to intermediate set of the compare register.
      Leveraged backup_until's stopif argument to stop backup until sooner.
      
      Note: as indicated in code comment, single register/register move
      is common and could be used to improve accuracy.
      c73569e8
    • Jason Hiser's avatar
      Zipr/FII failure-to-tranform fixes · a86e408d
      Jason Hiser authored
      1) FII was finding the wrong cmp for switch tables.
      Removed the blind cmp and forced the cmp to use the proper
      register or not find a cmp.  Also changed the limit for a table
      size when no cmp is found from 2^32 to 255.
      
      2) Fixed an issue with zipr dollop layout where the size
      to layout 1 instruction + a trampoline was bigger than laying
      out two+ full dollops (because both dollops were short), but
      the dollops are disallowed from being coalesced.  The worst-size
      detector needed to account for non-coalescable dollops.
      a86e408d
  21. Nov 15, 2021
  22. Nov 11, 2021
  23. Sep 24, 2021
  24. Sep 17, 2021
  25. Sep 15, 2021
  26. Sep 14, 2021
  27. Aug 12, 2021
  28. Aug 11, 2021
    • Jason Hiser's avatar
      Updates for detecting unoptimized switches better · 19d85e44
      Jason Hiser authored
      In particulate, an alternate version of switch tables
      was being mis-detected by FII.  In particular, switch
      tables were assumed to be size=4, but we found size!=4
      in sqlite (in particular, size=8).  And, I know windows
      binaries have size=1,2.
      
      Also fixed an issue where lea reg1, [reg2+reg3] assumed reg2/reg3
      had values (i.e., reg2 is the base address of a switch table),
      when reg3 might have the value.  Fixed the assumption by
      tracing both reg2+reg3.
      
      Some minor code cleanups.
      19d85e44
  29. Aug 10, 2021
  30. Aug 05, 2021
  31. Aug 04, 2021
  32. Jul 27, 2021
    • Jason Hiser's avatar
      ZS-86 issue in parsing dynsym section. · d678a840
      Jason Hiser authored
      The dynsym section is parsed by objdump/grep.  It's terrible and
      needs to be implemented in C++ to reduce dependence on external tools
      knowing what they are doing.
      
      In this case, the terrible pattern matching with grep caused a symbol
      defined in the binary to be missed, because `grep -v UND` was used
      to determine whether a symbol "mattered".  1) symbol names might have
      UND and get eliminated accidentally, but 2) (what really happened)
      was that the symbol was defined in a section without a "link" field
      in the dynsym section, thus objdump displayed the section name as UND
      and thus the code skipped the symbol.  Don't use objdump to parse ELF
      files!
      d678a840
Loading