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アレコレをVer3としてリニューアルしたのは、GUI操作をちゃんできるようにしたかったからだ

PDFアレコレをVer3としてリニューアル。 Ver3.00 2020/5/24 ・起動画面をプレビュー画面(PDFの描画画面)に変更して、起動画面からすべての操作(画像変換・ページ編集・テキスト抽出 …

no image

Microsoft Visual C++ 2015 Redistributable

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

no image

アプリでzip圧縮と解凍をやりたくてzlibを組み込んでみたんだけど。。

でかいファイルは、圧縮してコンパクトに扱いたくなる。 テキスト形式で定義されているファイルをアプリで読み書きする。 テキストは圧縮すれば1/5くらいになるので、その結果小さくなった ファイルをアプリの …

zipcopy Ver1.04リリース

zipcopyをリビジョンアップして、Ver1.04とした。 Ver1.02からなので2回リビジョンアップしている。詳細は以下の通り。 Ver1.03 2019/9/26 ・ファイル削除時の例外エラー …

no image

TEMPフォルダ書き込みエラーが頻発したのはなぜだろう

「環境変数TEMPトラブルについて振り返る」という記事に書いた出来事は1か月ほど前に起きたことでありWindows Serverでもあったから、レアな事象としてとらえていたが、一昨日の金曜日に起きたこ …