- Jul 27, 2021
-
-
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!
-
- Jul 20, 2021
-
-
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.
-
- Jun 12, 2021
-
-
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.
-
- Jun 06, 2021
-
-
xenial-runner authored
-
- Jun 05, 2021
-
-
xenial-runner authored
-
- Jun 04, 2021
-
-
Jason Hiser authored
-
Jason Hiser authored
-
xenial-runner authored
-
- May 24, 2021
-
-
xenial-runner authored
-
- May 07, 2021
-
-
xenial-runner authored
-
- May 06, 2021
-
-
Anh Nguyen-Tuong authored
-
Anh Nguyen-Tuong authored
-
- May 02, 2021
-
-
xenial-runner authored
-
- Apr 29, 2021
-
-
Anh Nguyen-Tuong authored
-
- Apr 27, 2021
-
-
Jason Hiser authored
-
- Apr 26, 2021
-
-
Jason Hiser authored
-
Jason Hiser authored
Table size min was set to <=4 items, but readelf on ubuntu20 had a switch table with exactly 4 elements. This caused FII to miss the table size and subsequently include _many_ extra IBTs. Ultimately, Zipr failed by trying to 68-sled an entire function due to FII's failure.
-
- Apr 24, 2021
-
-
xenial-runner authored
-
- Apr 21, 2021
-
-
xenial-runner authored
-
- Apr 17, 2021
-
-
xenial-runner authored
-
- Apr 11, 2021
-
-
xenial-runner authored
-
- Mar 26, 2021
-
-
xenial-runner authored
-
- Mar 23, 2021
-
-
xenial-runner authored
-
- Mar 20, 2021
-
-
xenial-runner authored
-
- Mar 15, 2021
-
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
-
- Mar 12, 2021
-
-
Jason Hiser authored
-
xenial-runner authored
-
- Mar 05, 2021
-
-
xenial-runner authored
-
- Mar 04, 2021
-
-
xenial-runner authored
-
- Mar 03, 2021
-
-
xenial-runner authored
-
- Mar 02, 2021
-
-
Jason Hiser authored
Enhancement: Make rida support enhanced PLTs See merge request !11
-
Will Hawkins authored
Starting in new(er) versions of Ubuntu distros, PLT entries use the bnd prefix to make sure that jump targets are in bounds. This patch adds conditional support for those PLT styles.
-
- Mar 01, 2021
-
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
-