2017-07-02 3 views
4

いくつかの文字を含むbase64でエンコードされた文字列のマスクを外したり、リバースエンジニアリング文字列マスキング/難読化機能

例えば、は00000000と一致します。文字列を難読化するアルゴリズムを見つけるために、より多くのデータ(入力と出力)を知る方法はありますか?私は何も見つけることができませんでした。

いくつかの例:Aは、(A)は、F長い場合f(A)の結果は長さが変化することになる

  • は、Aが短い場合f(A)が短くなり、長くなります。
  • 同様のエンディング(例:[email protected][email protected])のAとBがある場合、f(A)とf(B)のエンディングも同じになります。あなたはmentionnedた内容に基づいて
+0

これはどのようにbase64に関連していますか? – Simon

+0

VovL5SaV_iSBx6oAFGypsTCOはbase64でエンコードされた文字列ではありませんか? – Sylvain

+1

はい、データを表示したり、ASCIIに限定されたシステムに送信したりすることができます。あなたの基本的な質問は、18バイトの任意のデータの背後に適用されます。私が正しく理解していれば、あなたは 'base64(f(" 00000000 "))=" VovL5SaV_iSBx6oAFGypsTCO "'を持っています。したがって、別の表現(16進数)は 'hex(f(" 00000000 "))=" 568bcbe52695fe2481c7aa00146ca9b1308e "'です。 'f'をリバースエンジニアリングしようとしています。 Base64は無関係です。そして、あなたの質問は、暗号に関するものであろうとそうでないものであろうと、それはあまりにも広すぎるので、わかりません。 –

答えて

2

暗号がブロック暗号を使用していますように、それはそうです:あなたについて 一つNIVEプロパティ暗号がブロックの暗号化の前に1に依存しないことであるブロック、これはオールウェイズではありませんあなたが攻撃者にとって非常に良いことですが、ブロック暗号の1つは ECB:https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Cipher_Block_Chaining_.28CBC.29です。各暗号化に同じ鍵が使用されていることがわかります。 decryoptを推測することを可能にするXORと同等である。 f(00000000000000)の長さが複数のブロックであることを確認し、パターンが自己を繰り返すかどうかを確認する。 C:https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Counter_.28CTR.29のようなものを使用している可能性があります。ここでは、xを使って各ブロックを暗号化するために "key(i)" = blockcipher(key、nonce(i) (000000000000)とキー(1)、キー(2)を見つける...あなたはあなたが望むものを解読するために後者を使うことができます。難読化に使用するツールを私に提供できるのであれば、私はあなたが望むものを解読することができるかもしれません。

+0

この関数は基本的にAPIであり、PHP(サーバーが言うことです)を使用し、解読されたテキストを画像の出力として使用します。それが私の知る全てだ。 – Sylvain

+0

テキストを含む画像を出力する。これは実際にドキュメンテーションhttp://php.net/manual/en/function.imagettftext.phpで詳述されているシンプルなPHPスクリプトです。 – Sylvain

+0

apiはブラックボックス(あなたのf関数)であり、何かをフィードすることができます。もしあれば、私はそれにアクセスできますか? – user1928596

2

あなたが言ったことと公表されたコメントを考えれば、より多くのデータカップルを知っていると言います。[obfuscated/cleartext]は、基礎となるアルゴリズム。

あなたはそのような文字列長、および文字冗長性などの諸特性を分析する必要があります、そしてバイト値は、小さな変化(例:000001000000の変更)に移行し、変動また、難読化された文字列が予測又は反復である場合、コントロール。

最終的に、あなた自身の難読化されたテキストを偽造して結果を見ることができるかどうかを試してみてください。これは、ファジングによって達成でき、より積極的な方法でアルゴリズムを予測するのに役立ちます。

あなたの言ったところでは、これはデータの保護されたブロックサイファーではなく、むしろ代用であると言います。バイトレベルではROT13、XORでは両方ともいくつかのパディング(メタデータ?)があります。

_はセパレータとして機能しているように見えます。つまり、そのままの文字列はデコードできませんが、_の両方の部分がデコードできます。

-1

私はこれを手伝っていますが、United States Digital Millennium copyright act section 1201の下では違法です。おそらく、より自由な国にいる誰かがより良い答えを返すでしょう。

1201. (1) A. No person shall circumvent a technological measure 
that effectively controls access to a work protected under this title. 
関連する問題