peace-maker / lysis-java

Lysis - SourceMod .smx and AMXModX .amxx decompiler
111 stars 39 forks source link

Unable to decompile all of the following plugins #40

Closed qq378339982 closed 1 year ago

qq378339982 commented 1 year ago

plugins.zip

peace-maker commented 1 year ago

Those plugins appear to be encrypted by an external tool and not valid amxx files as is. The first 8 bytes are always the same, so maybe you can reverse engineer the packing/encryption? Where did you get those files from / which amxx version are they made for?

qq378339982 commented 1 year ago

I downloaded it online and I don't know how it is encrypted, so it cannot be decompiled. This is the complete addons file addons.zip

peace-maker commented 1 year ago

There is a simple decryption function in the amxmodx_mm.dll at 0x1000d4c0, so you have to decrypt the files first, then lysis works fine

import sys
def decrypt(d):
    key = 0x57
    out = []
    for c in d:
        out.append(c ^ key)
        key += out[-1] + 0x57
        key &= 0xff
    return bytes(out)
sys.stdout.buffer.write(decrypt(sys.stdin.buffer.read()))

python decrypt_amxx.py < 175_Base.amxx > 175_Base_decrypt.amxx

Can you link to where you got this from? It does come off a bit sus indeed. Anyways, I won't add that cipher to lysis since it seems very custom to a certain setup.