BoomerangDecompiler / boomerang

Boomerang Decompiler - Fighting the code-rot :)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Assertion 'sect' failed

TambourineReindeer opened this issue · comments

When I try to decompile a certain Linux elf executable, I get SIGABRT and this error:

boomerang: /home/razzy/Desktop/boomerang/loader/elf/ElfBinaryFile.cpp:277: virtual bool ElfBinaryFile::RealLoad(const QString&): Assertion `sect' failed.

Since the executable is from a commercial video game (Teleglitch), I'm not sure how to have others test it :/ The Windows executable works fine, however, and decompiles to completion.

This is likely caused by the failure of this check

     if(SectionMap.find(interval<ADDRESS>::right_open(from,to))!=SectionMap.end()) {
        return nullptr;
    }

And this check fails when trying to create a section that overlaps with existing one.
What might help in tracking the problem down is posting output from objdump -h EXECUTABLE_NAME

Before I go to bed, here you go:
objdump.txt
Hope it helps for now!

At a glance the sections look OK, and should be read properly by boomerang. I've tried running boomerang on teleglitch linux demo and it did not crash on that, so must be some difference between demo and release executables.

Oh, I can try checking it myself (Is it the Gamefront download?). I wonder if something changed between the game at the original release (and demo) and the "Die More Edition" update.

Hmm..I tried running the Linux demo through Boomerang and had another assertion failure (subExp1). I attached console output from Boomerang:
output_teleglitch32_demo.txt

Here is the output again from the full release (with the latest version of Boomerang; when I posted this issue I was using one from a few weeks ago):

Not adding 0 sized section  ""
Segment ".strtab" would intersect existing one ".interp"
boomerang: /media/razzy/Storage/Projects/Source Codes/Disassembly/boomerangc/loader/elf/ElfBinaryFile.cpp:252: virtual bool ElfBinaryFile::LoadFromMemory(QByteArray&): Assertion `sect' failed.

So as you said, there is a section overlapping with another.

commented

This should be fixed in the current develop version, so I'm closing this.