Javascript obfuscation tricksa day agohttps://blog.pixelmelt.dev/javascript-obfuscation-tricks/函数可以通过注释读取自身,从而允许嵌入和使用任意字符串数据;移除注释的反混淆器会破坏代码。堆栈跟踪的行号和列号可以用作加密密钥;重新格式化或移除函数会改变这些数字,导致解密失败。可以通过异步分叉炸弹(例如异步函数两次调用自身)触发浏览器崩溃,从而在开发者工具中隐藏崩溃位置。变量名可以通过对象键迭代提取为字符串,从而允许在标识符中存储数据,并通过eval强制名称完整性。为了阻止基于LLM的反混淆,嵌入带有噪声的威胁性Base64指令,使模型拒绝执行,或者通过使每个代码段都必不可少来超载上下文窗口。
Overview of JavaScript Virtualization Obfuscationa day agohttps://blog.pixelmelt.dev/overview-of-javascript-virtualization-obfuscation/没有代码保护是牢不可破的,因为计算机必须查看指令才能执行它们,因此目标是抽象程序执行。虚拟化混淆涉及创建一个幻想CPU,将输入代码编译为其指令集,并在解释器中运行,类似于Java虚拟机。Web保护(JavaScript)通常比二进制保护更容易破解,因为二进制安全领域更为成熟。一个基本示例展示了程序作为指令ID和操作数的数组,以及一个循环来解释诸如push和add之类的指令。监控程序内存可以破解此类虚拟化代码,就像可执行程序一样。
Try-Catch Control Flow Obfuscationa day agohttps://blog.pixelmelt.dev/try-catch-control-flow-obfuscation/JavaScript异常处理可被利用来创建非线性代码流,从而混淆分析。攻击者可强制try块中的错误跳转到catch块,从而隐藏实际预期功能。catch块执行真实逻辑,通常根据try块中设置的状态进行条件检查。链式使用多个try-catch块会创建复杂的执行路径,只有通过特定的错误链才能到达特定代码。必须避免使函数总是抛出错误的行为过于明显,因为这会让模式更易被检测。