0

我想编写一些自动(使用规则系统和用作替换的单词列表)应该用其他东西替换所有变量和函数名称的东西:

例如:

var foot = 0;
function cat(state) {
    return state ? "running" : "sleep";
}
cat(foot);

至:

var house = 0;
function bear(country) {
    return country ? "running" : "sleep";
}
bear(house);

我已经搜索了网络,但没有找到任何可以轻松修改以执行此操作的项目。

你们中的任何人都知道如何做到这一点或知道我可以用作起点的项目吗?

4

3 回答 3

1

你是在寻找混淆器还是你喜欢做什么?

如何混淆(保护)JavaScript?

于 2013-01-04T17:20:47.173 回答
0

Google Closure Compiler ( https://developers.google.com/closure/compiler/ ) 能够识别函数和变量名称,但没有内置选项可以用您选择的名称替换它们。

因为直接查找和替换没有上下文,如果你想滚动你自己,你需要使用正则表达式来“解析”JavaScript,如果你使用递归正则表达式,这很困难但易于管理,如 .NET带平衡组

http://msdn.microsoft.com/en-us/library/bs2twtah.aspx

使用正则表达式 c# 递归获取内部模式

于 2013-01-04T17:36:54.917 回答
0

您可以编写一个简短的 Shell 脚本(例如 bash)。您需要sedfor循环以及包含单词列表的三个变量。如果您的第一个代码包含脚和猫以及名为 的文件中的状态my_first_code.txt,那么它将如下所示:

foot_words="house ba be bi bo bu"
cat_words="bear da de di do du"
state_words="country ka ke ki ko ku"

count=1
for word in $foot_words; do
    sed 's%foot%'$word'%g' my_first_code.txt > new_code_$count.txt
    ((count++))
done
count=1
for word in $cat_words; do
    sed -i 's%cat%'$word'%g' new_code_$count.txt
    ((count++))
done
count=1
for word in $state_words; do
    sed -i 's%state%'$word'%g' new_code_$count.txt
    ((count++))
done

在此示例中,您将获得 6 个新文件new_code_1.txtnew_code_2.txtnew_code_3.txt

解释:第一个for循环复制代码my_first_code.txt并将单词foot替换为新单词。另外两个for循环只是替换新文件中的单词。

于 2013-01-04T17:33:45.313 回答