JPEXS Free Flash Decompiler Issue Tracker

If you are looking for the decompiler itself, visit https://github.com/jindrapetrik/jpexs-decompiler

NEW : We have got a new blog where we post some interesting SWF internals info.

List of issuesList of issues

#590 Deobfuscation error : get what it was able to read
Date created:
Type: question
Visibility: Everybody
Assigned to:
State: closed Help

Hello, I've got a little question. I know you don't work on deobfuscation anymore. I got a AS3 file that has an obfuscated method, and therefore throws a deobfuscation error. I was wondering if it was possible to print out what it was able to read. Let me explain that. If the deobfuscation fails, it means that somewhere, it wasn't able to read the bytecode and generate AS code result. If an error occurs, it prints a deobfuscation error for the whole method. Is there a way to make it print the "readable" part of the bytecode before the error occurs ? The bytecode is just too hard to read and understand. Hope I was clear enough and thank you in advance.
It is not possible. The source code is not step by step generated from the bytecodes. First a graph should be created from the bytecodes. (And most of the problems are in this step, the text rendering from the graph is much more reliable) Suppose that the bytecodes are: push xx setlocal xx <other> jump or if xx Without the jump the result would be: var xx = yy; With the jump it can be a loop: while (zz) { var xx = yy; } So the first character of the generatad aAS code is diffrent, it is not possible to "get what it was to read" in the AS view. It is possible only in P-Code view. Am I right, JPEXS? +the obfuscators usually (if not ever) starts the obfuscation with the first instrucion.
State: new→upgraded
I think it would be very complicated. The algorithm I use for graph generation/deobfuscation resolves jumps based on stack. And the deobfuscation problems are usually caused by empty stack for some reasons. Also the deobfuscation algorithm is buggy and always will be, and I don't have any plans to improve it, because it takes much time withot any usefull result. Sorry. I am closing this, hope you understand.
State: upgraded→closed