HexHive / HexHive/retrowrite

[BUG] RetroWrite does not disassemble a set of functions

Open
#35 0 comments 0 reactions 0 assignees View on GitHub
analysis-needed bug
Dominant language
Python
Stars
750
Forks
87
PR merge metrics
No merged PRs in 30d

Description

RetroWrite does not disassemble certain functions
especially when their symbol visibilities are 'STV_HIDDEN.'
Moreover, the omission causes recompilation errors.

I examined source code, and found the following code that filters out hidden functions.

https://github.com/HexHive/retrowrite/blob/120e73859c2d76b712bfd609ce91c0a8a4d003d7/librw_x64/loader.py#L202-L204

I think the above code should be removed to fix the bug.
Thank you.

Test Environment.
1. Platform: Ubuntu 18.04, x86-64
2. Compiler: gcc-7
3. Target binary: binutils-2.31.1/objcopy

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in librw_x64/loader.py at the hidden-symbol filtering code linked in the issue, then reproduce the behavior with the binutils-2.31.1/objcopy target on Ubuntu 18.04 using gcc-7. Done means functions with STV_HIDDEN visibility are disassembled and the resulting output recompiles without errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
reverse-engineering
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.