Tatradas – Disassembler for x86 executables written in Delphi/FreePascal

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • tatradas

    Disassembler for x86 executables (16-bit and 32-bit) which supports PE, NE, MZ, COM and ELF file formats

  • lazarus

    Discontinued Free Pascal Lazarus Project - Sync'ed with Lazarus SubVersion trunk every 15 minutes

  • The most "funny" disassembler I have ever seen in pascal/delphi is the one from cheat engine...

    https://github.com/cheat-engine/cheat-engine/blob/master/Che...

    That one unit has more than 16000 LOC, its basically one huge case statement where each opcode is handled separately... super simple but certainly not DRY (don't repeat yourself). But I guess its one of those cases which you should avoid writing DRY code.

    In the same manner is the fpdebug-disassembler from the free pascal team, I found that disassembler one of the most elegant one.

    https://github.com/alrieckert/lazarus/blob/master/components...

    It has some minor errors in the Rex decoding though, if I remember correctly....

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • sandsifter

    The x86 processor fuzzer

  • edge via patent and other legal protections" constantly-expanding-the-instruction-set approach.

    So the issue, at least in x86-land is, "Who is the absolute source of truth with respect to the instruction set?"

    Also, remember that Christopher Domas (Google him, you'll find a whole lot of interesting stuff) -- discovered that x86 processors typically can and do implement all sorts of undocumented instructions:

    https://github.com/xoreaxeaxeax/sandsifter

    >"Typically, several million undocumented instructions on your processor will be found, but these generally fall into a small number of different groups. After binning the anomalies, the summarize tool attempts to assign each instruction to an issue category:

    o Software bug (for example, a bug in your hypervisor or disassembler),

    o Hardware bug (a bug in your CPU), or

    o Undocumented instruction (an instruction that exists in the processor, but is not acknowledged by the manufacturer)

    Anyway, thanks for the link! (The second one! )

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts