CAD日記

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

ソフト開発

クラッカー

投稿日:

知人が被害を受けました。以下、知人の経験談です。

便利なソフトを作って一儲けしたい!

シェアウェアとして公開して、誰でもダウンロードできるようにすることを考えました。まずは使ってもらわないと、その良さをわかってもらえないでしょう、ということです。でもそれだけでは、お金を払ってもらえないわけで、どういう仕組みがいいか考えました。日数制限をして、その期間が過ぎれば使えなくする。購入してくれた人にシリアル番号と登録コードを教えて、それを入力すると日数制限が解除される、というのが最適だ。ということで、一定の桁数を持ったシリアル番号から登録コードを導き出す暗号処理を無防備な状態でソフトに埋め込んだのです。これが敗因でした。

日々そこそこのダウンロード数があって、よしよしと思っていたある日、ダウンロード数が急激に増えたのです。桁が2つくらい変化するほど急激にです。これはおかしいと思って、アクセス解析したら、あるクラッカーサイトに行き当たったのです。

そのクラッカーサイトでは掲示板が運営されており、まずはクラックしてほしいソフトが書き込まれるのです。そして技術力の高い常連がその成果を報告するわけです。どうやってクラックするのか?リバースエンジニアリングを駆使して、パッケージソフトやシェアウェアの鍵を盗むのです。大抵のシェアウェアは、期間や回数に制限を設けて、試用することができるので、それを悪用するわけです。パスワードを解析したり、バイナリ自体を編集したり...。さらに、解析チュートリアルというのまであって、どうやったら解析できるのかの解説まであるんです。ふむふむと、興味深く読んでしまいました。バイナリエディタを使ったり、専用のデバッガーを使ったり、アセンブラを直接読んでみたり、とても高度な技術を要するものだと...関心している場合じゃないですね。

しばらくは、悔しくて夢に出てくるほどでした。どうしたら解析されないソフトが作れるんだ~、と苦悶の日々が続いたのでした。Cで作ってコンパイルすれば、中身はよっぽどのことがない限り見れないと思ってたのに。現実を思い知らされたわけです。理論的には、クラックできないプログラムはないそうです。リバースエンジニアリング、恐るべし!

クラッカー【cracker】

 悪意をもって他人のコンピュータのデータやプログラムを盗み見たり、改ざん・破壊などを行なう者のこと。多くはインターネットなどのネットワークを通じて外部から侵入し、悪さを働く。このような人々は「ハッカー」と呼ばれることが多いが、本来、ハッカーとはコンピュータ技術に精通した人々に対する尊称であり、悪い意味はなかった。このため、古くからインターネットに関わっている技術者などの間では、悪さを働く者のみを「クラッカー」と呼んで、ハッカーとは区別すべきであるとの主張もある。(e-Wordsより転載)

-ソフト開発
-

執筆者:


comment

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

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

関連記事

Windowsアプリで引数を受け取る(改)

MFCを使ったWindowsアプリの実装に関する話。 CWinAppを継承したクラスでは、m_lpCmdLineで起動時のパラメータを取得できる。そのパラメータは1個の文字列だが、半角スペースで区切ら …

no image

円周率

3.1415926535…。私が記憶しているのはここまでです。スーパーコンピュータを使って数億桁まで計算、なんてニュースをよく聞きますね。コンピュータの性能向上とアルゴリズムの工夫に対する …

高速なPDFビューアをC#とPDFiumでサクっと作ってみよう!

どんなPDFビューアを作ったのかというと、こんなモノ。 開いたPDFがCADの図面っぽいが、れっきとしたPDFファイルであり、ベクトル情報をちゃんと表現しているかを明らかにしたかったので使ったデータ。 …

no image

VisualStudio2005

帰国後の1週間を乗り切った。 バカンスモードの体からビジネスモードに切り替えるのは、 なかなか厳しかったが、この1週間で徐々に慣れてきた。 夢のような南国リゾートとは違い、現実世界は厳しい。 さて、V …

no image

暗号

こんな本を買った。 『RSA 暗号技術の基礎からC++による実装まで』 ソフトの認証を行うのに、シリアル番号とパスワードを使いたいから。 シリアルは、一定の桁数のランダムな数値とする。 パスワードは、 …