Javascript 如何替换随机变量名?
因此,我正在处理消除一些javascript代码模糊的任务,并使用www.jsbeautifier.org获得了我的代码。是否可以进行某种类型的搜索和替换查询,或使用其他方法将随机变量名称替换为该实际内容,例如:Javascript 如何替换随机变量名?,javascript,deobfuscation,Javascript,Deobfuscation,因此,我正在处理消除一些javascript代码模糊的任务,并使用www.jsbeautifier.org获得了我的代码。是否可以进行某种类型的搜索和替换查询,或使用其他方法将随机变量名称替换为该实际内容,例如: O7 = "string"; o9 = "test"; function o9(O7) { .... etc } 到 谢谢,在纯正则表达式或语言不可知论中,您不能这样做,因为您不能使用条件替换(或替换)。这意味着你不能做以下事情: b(a),并说:如果
O7 = "string";
o9 = "test";
function o9(O7) {
.... etc
}
到
谢谢,在纯正则表达式或语言不可知论中,您不能这样做,因为您不能使用条件替换(或替换)。这意味着你不能做以下事情:
,并说:b(a)
如果a为空,则将整个匹配项替换为“c”;否则,请转到“d”。
(例如:
$n
,$”
,$&
,$`
…)-查看
但是,假设您正在使用Javascript去除Javascript代码,您正在搜索的正则表达式是:
/"[^"]*"|'[^']*'|\/\*[\s\S]*?\*\/|\/\/.*$|\b(<text>)\b/mg
使用该函数,您可以执行您想要的操作,例如,解析:
O7 = "string";
o9 = "test";
function o9(O7) { ...
并在开始时检索=
,然后像这样使用它(在循环或其他内部):
code = deobfuscate(code, toFind[i], toReplace[i]);
工作示例
/*文本区域和输入的DOM*/
var代码=document.getElementById(“代码”);
var from=document.getElementById(“from”);
var to=document.getElementById(“to”);
code.placeholder=“代码在这里…”;
from.placeholder=“from”;
to.placeholder=“to”;
/*示例值*/
code.value=“示例://Switch(?):\n”+
函数o9(o9){//true,true\n+
o9='o9';//true,false\n+
“/*\n”+
“o9//false\n”+
“*/\n”+
var test=o9+\“o9\”+o9;//真、假、真\n+
返回o9;//o9//true,false\n+
“}\n”;
from.value=“o9”;
to.value=“确定”;
/*称为onclick操作*/
函数doStuff(){
code.value=deobfousate(code.value,from.value,to.value);
}
函数deobfousate(代码、从、到){
var re=RegExp(“[^”]*“[^\']*”[^\']*“\\\/\\*[\\s\\s]*?\\*\/\\/\/\.$\\\\\/.$\\\\b(“+from+”)\\b,“'gm');
返回代码.replace(re,function(match,g1){return(g1)→to:match;});
}
&rarr;
脱氟
据我所知,没有什么是完全自动化的。我认为,根据代码的数量,最好是手动进行。半手动方法是获得以下定义:O7=“string”;o9=“test";代码>以类似csv的格式,然后让一个小脚本使用该文件一个接一个地进行每个替换。好吧,我猜这需要几年的时间。哈哈,代码相当长。看看。如果在变量中使用名称而不是数组/对象,则替换回调中的eval
可能是一个快速的“脏”解决方案。也就是说,一般来说,大多数JavaScript IDE都有重构功能来完成这类工作。
code = deobfuscate(code, toFind[i], toReplace[i]);