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アレコレを公開

先週に引き続き今週もPDFアレコレをバージョンアップ。変更点は以下の通り。 Ver2.02 2020/3/21 ・捺印時に画面でクリックしたところに配置できるようにした。(Ver2.01は固定値) 詳 …

AutoCADのクリッピング情報を語る

AutoCADのクリッピング情報は様々あって、代表的なものとしてレイアウトのビューポート枠によってモデルの絵をクリッピングするというのがある。モデルをのぞき込む窓がビーポートであって、そいつにはレンズ …

コマンドラインからパラメータを指定すればテキスト抽出や画像変換ができるPDFアレコレを公開

exeがパラメータを受け取って、GUI操作でできていることをCUI操作でやってやろうじゃないかという企画。以下の記事を書いたのが1週間前。ここまで設計したなら実装しなきゃいかんということで、ヒマな週末 …

Visual Studioサブスクリプションの実態(2025/11時点)

マイクロソフト系ソフトウェア開発にとって必須なのがVisual Studioサブスクリプション(以前のMSDN)だが、その実態を知る人は少なく、多くは会社が買ったライセンスを使っているだけ。どんな種類 …

デュアルモニターでツールバーをドラッグすると枠非表示で残像が出る

デュアルモニター環境で、MFCで作ったアプリをメインモニター側に出して、アプリのツールーバー(CToolBar)をドラッグすると、枠がメインモニター側に表示されずに、サブモニター側に枠と残像が表示され …