- ベストアンサー
ソフトのクラッキングについての疑問
初めに申し上げますが決して真似するつもりではございません。 市販ソフトやWindowsなどがクラックされ世に出回る昨今ですが 攻撃者はどのようにしてプログラムを解析しているのですか。 自分なりに考えてみたのですがクラック集団というものがあるということは 数がモノをいうのですか?各人専門分野があり手分け作業?単純に時間ですか? 解析プロセス、あるいはプロテクト手法などを技術的な観点からお教え頂けませんか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
例えば、デバッガーなどのプログラムでプログラムを少しずつ実行させて、ライセンス認証を行っているロジック部分を発見し、そのチェックロジックを回避して、常にOKになるようにプログラムを書き換えれば、クラック版ができあがります。 ただ、認証ロジックを単純にスキップしていると、認証チェックで書き込まれるフラグがONになってないということで、後で「不正コピー版ソフトなのでプログラムを終了します!」なんてメッセージを出すようにしたりします。 また、認証ロジックを完全に解析すれば、たとえば、自由にシリアル番号を作り出すことが可能となります。 高額なソフトの場合は、USBドングルなどのハードウエアを必須にして、ソフトクラックだけでは、使うことが出来ないようにします。 いずれにしても、こういうソフトの解析には時間がかかりますし、機械語(アセンブラ)が何をやっているのか解読する能力も必要になります。 さらに、媒体として、昔は、カセットテープやフロッピディスク、現在では、CDやDVDなどをプログラムで使うことがありますけど、特殊な形式でオリジナルを作成しておけば、プログラムの入った媒体を丸ごと正常にコピーできたように見えても、コピー版は使えなくなります。 まあ、昔は、ソフトクラックのことを取り上げたPC雑誌もあったし、コピーツールやハードウエアの販売も色々あって面白かったですね。 市販ソフトのコピー防止されたフロッピーを破ってコピーするためのソフトがお店でフロッピーで売られていたりして、でも、自分自身の入っているフロッピーは当然ながら、コピー不可能になっていたりしました。 私は、そのコピーツールのコピー防止ロジックを解析して、コピーソフトのコピー版を作ったりしたこともありますが、解析には、かなりの時間がかかったことを覚えています。 最近では、ソフトが巨大化していますし、ネットワークを通じたアクティベーションがあったりで、昔のような解析手法ではなかなか難しい面もあります。 ただ、MSの.NetFrameworkで動作するプログラムは、素直に作ると逆アセンブルが容易になっているので、オブジェクトを解析しにくくするツールが販売されていたりします。 ちなみに、最近のソフトのシリアル番号は、長いですし、数字と英字が混在しているので、総当り方式で見つけることは、ほぼ不可能だと思えます。
その他の回答 (2)
シリアル番号は或る程度の方式で作成されてます。 そして、体験版なら期限を決めている所が存在します。 これを解析すれば体験版が『無期限使用版』に早変わり。
- ueshita123
- ベストアンサー率17% (281/1643)
シリアルは、英数字の羅列ですから順番に文字や文字数を変えるソフトを使って総当たりをすればいいだけの事です、技法と呼ばれるような高度な技術じゃないですよ。
補足
でもある一定の桁数以上になると総当りは時間の都合上不可能だとも思うのです。 あとソフトはシリアルでないものもありますよね。ネット認証とか。 ウイルスバスターとかのセキュリティソフトを見てて思ったのですが 私の推測としてはとりあえず素直にプログラムを起動させて その様子を別のプログラムを用いて記録する?というものなのですが そこからどうやってシリアルを見つけるに至るのかが分かりません。
補足
解ではなくまず式を求めるというわけですね。 ということはその式自体を分からないようにしているはずですよね? それを解析するということだと思いますがどのように行っているのでしょう。 あと期限を決めている所をどうやって特定するのでしょう。謎が深まりました。