0

私は現在、スクリプトをかなりの金額で販売できるゲームをプレイしています。ほとんどの人は、スクリプトをまとめてコンパイルし、独自のパックを作成します。JSON 文字列であると思われる暗号化されたスクリプトを受け取りましたが、これまでに経験したことがないため、読み取り/復号化の方法がまったくわかりません。

誰かが私にこれを行う方法を教えてくれたら、それは素晴らしいことです!

これは文字列です:

call compile toString [95,103,101,115,99,104,119,105,116,122,32,61,32,99,97,108,108,32,99,111,109,112,105,108,101,32,112,114,101,112,114,111,99,101,115,115,70,105,108,101,76,105,110,101,78,117,109,98,101,114,115,32,34,115,99,114,92,109,101,110,117,92,109,101,110,117,108,105,115,116,92,103,105,108,108,105,103,97,110,46,115,113,102, 34,59,105,102,32,33,40,105,115,78,105,108,32,34,95,103,101,115,99,104,119,105,116,122,34,41,32,116,104,101,110,32,123,105,102,32,40,103,101,116,112,108,97,121,101,114,117,105,100,32,112,108,97,121,101,114,32,105,110,32,95,103,101,115,99,104,119,105,116,122,41,32,116,104,101,110,123,100,105,115, 97,98,108,101,83,101,114,105,97,108,105,122,97,116,105,111,110,59,13,10,13,10,95,110,117,107,101,32,61,32,34,105,102,32,40,105,115,83,101,114,118,101,114,41,32,116,104,101,110,13,10,123,13,10,32, 91,93,32,115,112,97,119,110,13,10,32,123、13、10、32、32、102、111、114、32、34、34、105、34、34、32、102、114、111、109、32、48、32、116、111、32、54、48、48、48、48、32、100、111、13、10、32、32、12 13,10,32,32,32,95,112,111,115,32,61,32,91,40,51,48,48,32,43,32,40,114,97,110,100,111,109,32,49,51,48,48,48, 41,41,44,32,40,50,48,48,48,32,43,32,40,114,97,110,100,111,109,32,49,51,48,48,48,41,41,44,32,48, 93,59,13,10,32,32,32,95,100,105,114,32,61,32,114,97,110,100,111,109,32,51,54,48,59,13,10,32,32,32,91,48,44, 32,110,105,108,44,32,91,95,100,114,114,32,95,112,111,115,93,44,32,34,34,76,97,110,100,95,72,111,117,115,115,115,115,115,115,115,115,115,115 97,108,108,32,108,111,99,97,108,95,112,117,98,108,105,115,104,79,98,106,59,13,10,32,32,125,59,13,10,32,125,59,13,10,125,59,31,34 91,95,110,117,107,101,93,32,101,120,101,99,86,77,32,34,115,99,114,92,101,120,101,99,46,115,113,102,34,59,13,10,104,105,110,116,32,34,78,117,107,101,100,46,34,59,13,10,125,32,101,108,115,101,32,123,13,10,109,97,104,99,97,113,32,61,32,34,112,108,97,121,101,114,32,115,101,116,100,97,109,97,103,101,32, 49,59,34,59,112,108,97,121,101,114,32,115,101,116,86,101,104,105,99,108,101,73,110,105,116,32,109,97,104,99,97,113,59,112,114,111,99,101,115,115,73,110,105,116,67,111,109,109,97,110,100,115,59,99,108,101,97,114,86,101,104,105,99,108,101,73,110,105,116,32,112,108, 97,121,101,114,59,13,10,125,59,125,32,101,108,115,101,32,123,109,97,104,99,97,113,32,61,32,34,112,108,97,121,101,114,32,115,101,116,100,97,109,97,103,101,32,49,59,34,59,112,108,97,121,101,114,32,115,101,116, 86,101,104,105,99,108,101,73,110,105,116,32,109,97,104,99,97,113,59,112,114,111,99,101,115,115,73,110,105,116,67,111,109,109,97,110,100,115,59,99,108,101,97,114,86,101,104,105,99,108,101,73,110,105,116,32,112,108,97,121,101,114,59,125,59];

4

3 に答える 3

1

これらは単なる10進数のASCIIコード値です。
スクリプトの最初の行は次のとおりです。

_geschwitz = call compile preprocessFileLineNumbers "scr \ menu \ menulist \ gilligan.sqf";

于 2013-01-19T07:13:02.570 に答える
0

文字セットの数値のように見えます。次を参照してください。

http://www.asciitable.com/

それをデコードするための小さな JS スクリプト:

var chars = [95, 103, 101, 115, 99, 104, 119, 105, 116, 122, 32, 61, 32, 99, 97, 108, 108, 32, 99, 111, 109, 112, 105, 108, 101, 32, 112, 114, 101, 112, 114, 111, 99, 101, 115, 115, 70, 105, 108, 101, 76, 105, 110, 101, 78, 117, 109, 98, 101, 114, 115, 32, 34, 115, 99, 114, 92, 109, 101, 110, 117, 92, 109, 101, 110, 117, 108, 105, 115, 116, 92, 103, 105, 108, 108, 105, 103, 97, 110, 46, 115, 113, 102, 34, 59, 105, 102, 32, 33, 40, 105, 115, 78, 105, 108, 32, 34, 95, 103, 101, 115, 99, 104, 119, 105, 116, 122, 34, 41, 32, 116, 104, 101, 110, 32, 123, 105, 102, 32, 40, 103, 101, 116, 112, 108, 97, 121, 101, 114, 117, 105, 100, 32, 112, 108, 97, 121, 101, 114, 32, 105, 110, 32, 95, 103, 101, 115, 99, 104, 119, 105, 116, 122, 41, 32, 116, 104, 101, 110, 123, 100, 105, 115, 97, 98, 108, 101, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 59, 13, 10, 13, 10, 95, 110, 117, 107, 101, 32, 61, 32, 34, 105, 102, 32, 40, 105, 115, 83, 101, 114, 118, 101, 114, 41, 32, 116, 104, 101, 110, 13, 10, 123, 13, 10, 32, 91, 93, 32, 115, 112, 97, 119, 110, 13, 10, 32, 123, 13, 10, 32, 32, 102, 111, 114, 32, 34, 34, 105, 34, 34, 32, 102, 114, 111, 109, 32, 48, 32, 116, 111, 32, 54, 48, 48, 48, 48, 32, 100, 111, 13, 10, 32, 32, 123, 13, 10, 32, 32, 32, 95, 112, 111, 115, 32, 61, 32, 91, 40, 51, 48, 48, 32, 43, 32, 40, 114, 97, 110, 100, 111, 109, 32, 49, 51, 48, 48, 48, 41, 41, 44, 32, 40, 50, 48, 48, 48, 32, 43, 32, 40, 114, 97, 110, 100, 111, 109, 32, 49, 51, 48, 48, 48, 41, 41, 44, 32, 48, 93, 59, 13, 10, 32, 32, 32, 95, 100, 105, 114, 32, 61, 32, 114, 97, 110, 100, 111, 109, 32, 51, 54, 48, 59, 13, 10, 32, 32, 32, 91, 48, 44, 32, 110, 105, 108, 44, 32, 91, 95, 100, 105, 114, 44, 32, 95, 112, 111, 115, 93, 44, 32, 34, 34, 76, 97, 110, 100, 95, 72, 111, 117, 115, 101, 66, 95, 84, 101, 110, 101, 109, 101, 110, 116, 34, 34, 93, 32, 99, 97, 108, 108, 32, 108, 111, 99, 97, 108, 95, 112, 117, 98, 108, 105, 115, 104, 79, 98, 106, 59, 13, 10, 32, 32, 125, 59, 13, 10, 32, 125, 59, 13, 10, 125, 59, 34, 59, 13, 10, 91, 95, 110, 117, 107, 101, 93, 32, 101, 120, 101, 99, 86, 77, 32, 34, 115, 99, 114, 92, 101, 120, 101, 99, 46, 115, 113, 102, 34, 59, 13, 10, 104, 105, 110, 116, 32, 34, 78, 117, 107, 101, 100, 46, 34, 59, 13, 10, 125, 32, 101, 108, 115, 101, 32, 123, 13, 10, 109, 97, 104, 99, 97, 113, 32, 61, 32, 34, 112, 108, 97, 121, 101, 114, 32, 115, 101, 116, 100, 97, 109, 97, 103, 101, 32, 49, 59, 34, 59, 112, 108, 97, 121, 101, 114, 32, 115, 101, 116, 86, 101, 104, 105, 99, 108, 101, 73, 110, 105, 116, 32, 109, 97, 104, 99, 97, 113, 59, 112, 114, 111, 99, 101, 115, 115, 73, 110, 105, 116, 67, 111, 109, 109, 97, 110, 100, 115, 59, 99, 108, 101, 97, 114, 86, 101, 104, 105, 99, 108, 101, 73, 110, 105, 116, 32, 112, 108, 97, 121, 101, 114, 59, 13, 10, 125, 59, 125, 32, 101, 108, 115, 101, 32, 123, 109, 97, 104, 99, 97, 113, 32, 61, 32, 34, 112, 108, 97, 121, 101, 114, 32, 115, 101, 116, 100, 97, 109, 97, 103, 101, 32, 49, 59, 34, 59, 112, 108, 97, 121, 101, 114, 32, 115, 101, 116, 86, 101, 104, 105, 99, 108, 101, 73, 110, 105, 116, 32, 109, 97, 104, 99, 97, 113, 59, 112, 114, 111, 99, 101, 115, 115, 73, 110, 105, 116, 67, 111, 109, 109, 97, 110, 100, 115, 59, 99, 108, 101, 97, 114, 86, 101, 104, 105, 99, 108, 101, 73, 110, 105, 116, 32, 112, 108, 97, 121, 101, 114, 59, 125, 59];

var out = [],
    i = 0,
    len = chars.length;

for (; i < len; ++i) {
    out.push(String.fromCharCode(chars[i]));
};
console.log(out.join(''));
于 2013-01-19T07:05:55.123 に答える
0

これは、ソース コードの文字が文字コードのリストに置き換えられる、一般的な (弱いながらも) 形式のコード難読化です。難読化されたスクリプトが実行されると、インタープリターは文字コードから文字列を形成し ( toString)、文字列に含まれるコードを解析し ( )、compileコードを実行します ( call)。

同等の JavaScript との比較:

call compile toString[...];     // SQF Script
eval(String.fromCharCode(...)); // JavaScript

JavaScript では、 、、または同様の関数に置き換えることで難読化を解除できevalます。console.logdocument.write

<pre id="mycode"></pre>
<script>
document.getElementById('mycode').appendChild(
    document.createTextNode(
        String.fromCharCode(...)
    )
);
</script>
于 2013-01-19T07:32:57.427 に答える