Reputation: 1
LuaJIT version: 2.1.
When I try to decompile the script, I get an error. Then I saw that there are non-existent opcodes in the byte code, because of which the decompiler refuses to decompile the script.
Below I attach the script itself, as well as the bytecode from it, which I was able to get. Also a link to the decompiler.
Download: Script + Bytecode. Decompiler.
I haven't tried anything since I don't have a computer to try what I wanted. As an option, try putting hooks, thereby pulling the script, but without protection. But there are anti-hooks in the script, and I don't know which ones.
I am also attaching the errors that the decompiler gave out.
Traceback (most recent call last):
File "C:\Users\1\Desktop\Реверсинг\test\ljd\main.py", line 296, in <module>
retval = main_obj.main()
^^^^^^^^^^^^^^^
File "C:\Users\1\Desktop\Реверсинг\test\ljd\main.py", line 207, in main
self.decompile(self.options.file_name)
File "C:\Users\1\Desktop\Реверсинг\test\ljd\main.py", line 248, in decompile
self.ast = ljd.ast.builder.build(header, prototype)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\1\Desktop\Реверсинг\test\ljd\ljd\ast\builder.py", line 28, in build
return _build_function_definition(prototype, header)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\1\Desktop\Реверсинг\test\ljd\ljd\ast\builder.py", line 50, in _build_function_definition
node.statements.contents = _build_function_blocks(state, instructions)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\1\Desktop\Реверсинг\test\ljd\ljd\ast\builder.py", line 97, in _build_function_blocks
statement, line_marked_elements = _build_statement(state, addr, instruction)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\1\Desktop\Реверсинг\test\ljd\ljd\ast\builder.py", line 447, in _build_statement
return _build_var_assignment(state, addr, instruction)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\1\Desktop\Реверсинг\test\ljd\ljd\ast\builder.py", line 434, in decorated
assn = func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\1\Desktop\Реверсинг\test\ljd\ljd\ast\builder.py", line 527, in _build_var_assignment
expression = _build_function(state, instruction.CD)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\1\Desktop\Реверсинг\test\ljd\ljd\ast\builder.py", line 851, in _build_function
return _build_function_definition(prototype, state.header)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\1\Desktop\Реверсинг\test\ljd\ljd\ast\builder.py", line 50, in _build_function_definition
node.statements.contents = _build_function_blocks(state, instructions)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\1\Desktop\Реверсинг\test\ljd\ljd\ast\builder.py", line 72, in _build_function_blocks
_establish_warps(state, instructions)
File "C:\Users\1\Desktop\Реверсинг\test\ljd\ljd\ast\builder.py", line 242, in _establish_warps
block.warp, shift = _build_warp(state, block.last_address, warp)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\1\Desktop\Реверсинг\test\ljd\ljd\ast\builder.py", line 255, in _build_warp
last = instructions[-1]
~~~~~~~~~~~~^^^^
IndexError: list index out of range
Traceback (most recent call last):
File "C:\Users\1\Desktop\Реверсинг\test\ljd\main.py", line 296, in <module>
retval = main_obj.main()
^^^^^^^^^^^^^^^
File "C:\Users\1\Desktop\Реверсинг\test\ljd\main.py", line 207, in main
self.decompile(self.options.file_name)
File "C:\Users\1\Desktop\Реверсинг\test\ljd\main.py", line 241, in decompile
header, prototype = ljd.rawdump.parser.parse(file_in, on_parse_header)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\1\Desktop\Реверсинг\test\ljd\ljd\rawdump\parser.py", line 36, in parse
r = r and _read_prototypes(parser, parser.prototypes)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\1\Desktop\Реверсинг\test\ljd\ljd\rawdump\parser.py", line 75, in _read_prototypes
if not ljd.rawdump.prototype.read(state, prototype):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\1\Desktop\Реверсинг\test\ljd\ljd\rawdump\prototype.py", line 49, in read
r = r and _read_constants(parser, prototype)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\1\Desktop\Реверсинг\test\ljd\ljd\rawdump\prototype.py", line 137, in _read_constants
return ljd.rawdump.constants.read(parser, prototype.constants)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\1\Desktop\Реверсинг\test\ljd\ljd\rawdump\constants.py", line 29, in read
r = r and _read_complex_constants(parser, constants.complex_constants)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\1\Desktop\Реверсинг\test\ljd\ljd\rawdump\constants.py", line 74, in _read_complex_constants
complex_constants.append(parser.prototypes.pop())
^^^^^^^^^^^^^^^^^^^^^^^
IndexError: pop from empty list
Upvotes: 0
Views: 205