Skip to content

Possible bug in assembler.py #3

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?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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