0

その後、別の開発者が小さなログ難読化プログラムを作成しましたが、これを Java に変換する必要があります。

すべての char アイテムは 255 で xor されています。難読化解除のコード スニペットは次のとおりです。

char[] array = text.ToCharArray();
for (int i = 0; i < array.Length; i++){
    char @string = array[i];
     text2 += Conversions.ToString(Strings.Chr(Strings.Asc(@string) ^ 255));
}
streamWriter.WriteLine(text2);

Conversions.ToString(Strings.Chr(Strings.Asc(@string) ^ 255));これを C# から Javaに変換する必要があります。問題は、ASCII 文字が > 255 の場合、Java で文字を正しくデコードしないように見えることです。次に例を示します。

String e = "ÃÎÌËÁßÍÏÎÌÐÏÉÐÎÌßÎÊÒÌÈÒÌÇßÓœž“ÏÑ–‘™Áß‘ŠÎÏÈÈËÑ‘ŠŒ–šÑœ’ß™ÅßÏÌÌÉ"; 
    String sOut1 = ""; 
    String sOut2 = "'";
    char[] cArray = e.toCharArray();
    for(int index = 0; index < cArray.length; index++){
        int before = ((int) cArray[index]);
        int after = before ^ 255;
        char s = ((char) after);
        sOut1 += cArray[index];
        sOut2 += Character.toString(s);
        System.out.println( "1: " + cArray[index] + 
                            "  2: " + Integer.toString(before) + 
                            "  3: " + Integer.toString(after) +
                            "  4: " + Character.toString(s)

                );


    }
    System.out.println(sOut1);
    System.out.println(sOut2);

これが私のJavaコードの出力です:

ÃÎÌËÁßÍÏÎÌÐÏÉÐÎÌßÎÊÒÌÈÒÌÇßÓœž“ÏÑ–‘™Áß‘ŠÎÏÈÈËÑ‘ŠŒ–šÑœ’ß™ÅßÏÌÌÉ

'<134> 2013/06/13 15-37-38 <⃣oƬƁ⃣0.⃬⃧⇝o> ⃧Ɵ10774.⃧Ɵƭp⃬rƞ.Ƭo⃦ p⇝</p>

支援と与えられた助けに感謝します。

4

1 に答える 1

-1

Java char の下位 8 ビットのみを取得するようにしてください。マスキングすることでそれを行うことができます:

char tmp&=255;

またはモジュラス演算子を使用してマスクします。

char tmp=tmp%255;
于 2013-06-21T16:51:03.840 に答える