エプスタインPDFを、生データのエンコードされた添付ファイルから再構築する

2026/02/05 4:19

エプスタインPDFを、生データのエンコードされた添付ファイルから再構築する

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

最新の DOJ エプスタインアーカイブダンプには、埋め込みベース64エンコードされた添付ファイルを標準的な OCR ツールで信頼性高く復元できない、多数の破損した PDF が含まれています。

  • OCR の失敗: Adobe Acrobat Pro、ImageMagick の
    convert
    (キャッシュ不足)、Poppler の
    pdftoppm
    + Tesseract、および Amazon Textract はすべてノイズの多い出力を生成します:余計なコンマや角括弧、不必要なスペース、欠落したベース64文字、行長の不一致など。Courier New フォントでは「1」と「l」を区別しにくいため、手動で試行錯誤する修正が必要になります。
  • 例ファイル:
    EFTA00400459.pdf
    は 76 ページからなる PDF で、大きなベース64添付ファイル(
    DBC12 One Page Invite with Reply.pdf
    )を含んでいます。
  • 部分的な deflate 圧縮: クリーンアップされたベース64テキストを見ると、埋め込み PDF は部分的に deflate 圧縮されていることが判明します。しかし、ソース PDF 自体が破損しているため、
    qpdf
    などのツールでは復元できません。
  • 試みた改善策: Acrobat OCR を再実行すると状態が悪化しました。画像を 2× スケーリングした後に Textract に入力すると、結果はわずかに改善されました。
  • 課題: クリーンアップされたベース64出力から元の PDF を再構築し、最新のエプスタインダンプ内で回復可能な他の添付ファイルを特定してください。成功すれば、調査官、ジャーナリスト、および研究者が機密性の高い文書により明確にアクセスできるようになり、破損した法的 PDF に対する OCR の限界も浮き彫りになります。
  • 付随資料: 著者は原始的な
    EFTA00400459.pdf
    、各ページのロスレス WebP 画像、および Amazon Textract OCR 結果(2× スケーリング版を含む)をインターネットアーカイブにアップロードし、参照用に提供しています。

本文

(注)以下は、元の英語記事を日本語に翻訳したものです。文章量が非常に多いため、長文になることをご承知ください。


最近公開されたエプスタインアーカイブの最新バージョンに関して、司法省(DoJ)が行った作業の「能力」や「論理」に対し、多くの不満が寄せられています。共謀者の名前を隠蔽したり、ランダムな女性の写真を不当に編集して個人をより罪悪感を抱かせるようにすること、Reddit全体がエプスタインのアカウントにログインできる資格情報を削除し忘れたことで証拠を踏みにじったり、さらに最新バッチの多くが誤って変換されたQuoted‑Printableエンコーディングの障害で破損したことなど、Pam Bondi の司法省はこの膨大(かつ巨大)なプロジェクトに「最善と最高を注ぐ」姿勢を示せていません。
しかしながら、もっとも罪悪感を与える証拠が完全に赤字化されているわけではありません…というのは、実際には違います。

最新ダンプが公開された日に、SNS上で氾濫する誤情報や推測に対し、Quoted‑Printableエンコーディングの乱れについて記事を書こうと考えました。そこで、メールヘッダーを探すために最新アーカイブを掘り下げている最中に、不思議なアーティファクトに出会いました。メールは単純テキストへ悪く変換されただけでなく、一部のバイナリ添付ファイルが実際にはbase64形式(SMTPプロトコルを破らずにメールに含めるため)でダンプに入っており、担当インターンはそれらが何か重要なものだと理解せず、意味不明と思われたページ数分の16進文字列を検閲する必要性を見いだせませんでした。

まず EFTA00400459 をご覧ください。これは、おそらくエプスタインのアシスタントと共謀者であるボリス・ニコリッチ(Boris Nikolic)および彼の友人サム・ジャラデ(Sam Jaradeh)が招待される███████ブレネフィットに関するやり取りです。

この16進文字列は76ページにわたり、

DBC12 One Page Invite with Reply.pdf
というファイルをbase64でエンコードしたもので、SMTPプロトコルを壊さずメール内に埋め込むために使用されています。理論上は、以下のようにコピー&ペーストして
base64 -d > output.pdf
を実行すれば元のPDFへ復元できるはずです… ただし、完全に赤字化されたスキャン画像(不十分なOCRを適用したもの)ではなく、オリジナルの「悪く変換された」メールが必要になります。

DoJ がデジタイズしたテキストをコピーしてテキストエディタに貼り付けた場合、次のようになります:

EFTA00400459
は2行目で無視してください。これは各ページの下部に印刷される証拠識別子(変数名)で、base64テキスト内に散在します。
それ以外には何が見えるでしょうか?ヒント:正しい base64 は次のような形です。

ここではサンプルを示すために monospace フォントで整列した状態を表示しています…

OCR によるPDFからテキストをコピー&ペーストすると、余計な文字が挿入され、

,
[
など base64 には無効な文字も含まれます。結果として、
base64 -d
が失敗します。

最初に試したのは Adobe Acrobat Pro の OCR プロセスですが、結局さらに悪い結果になりました。空白が挿入され、その他の文字が完全に誤認識されたためです。そこで、Tesseract を使って手動でOCRを行うことにしました。ただし Tesseract は PDF 入力を直接扱えないので、ImageMagick/ghostscript でPDFを PNG に変換する必要があります。しかし

convert
コマンドはリソース不足で失敗します。

そこで

pdftoppm
(Poppler ユーティリティ)を使い、各ページを PNG に変換しました。次に Tesseract を呼び出し、
--psm 6
(単一ブロックのテキストとみなす)と base64 の有効文字のみ許可するように設定しましたが、結果はまだ不安定でした。特に行長がバラつき、途中で空白が挿入されるケースが多く、さらに Courier New フォントの悪さ(1 と l を区別しづらい)も影響していました。

Courier New は IBM のセレクティックタイプライタから派生したフォントで、明瞭な太字や文字間隔が不足しています。結果として、16進文字列を OCR する際に「1」と「l」を区別できないケースが多発します。JPEG スキャンの低解像度と DCT アーティファクトも重なり、さらに困難です。

Tesseract の限界に直面した私は、Amazon Textract を試しました。Textract は大きくは成功し、行長の誤差は平均1〜2文字程度でしたが、完全ではありませんでした。そこで DPI を 200% にスケールアップして再処理することで精度を向上させました。

Textract の出力から

base64 -i
(無効なデータを無視)でテキストを抽出し、PDF 内の PDF 添付ファイルが部分的に (de)flate エンコードされていることが判明しました。PDF はバイナリ形式で圧縮が施されるため、
strings
など単純な手段では内容を取得できません。
qpdf --qdf --object-streams=disable input.pdf decompressed.pdf
を試みましたが、入力ファイルが破損している場合は失敗します。

OCR の不安定さと「1 vs l」の問題から、最終的に「従来型の機械学習」アプローチを検討しました。フォントが既知であることと、圧縮方式もおおよそ分かっているため、専用モデルを構築すれば解決できる可能性があります。ただし、時間的余裕が無いため、この記事の執筆に集中しています。


ここから挑戦です

  1. Content‑Transfer‑Encoding: base64 に含まれるオリジナル PDF を復元できますか?
    難しいと思われますが、実際にはそれほど難しくありません。

  2. 最新のエプスタインダンプに含まれる他の添付ファイルを同様に再構築できるでしょうか?

    Content-Transfer-Encoding
    base64
    を検索すると数多くヒットしますが、多くは途中で切れている、あるいは Apple Mail のヘッダーだけが抽出されているなど、使えないケースが多数です。


共有リソース

  • EFTA00400459.pdf(Epstein Dataset 9 から取得)
    Internet Archive にアップロード済み。
  • ページ別にロスレスでエンコードされた WebP 画像も同梱。
  • Amazon Textract OCR テキスト(2×拡大した画像から抽出)も公開。

追加ヒント

「1 vs l」を判定するために、100% 正確に行うには試行錯誤が必要です。Tesseract を使って手動で行を入力し、その結果を基に修正します。ただし、この方法はプレーンテキスト部分(ヘッダーなど)に限定されます。PDF の flate 圧縮セクションではさらに難易度が上がります。


連絡先

  • Twitter: @mqudsi
  • Signal:
    mqudsi.42
    (機密情報共有可)
  • Hacker News / r/netsec でディスカッションに参加してください。

コメントや質問、アイデアがあればぜひ下へ書き込んでください。


補足

この記事のシェル例は fish スクリプトです。fish は文字列操作に優れた

string
ビルトインを備えており、外部コマンドを呼び出すことなく多くの処理が可能です。私自身もプロジェクトへの貢献で汗と涙を注いだため、この選択は自然なものです。

PNG から PDF に戻す作業は行わず、品質低下を防ぐためにそのまま扱っています。

同じ日のほかのニュース

一覧に戻る →

2026/02/06 2:38

クラウド・オーパス 4.6 (Claude Opus 4.6)

## Japanese Translation: **改善された要約** Claude Opus 4.6 は **ベータ版 1 M‑トークンコンテキストウィンドウ** を備えてリリースされ、最大で **128 k トークン** を出力できます。GDPval‑AA においては GPT‑5.2 より約 **144 Elo** の優位を示し、前モデルよりも **190 Elo ポイント** で上回っています。金融・法務・その他の高価値タスクで卓越した性能を発揮しています。**Terminal‑Bench 2.0** ではすべてのフロンティアモデルを凌駕し、**Humanity’s Last Exam** と **BrowseComp** においても同様です。サイバーセキュリティ分野では Opus 4.6 が Claude 4.5 を対象とした9つのサブエージェントと100件を超えるツール呼び出しで、**38/40 の盲検ランキング** で勝利しています。長期コンテキスト性能は **MRCR v2 の 1 M‑トークンニードルインハイスタックベンチマークで 76 %** を達成し、Sonnet 4.5 の **18.5 %** を大幅に上回っています。安全性監査では最近の Claude リリース中で最も低い過剰拒否率を示し、整合性の欠如した行動が増加している兆候はありません。 新しい API 機能には **適応的思考、4 つの努力レベル(低〜最大)、コンテキスト圧縮(ベータ)** が含まれ、拡張されたコンテキスト機能も提供されます。製品更新では **Claude Code におけるエージェントチーム**、長時間にわたるマルチステップ変更のための強化された **Excel 統合**、ブランド一貫性を保つレイアウト/フォント読み取り機能を備えた PowerPoint 研究プレビューが追加されました。モデルの計画とサブエージェント調整により、複雑なコーディングタスクや法的推論(BigLaw Bench スコア 90.2 %)が可能になり、以前のモデルと比べて大規模コードベース移行を半分に短縮します。価格は標準使用で **1M トークンあたり 5 USD / 25 USD** のままで、200k トークン以上の入力/出力の場合はプレミアムレート(10 USD / 37.50 USD)が適用されます。Opus 4.6 は **claude.ai、Claude API、および主要クラウドプラットフォーム(AWS、GCP、Azure)** で今日から利用可能です。すべての安全性と能力評価は **Claude Opus 4.6 システムカード** に記載されています。

2026/02/06 6:24

2026年です。PostgreSQLだけで十分です。

## Japanese Translation: (余計な推測を除外し、核心となる事実のみを明確に保つ) **概要** このページは訪問者にティガーデータニュースレターの購読を促しています。購読手続きを行うことで、ユーザーは自動的にティガーデータのプライバシーポリシーを読み、同意したことを認めます―購読そのものがポリシーへの承諾として機能します。© 2026 の著作権表示は現在年を示し、所有者欄にタイムスケール社(Tiger Data 名義)が記載されていることで所有権を明確化しています。購読者には今後のニュースレターが送付され、製品やサービスの更新情報が含まれる可能性があります。

2026/02/06 4:04

**私のAI導入ジャーニー**

## Japanese Translation: (主要なポイントをすべて取り込み、根拠のない推測を避ける) --- ## 要約 この記事では、ソフトウェア開発にAIエージェントを導入するための**6つの実践的ワークフロー**を示し、派手なデモよりも実際の生産性向上を重視しています。 1. **汎用チャットインターフェースを拒否する** – ChatGPTやGeminiなどを使うことはやめ、人間による継続的な修正が必要になるためです。 2. **タスク固有のエージェントを構築する**。ファイルを読み取り、プログラムを実行し、HTTPリクエストを送信できるようにします。各エージェントの限界を学ぶため、手作業で同じタスクを2回重複して実行します。 3. **毎日の最後の30分間にエージェントを動かす**。深いリサーチや並列アイデア探索、GitHub CLI を使った問題/PR のトリアージを行い、翌朝には「ウォームスタート」を実現します。 4. **高確信タスクはエージェントに委譲し、著者は他の手作業に集中する**。通知を無効化してコストのかかるコンテキストスイッチを回避します。 5. **ハーネス(“harness engineering”)を設計する**。暗黙的プロンプト(例:AGENTS.md での更新)やスクリプトツールを追加し、エージェントが自己検証できるようにしてミスを減らします。 6. **バックグラウンドエージェントを維持する**。1日あたり10–20 % の時間で動作させ、GPT‑5.2‑Codex などのより深いモデルを長文変更時にのみ使用し、測定可能な価値がある場合に限定します。 著者はAIについて計測的かつ実践的な見方を強調しています。ワークフロー効率を優先し、ジュニア開発者のスキル低下を避け、企業関係や説得力のない情報を提供せずに個人的洞察として共有することを述べています。

エプスタインPDFを、生データのエンコードされた添付ファイルから再構築する | そっか~ニュース