Skip to content

Possible bug in assembler.py #3

@abel1502

Description

@abel1502

I'm slightly concerned by the following lines in the assembler.py:

# Modify relative jump to absolute jump
if ins.mnemonic == 'JUMP_FORWARD':
    ins.opcode = dis.opmap['JUMP_ABSOLUTE']

This modifies the opcode value without changing the mnemonic, and, more importnantly, the argument - I suppose this should at least add the current instruction's offset to the arg.

P.S. A bit of a backstory:
I'm currently trying to add the support of EXTENDED_ARG stuff, but for that I need to understand the principles of the whole app. The idea I came up with is just to interpret them with the following opcode as one big opcode 6 bytes long, and after that come the details. I started this because I'm trying to decompile one obfuscated wot mod, so I'm simultaneously facing both the BigWorld and EXTENDED_ARG problems, and I have actually figured out some interesting solutions, but I could really use better understanding of the obfuscation.
Also I'm intrested in whether the author, @extremecoders-re is still maintaining this project and if he is interested in continuing the development?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions