Skip to content

Datalog Disassembly

github.com/GrammaTech
67 pointsaboardRat46 comments
On HN

Comments

HN does not seem to have discussed ddisasm enough.

When I discovered it, I was amazed, astonished, stunned, thrilled, and in disbelief.

It turns out that it actually works.

Why is it amazing?

How does this actually work in practice?

I suppose altering instruction count or size still dooms the executable to become non-functional?

Or do all absolute & relative code & data references all get magically updated?

elf and pe have relocation info so u can patch things effectively. binary blobs might be problematic but project targets elf/pe from what i can tell.

there is no magic in computer -_-

Generally binary rewriters will add a new section for the rewritten code/other stuff that needs regeneration (relocations, exception info, the like)

ooh souffle! wonder how they avoid saturation explosion. that's doomed my souffle projects in the past. but obviously they've found a way to partition (maybe by block?)

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.