CAD日記

主にAutoCADのことについて書いているけど、近頃は投資系ネタに注力している。自動売買、仮想通貨、PC関係、プログラミングなど。@caddiary

ソフト開発

いたちごっこ1

投稿日:

ソフト開発者とクラッカー。その果てしない戦いの日々をここに記します。現在進行形のその戦いに終止符を打つべく、努力を重ねている今、臨場感をもって伝えられれば、と思います。

その前に、「いたちごっこ」という言葉を調べてみました。

江戸時代、子供たちの間に「いたちごっこ」なる遊びが流行ったという。「いたちごっこねずみごっこ」と唱えながら向かい合った二人が相手の手の甲をつねり、その手を重ねていく遊びで、それを終わりなく繰り返すことから転じて、相手より優位に立とうと繰り返すことを「いたちごっこ」と言うようになったらしい。(JASRAC NOW No.560から引用) 転じて、いつまでたっても勝敗が完全には決まらない勝負のこと。例)鍵屋と泥棒

では、本題に入ります。

●リリース

シェアウェアで一儲けしようと考えたソフト開発者がいました。1週間という期間限定で全ての機能を、試してもらえるソフトをダウンロードサイトに登録しました。購入してもらった人には、IDとパスワードを教えて、それをユーザーがソフトに登録すると、期間の限定がなくなり、ずっと使えるようにします。

●最初のクラック

ある日、ダウンロードサイトを管理している人から、開発者に連絡がきました。「急激にダウンロード数が増えている。ジャンプ元を解析したところ、とあるアングラサイトだ。」

開発者は急いでそのアングラサイトを覗いてみました。いかにもいかがわしい、危険なにおいのするところでした。いたのは、クラッカー達でした。依頼者の要求に基づき、シェアウェアのシリアルを解析して楽しんでいる、それがクラッカーです。もちろん、開発者がつくったソフトもクラックされていました。IDとパスワードを盗まれていたのです。

●敗因

IDとパスワードの仕組みを解説します。IDは4桁の数値、パスワードはIDをもとに”あるアルゴリズム”で生成される数値です。アルゴリズムは単純なもので、2進数に直して、決められた規則で桁をぐちゃぐちゃに入れ替えるようなものです。これ自体は問題ないのですが、それを無防備な状態でプログラムに埋め込んだこと、これが最大の敗因です。クラッカーにとって、プログラムの中を覗くことはたやすいことです。コンパイルしてバイナリ形式になっているのだから、プログラムの中を見れるわけがない、というのは浅はかな考えでした。リバースエンジニアリングという技術です。アセンブラを直接読んだり、専用のデバッグツールを使って、プログラムの中を覗くわけです。

●対策

試用版と製品版のシステムを分けることにしました。試用版においてはIDとパスワードを入力できないようにして、1週間たったら動かなくします。製品版は、従来どおりのIDとパスワードを入力するとずっと使えるもの。重要なのは、試用版に「IDからパスワードを生成する関数を入れないことです。実行ファイルの中にプログラムを入れなければ、解析できるわけがないという、理屈です。また、その入力インターフェースも削りました。システムを2つにわけるということは、メンテナンスをする上で非常にかったるいことですが、#ifdef で分岐するようしたりして、最低限の労力で済むようにしました。準備万端、完璧だー、という気持ちで、ダウンロードサイトにアップしたのですが...

つづく

-ソフト開発
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

PDFアレコレで捺印時の印影サイズを変更できるようにした

PDFアレコレをバージョンアップ。約4か月ぶり。 Ver3.04 2021/2/14 ・捺印時の印影サイズを指定できるようにした。指定できるサイズは6mm, 9mm, 10.5mm, 12mm, 13 …

PDFに捺印できるようにしたPDFアレコレを公開

半年ぶりにPDFアレコレをバージョンアップ。変更点は以下の通り。 Ver2.01 2020/3/15 ・プレビューからの捺印機能に対応。捺印用データはとりあえずpdfのみで配置点が固定。  ※そのうち …

no image

Microsoft Visual C++ 2015 Redistributable

C言語のプラグラマなもんで、MFCなんていう今や時代遅れなプラットフォームを使っている。VC6の時代は長かったが、その後VC8(VS2005)に上げて

【C#プログラミング】pictureBoxとBitmapで画面ズームと画面移動機能を実装したい

PDFアレコレでPDFを描画するために利用しているのがpictureBox。とっても便利なクラスで、PDFiumのでRenderした結果であるImageを渡すだけで済んでいる。こんな感じで。。 pic …

no image

x64

Windowsの64ビット動作って、まだまだ先ですかね、という話をしてみます。  コンピュータが16ビットだった時代、私はこの業界に入りました。正確に言うと、CPUは32ビットになっていたが、その上で …