3

エンコードされたPDFファイルを定期的に受け取ります。エンコーディングは次のように機能します。

  • PDFはAcrobatReaderで正しく表示できます
  • すべてを選択し、AcrobatReaderを介してテストをコピーします
  • テキストエディタに貼り付けます
  • コンテンツがエンコードされていることが表示されます

したがって、例は次のとおりです。

13579 -> 3579;
hello -> jgnnq

これは基本的にASCII文字のオフセット(おそらくスワップ)です。

問題は、少数のサンプルにしかアクセスできない場合に、オフセットを自動的に見つけるにはどうすればよいかということです。エンコーディングオフセットが変更されているかどうかわかりません。私が知っているのは、PDF内に「名前:」、「要約:」、「合計:」などのテキストが通常(常にではないにしても)表示されることだけです。

ありがとうございました!

編集:フィードバックをありがとう。私は質問をより小さな質問に分割しようとします:

パート1:文字列内の同一のパーツを検出する方法は?

4

5 に答える 5

5

あなたはそれを総当たり攻撃する必要があります。

これらのパターンが例のように+2文字コード(+2文字コード)のように単純な場合

h i j
e f g
l m n
l m n
o p q

1 2 3
3 4 5
5 6 7
7 8 9
9 : ;

このように簡単に実装して、既知の単語と照合することができます

>>> text='jgnnq'
>>> knowns=['hello', '13579']
>>>
>>> for i in range(-5,+5): #check -5 to +5 char code range
...     rot=''.join(chr(ord(j)+i) for j in text)
...     for x in knowns:
...         if x in rot:
...             print rot
...
hello
于 2010-04-26T08:23:28.770 に答える
3

PDFには、記号(数学や証明など)または自然言語のテキスト(英語、フランス語など)が含まれますか?

後者の場合、文字の頻度チャートを使用できます(距離を移動したい場合は、有向グラフ、三字形、および単語の小さな辞書)。私はおそらくこれらのいくつかがオンラインにあると思います。 これが始まりです。より具体的には、文字の頻度

次に、それがシーザーシフトであることが確実な場合は、最初の1000文字程度を取得し、127程度まで量を増やして前方にシフトできます。結果のテキストを取得し、頻度が上記で見つけた平均的なものとどれだけ近いかを計算します。 これがその情報です。

ウィキペディアのリンクされた文字の頻度のページには文字のみが表示されるため、計算から文​​字を除外するか、文字が含まれるグラフを見つけることをお勧めします。また、大文字と小文字に関係なく文字を同じように扱うために、結果のテキスト全体を小文字または大文字(好み)に変換することもできます。

編集-文字交換についてのコメントを見た

この場合、それは換字式暗号であり、それでも自動的に破られる可能性がありますが、今回は、追加の分析を行うために有向グラフチャートが必要になる可能性があります。これは、文字分析の観点から、正しい言語よりも平均的な言語に「近い」置換が存在する可能性が非常に高いため便利ですが、有向グラフの頻度を比較すると、それを除外できます。

また、文字をシフトして、頻度が平均的な言語頻度とどれだけ近いかを確認することを提案しました。実際には、最初に暗号文の頻度を計算してから、それらを適切な値に並べてみることができます。どちらが良いかわかりません。

于 2010-04-26T08:55:01.610 に答える
1

うーん、それは難しいものです。

私が提案できる唯一のことは、辞書を使用することです(いくつかの換字式暗号アルゴリズムとともに)は、テキストの一部をデコードするのに役立つ可能性があります。

しかし、私はあなたが説明するシナリオであなたのためにすべてをデコードする解決策を見ることができません。

サンプル入力を貼り付けてみませんか。前にデコードすることができます。

于 2010-04-26T08:31:53.387 に答える
1

多くの例がある場合にのみ可能です(例は停止します:すべての組み合わせ、または線形値の依存関係またはシナリオのアイデアを取得することが可能です)。

また、この質問:暗号化アルゴリズムをリバースエンジニアリングするにはどうすればよいですか?いくつかのアドバイスがあります。

于 2010-04-26T08:44:34.067 に答える
0

エンコードされたファイルは、Acrobat Reader以外のPDFリーダーで正しく開きますか?その場合は、PDFライブラリ(PDF Clownなど)を使用して、必要なテキストをプログラムで抽出することができます。

于 2010-04-26T08:43:57.983 に答える