control flow obfuscation, dynamic code generation, highly nested functions, and some closure functions
Currently, the functionality can only handle simple variable name obfuscation, but it is not applicable to common obfuscation techniques such as complex control flow obfuscation, dynamic code generation, highly nested functions, and some closure functions.
it is not applicable to common obfuscation techniques such as complex control flow obfuscation, dynamic code generation, highly nested functions, and some closure functions
Obfuscation is now handled by the package webcrack, which is a direct dependency of this project. If you need any further deobfuscation capabilities, please open an issue at the webcrack side – any new features will automatically be included in the future Humanify releases.
If you have any ideas on how to implement these features using LLMs, then I'd be happy to try to implement them at Humanify side.
Since the LLMs are used to rename and "humanify" variables and function and the like.
It would be nice if it can rename "Labeled statements" that is used for while or for loops. As of right now, they remain untouched. This feature might be a bit complex to do as I do notice some obfuscated JS files have the labels repeated for separate while loops or the same name reused in a lambda(due to it being a separate namespace it does not affect the label or redefined the variable)
Lambda functions are also have their variables untouched, too. though it might be also complex due to them being used in .reduce( ) statements often in obfuscated code.
otherwise this is a great project and keeps it simple and clean. Most other forms of obfuscation should be directed towards the webcrack team.