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

短いシェル スクリプト (bash など) を作成できます。sedandforループと、単語リストを含む 3 つの変数が必要です。という名前のファイルに足と猫と状態を含む最初のコードがある場合、次の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.txtなどを取得new_code_3.txtします。

説明:最初のforループはコードをコピーし、単語foot新しい単語my_first_code.txtに置き換えます。他の 2 つのループは、新しいファイル内の単語を置き換えるだけです。for

于 2013-01-04T17:33:45.313 に答える