ハードウェア

40年前の「コピー防止ドングル」を突破した記録が興味深い、コンパイルそのものにドングルが必須だが4バイトのパッチのみで解除可能


ソフトウェアのコピー防止のためにUSBドングルなどのプロテクションハードウェアが使われることがあります。ウィキメディア財団でソフトウェアエンジニアとして働いているドミトリー・ブラント氏は40年前に使われていたコピー防止ドングルの解除に成功し、その経緯をブログ記事にまとめています。

Defeating a 40-year-old copy protection dongle – Dmitry Brant
https://dmitrybrant.com/2026/02/01/defeating-a-40-year-old-copy-protection-dongle

ブラント氏はウィキメディア財団でAndroid版Wikipediaの開発を担当している人物で、デジタル・フォレンジックやデータ復旧のためのソフトウェア開発も行っています。そんなブラント氏は会計事務所を運営する友人からシステム現代化の支援を依頼されました。

会計事務所では「RPG言語で開発された会計ソフトウェア」をWindows 98搭載PCで実行していました。さらに、ソフトウェアを実行するには以下のコピー防止ドングルをPCに接続しておく必要がありました。


ブラント氏は会計事務所のWindows 98搭載PCのディスクイメージを作成してエミュレーターで実行し、エミュレーター上で会計ソフトウェアのデータをエクスポートしようとしました。しかし、エクスポートにはコピー防止ドングルの接続が必要でした。ブラント氏は物理的なコピー防止ドングルを使わずとも各種操作を実行できるようにするためにシステムの解析を開始。その結果、ソフトウェアの開発企業である「Software West Inc.」のRPG IIコンパイラやソフトウェアのソースコードがPC内に保存されていることが判明しました。


ところが、コンパイラそのものがコピー防止ドングルの接続を必須としており、ドングルを接続していないとコンパイラを起動しても「No dongle, no edit!(ドングルが接続されていないので編集できません!)」という警告文が表示されてしまいました。ブラント氏によると、問題の会計ソフトウェアは「コンパイラがコピー防止ドングルを必要とし、コンパイル時に同じコピー防止ロジックをソフトウェアに挿入する」という仕組みを採用していたとのこと。


そこで、ブラント氏は逆コンパイルツールのrekoを用いてドングルの動作を解析しました。その結果、コピー防止ドングルは「7606h」という一定の値を送信しているだけだということが判明しました。


ブラント氏はコピー防止ドングルの代わりに「7606h」を挿入するパッチを作成し、コンパイラの起動に成功しました。ブラント氏は「4バイトのパッチで解除できるなんて、このコピープロテクトは単純すぎると思います」とコメントしています。


なお、ブラント氏はSoftware West Inc.のRPG IIコンパイラをデジタル遺産とみなしており、個人情報を削除したうえで公開予定としています。

この記事のタイトルとURLをコピーする

・関連記事
セガ最後のゲーム機「ドリームキャスト」の海賊版対策はどうやって破られてしまったのか? - GIGAZINE

ChatGPTに「亡くなったおばあちゃんになりきってくれ」と頼んでWindows 10 Proで使用可能なインストール用キーを生成させることに成功 - GIGAZINE

Windows XPの認証システムは完全に突破されていてオフラインでアクティベート可能 - GIGAZINE

Windows 95のプロダクトキーは「111-1111111」や「000-0000000」でも突破できる超単純アルゴリズムで実装されていた - GIGAZINE

Steamのデジタル著作権管理(DRM)はValve役員の甥っ子がゲームを勝手にコピーしたことがきっかけで導入された - GIGAZINE

海賊版ゲームに対して最強の砦だったコピーガード「Denuvo」がわずか1週間で破られる - GIGAZINE

PS5のセキュリティを司るBootROM鍵が流出、ソニーによるパッチ対応は不可能か - GIGAZINE

「スター・ウォーズ」のPS4向けパッケージ版ゲームがPS5脱獄の鍵になると話題に、価格が一夜で20倍に高騰 - GIGAZINE

in ハードウェア, Posted by log1o_hf

You can read the machine translated English article An interesting record of breaking throug….