Good diffing comparison ----------------------- [ ] What to diff [ ] Diff Microsoft patches. PE files, both DLL an EXE files for x86, x86_64 and ARM. [ ] Diff 2 versions of NTOSKRNL.exe. [ ] Diff (and import symbols from) 2 versions of mpengine.dll: one with symbols, the other without symbols. [ ] Diff 2 Unix/Linux ELF files for the same architecture: x86, x86_64, ARM, AArch64, MIPS, PPC, etc... [ ] A good candidate here: different versions of BusyBox for different architectures. [ ] Diff 2 Unix/Linux ELF files with different architectures. [ ] Again, BusyBox is a good candidate. Otherwise, Debian supports many architectures. [ ] Diff 2 Mach-O binaries. Some patch. [ ] Diff 2 versions of the MacOSX kernel for x86_64. [ ] Diff 2 versions of the same iOS program. [ ] Diff 2 versions of the iOS kernel. [ ] Diff (and import symbols from) the MacOSX kernel, with symbols, against the iOS kernel. [ ] Diff 2 binaries for the same program that are one ELF and one PE for the same architecture. [ ] Diff 2 binaries for the same program that are one ELF and one PE for different architectures. [ ] Diff (and import symbols from) 2 versions of a firmware for the same CPU architecture. [ ] PS4 kernels, for example, are a good target. [ ] For example, port the symbols from kernel 1.76 to the stripped kernel 5.50. [ ] Another example: port FreeBSD's kernel symbols to the stripped PS4 kernel 5.50. [ ] Diff (and import symbols from) 2 versions of a firmware for different architectures. [ ] Again, diffing the PS4 against the FreeBSD kernel for different architectures. [ ] Diff (and import symbols from) a library against a program that statically links to it, for the same architecture. [ ] Good examples are sqlite3, libxml2 or V8. [ ] Diff 2 binaries for any format that is not PE, ELF or MachO for: [ ] ...uncommon architectures, but comparing the same architecture. [ ] ...two different and uncommon architectures. [ ] Batch analysis [ ] Automated export. [ ] Automated diffing. [ ] What to measure [ ] Accuracy. [ ] Time to export. [ ] Accuracy. [ ] Time to diff. [ ] And Accuracy. [ ] Things to verify when importing database [ ] Function names. [ ] Function comments. [ ] Global names. [ ] Function prototypes. [ ] Pseudo-code comments. [ ] Structs and enums.