クラックされないシェアウェアを作る

このエントリーをはてなブックマークに追加
918名無しさん@お腹いっぱい。:04/08/22 02:20 ID:cGLdSvB1
 ∧_∧
( ;´∀`) ドキドキ…
人 Y /
( ヽ し
(_)_)
919名無しさん@お腹いっぱい。:04/08/22 02:20 ID:GXxJnzAG
まだまって。
920902さん:04/08/22 02:41 ID:/Co6yfcM
わくわく。
>>906のように書き換えたら別のとこで正常終了したりするから不思議。
921 ◆DMOtzMWgjM :04/08/22 04:49 ID:qhUXcsq6
お待たせ。

>>902さん
実際にクラックを試されたので、
どういったタイプの対策かは見当がついていると思いますが、
実行ファイルを1バイトでも書き換えるとプログラムが動作しなくなる仕組みを
クラッカーからはわかりづらい(だろうと私が想像した)やりかたで組み込んであります。

実行ファイルの書き換えチェックなんてのは、ありふれた対策ですし、
こんなのは当然クラッカーによって、
チェックルーチン自体を無効化されることは容易に想像できます。
なので、チェックルーチンをはずすと、やはりプログラムが動かなくなる仕組みを、
これまたわかりづらいように組み込んであります。

多分、書き換えが行われたかどうかの判定部分だと考えて
>jne(75 xx)をjmp(EB xx)に変えたり
されたのでしょうが、この処理はプログラムにとって重要な判定なので
単に無効化しただけでは、プログラム自体がうまく動きません。
要するに、jneで比較している変数は、書き換えチェックフラグではありません。
※自分でこのプログラムをクラックして試したわけではありませんが、
 多分、nopやjmpだけでは割れないと思います。
922 ◆DMOtzMWgjM :04/08/22 04:50 ID:qhUXcsq6
んで、私のアイデアってのは、

1.書き換えが行われたかどうかを知るのにフラグを使わない。
2.そもそも書き換えが行われたかどうかの判定コード自体が存在しない。

この2つの条件を満たしつつも、書き換えがあると
動かなくなるプログラムを作成する方法です。

が、どういう方法を使ったかは書きません。
なぜなら、やり方はいくつもあるからw
923 ◆DMOtzMWgjM :04/08/22 04:55 ID:qhUXcsq6
↑で終わったら怒られるから、
以下、そのようなプログラムを実現するための用件の一例を書きます。

1.実行ファイルの書き換えチェックに、ハッシュ関数を使うが
  正しいハッシュ値を実行ファイル中に含ませない。

2.正しいハッシュ値をデータとして処理すると
  うまい具合に動く仕組みで、かつ、プログラム自体に必要な処理(初期化処理とか)
  を考える。当然、ハッシュが異なればエラーが起きる仕組みね。

3.プログラム実行時に自身のハッシュ値を取得し、2で考えた処理で使う。
  書き換えられてると、普通にエラーが出るから終了する。
  エラーを無視しても必要な処理が完了してないから、
  プログラムはうまく動かない(゚д゚)ウマー!

流れとしては、誰もが考えるアイデアだと思う。
要は2の処理をどうするかってことだよね。
なるべく汎用的な処理にせんと他のソフトには使えませんってことになりかねん。

でも、ここは各自が、これぞと思う処理を実装するトコであって、
プロテクトかける面白いトコだから、俺がどーやったかはいいでしょw

ただ、これだけだとエラーが起きるところが2の処理だと簡単にばれちゃうんで、
ちょっと小細工して、エラーが時間差で発生するようにしてあります。
924 ◆DMOtzMWgjM :04/08/22 04:56 ID:qhUXcsq6
最後に、クラックの仕方だけど、2の処理がどこにあるのか突き止めて、
正しい場合の動きと、そうでないときの動きを解析して、
間違ってても正しく動くように書き換えれば終わり。

あとは好きな箇所を変更しほうだいになっちゃいます。

こんな感じでよろしかったでしょうか?
925名無しさん@お腹いっぱい。:04/08/22 09:23 ID:xlrVxqAI
自身の実行ファイルをfopen(CreateFile)してるところで正しいファイルを読むように変更して、
MessageBoxを表示しているところにパッチを当てちゃうのが邪道だけど一番簡単かな。
CloneCDの日本語パッチあたりで採用していた手法だと思う。
926名無しさん@お腹いっぱい。:04/08/22 11:30 ID:qhUXcsq6
>>925
あーなるほど。そうですね。それが一番簡単ですね。
今度、暇があったらその辺の回避策など考えてみたいと思います。

では、そろそろ名無しに戻ります。ノシ
927名無しさん@お腹いっぱい。:04/08/25 07:53 ID:Kr0H/blp
その類のクラック対策って、初心者krackerには有効だと思うが…。
まあ、複雑にして組み合わせるとまた別だけどさ。
928名無しさん@お腹いっぱい。:04/08/26 04:05 ID:JG0zqTQv
クラックできないものなんかないよ
asp型ですら海外じゃ鯖ごとハックされてるし。
929名無しさん@お腹いっぱい。:04/08/26 04:16 ID:I194veSZ
オレのハートをクラックしてみろ
930名無しさん@お腹いっぱい。:04/08/26 10:01 ID:FcgQkI2x
>>928
「俺の友達のスーパーハカーがクラックしてくれます」ですか?
君のような、他人に頼るレベルが自分でクラックできなければ対策は十分さ。
931名無しさん@お腹いっぱい。:04/08/26 14:27 ID:C35QkDhE
( ´,_ゝ`)プッ
932名無しさん@お腹いっぱい。:04/09/01 22:16 ID:ziA4KHtE
!Kubotarをシェアにしろ。

究極のクラック対策。
933名無しさん@お腹いっぱい。:04/09/11 10:24:55 ID:zz9cT9+U
定期age
934名無しさん@お腹いっぱい。:04/09/27 18:10:32 ID:hwmmCoBw
保守
935名無しさん@お腹いっぱい。:04/10/04 18:51:57 ID:Mcxkegfi
100個ほどの関数ポインタを用意して、
正しい初期値が与えられれば、
コマンド入力と関数との接続が正しくなり、
間違った初期値ならば、ランダムな接続になるのはロジックボムになる?

例えば、HDD初期化、ファイルを開く、ファイル削除のコマンドと関数があるとして、
ファイルを開く、のコマンドにHDD初期化が割り当てられても、
権限とか、引数がおかしい等の問題で普通は実行されない。
が、ファイルを開く、のコマンドにファイル削除の関数ポインタが割り当てられると、
引数に正当性がある場合がほとんどなので、誤ってファイルが削除される。
936名無しさん@お腹いっぱい。:04/10/04 22:10:38 ID:/k17SzZP
んで、バグがあると正しいシリアルでも誤爆するようになると。
937名無しさん@お腹いっぱい。:04/10/04 23:27:30 ID:Mcxkegfi
>>936
そのへんは、初期化の際にチェックルーチンでも仕込んで、
怪しい箇所が一箇所でもあれば、ダイアログだすなりして、プログラム終了を促せばいい。
チェックルーチンをスルーするようにバイナリを書き換えた場合は、こちらの責任にはならないだろ。
938名無しさん@お腹いっぱい。:04/10/04 23:28:08 ID:4ewc9ubU
だから、ロジックボム系は損害賠償請求されるっつうの。
過去ログ嫁。
939名無しさん@お腹いっぱい。:04/10/04 23:34:04 ID:Mcxkegfi
>>938
ロジックボムを仕込まずに単にプログラム終了は?
940名無しさん@お腹いっぱい。:04/10/07 10:56:46 ID:w/JyPDjS
>>939
いきなりHDDの完全スキャンを始めればいい!
941名無しさん@お腹いっぱい。:04/10/07 13:23:06 ID:ZAzifsdW
嫌がらせだw
942名無しさん@お腹いっぱい。:04/10/07 22:01:56 ID:GXHxL1YL
やはりアセンブラでトリッキーなコードでもかくか。
943名無しさん@お腹いっぱい。:04/10/08 17:50:55 ID:TKwMmN5E
HDDにあるデータを消すのではなく、巨大なデータを勝手に作り出してしまえ
「セキュリティ機能付」として、1バイトも余すことなく書き込んでしまえ
944名無しさん@お腹いっぱい。:04/10/08 18:22:45 ID:DJDvL7G4
ディスクに空きがないという事態に対応できてないヘボソフトが落ちて、
ウィルス入りだのロジックボムだの言われる予感。
945名無しさん@お腹いっぱい。:04/10/08 19:05:58 ID:9Xt88Wsc
自ソフトのウィンドウを恥ずかしい写真のスキンにするとか
自ソフトのメニューを恥ずかしい文字列にするとか
自ソフトの効果音を恥ずかしい音声にするとか
946名無しさん@お腹いっぱい。:04/10/08 19:44:15 ID:rloJg9ua
>>945
で、レジストすれば元に戻ると
947名無しさん@お腹いっぱい。:04/10/08 20:48:51 ID:J11bkdQd
>945-946
で、それをレジストせずに元に戻される(正常にする)のをどうやって避けるかを考えるのがこのスレの議題。
「より多くの人にレジストしてもらうには〜」ではなく「クラックされないためには〜」なのでよろしく。
948名無しさん@お腹いっぱい。:04/10/09 11:40:21 ID:Fd2oYtxG
レジストせずに起動すると自分自身の容量が倍になるとか
949名無しさん@お腹いっぱい。:04/10/09 15:33:07 ID:rRg/VhR7
正常に機能しているかどうかわかりにくくすればいいんだよ。
例えばメモリー最適化機能なら、不正シリアルだと加減算繰り返すだけとかw
950名無しさん@お腹いっぱい。:04/10/09 15:45:37 ID:FAx5QLol
某ソフトみたいだなw
951名無しさん@お腹いっぱい。:04/10/09 15:54:08 ID:3cWc5FxJ
なつかしすぎ
952名無しさん@お腹いっぱい。:04/10/09 19:45:24 ID:NBm/ZW09
>>900から良スレ化してる大器晩成スレはここですか?
953名無しさん@お腹いっぱい。:04/10/12 13:01:24 ID:hrK5DYKt
海外のCDR焼きソフトで、不正シリアルいれると
コースターが焼きあがるってのがあったな
954名無しさん@お腹いっぱい。:04/10/12 22:40:47 ID:eWnB4wmw
ハイソサエティなアメリカンジョークのスレはここですか
955名無しさん@お腹いっぱい。:04/10/13 03:08:16 ID:3bf2JiGg
>>953
CDRWinだな。
956名無しさん@お腹いっぱい。:04/10/14 23:59:59 ID:9wd/EmW1
>955
そうそう、一見正常終了するからタチが悪いw
957名無しさん@お腹いっぱい。:04/10/19 16:26:55 ID:V3VKlDoE
DateCracker2000でクラックできるソフトってあるの?
958名無しさん@お腹いっぱい。:04/10/22 10:53:17 ID:ugvmtYEN
昔のソフト
959名無しさん@お腹いっぱい。:04/10/25 12:34:07 ID:qDenslwJ
>956
当時はCDRメディアが1枚1000円くらいしたから、ダメージがでかかったw
960名無しさん@お腹いっぱい。:04/10/26 04:30:23 ID:kxyz9o/k
実際、対クラック用にロジックボム組み込んで、損害賠償請求裁判おこされた例なんてあるのか?
961名無しさん@お腹いっぱい。:04/10/26 04:37:54 ID:T9BrIo65
ロジックボムかどうか気が付かないようなのは面白くないか
適当なファイルを読み込んで少しランダムに書き換える
だんだん不安定になるシステムw
962名無しさん@お腹いっぱい。:04/10/26 08:02:40 ID:N6/JrfhD
>>961
自分のプログラム作ったファイルなら問題ないはず。
963名無しさん@お腹いっぱい。:04/10/26 08:46:55 ID:+eMFVRUZ
>>961
書き換えの時点で気付く人間は気付くだろ。
964名無しさん@お腹いっぱい。:04/10/26 11:24:46 ID:DPPqJXYJ
レジストリに無駄キーをどんどん増やしていくとか
965名無しさん@お腹いっぱい。:04/10/26 11:47:41 ID:Dl87HoPG
実行ファイルのチェックサム調べて異常があれば破壊工作でいいんじゃねーの。
訴えられても、そのアプリケーションは私が配布しているものとは違いますと言って
知らぬ存ぜぬ。

アプリケーション改変されたものの動作は保証する必要ないだろ。
966名無しさん@お腹いっぱい。:04/10/26 20:03:49 ID:5POry2x2
次スレ誰かたてて
967名無しさん@お腹いっぱい。
いらんだろ