Skip to content
Snippets Groups Projects
  1. Aug 12, 2021
  2. 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
  3. Aug 10, 2021
  4. Aug 05, 2021
  5. Aug 04, 2021
  6. Jul 28, 2021
  7. 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
    • Jason Hiser's avatar
      ZS-86: Dealt with sledding and KS-asm issues · 69b50a5a
      Jason Hiser authored
      Large ints as constant operands are weird in ks-asm.  Need to use
      positive value, in hex, for less than max-signed-int, and negative
      hex values for values between max-signed-int and max-unsigned-int.
      69b50a5a
  8. Jul 22, 2021
  9. Jul 20, 2021
    • Jason Hiser's avatar
      Fix x86/32 issues for Ubuntu 20.04 · 8546a654
      Jason Hiser authored
      Rida: Parsing of .plt.sec section added for x86/64 ubuntu 20 needed to be
      updated to support x86/32 in ubuntu 20.
      
      Fix-calls: Thunk checks aged poorly.  Revived/fixed some of them.
      8546a654
  10. Jun 12, 2021
    • Jason Hiser's avatar
      Updated rodata scanner to skip pins without relocs in shared libs · 6e68317a
      Jason Hiser authored
      Shared libs need a reloc for a code pointer to live in rodata.
      I found in ffmpeg that many spurious pins were occuring because constant
      (particularly with relatively small values) data looked like code poitners
      (because the code's load point is address 0 in a shared library).
      
      To avoid these spuriosu pins, I extended the code pin algorithm
      to check isDLL() (which includes shared objects) and for a reloc
      before attempting to pin in the rodata.
      
      A perf. optimization verifies that it _might_ result in a pin
      before checking for a reloc, as checking for a reloc can be slow,
      while checking for a possible pin location is fast.
      6e68317a
  11. Jun 09, 2021
  12. Jun 06, 2021
  13. Jun 05, 2021
  14. Jun 04, 2021
Loading