監督の仕事についてかきたいな
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
今日は専門的な話になるので分からなくなったら読むのをやめて構いません。
自宅のPCにインストールされているプログラムを学校に持ってきて実行しようと思った。 自宅のPCゲームを学校に持ってきて遊ぼうとするのと同じ用なものだ。この場合の違いはそのプログラムが一般的なゲームかそうでないかぐらいだ。 プログラムはDVDーROMからインストールしあとはディスクレスで実行できるタイプだ。 今回はPC内のファイルを外付けハードディスクにコピーして使おうと思った。 が、動かなかった プログラムの構成は実行ファイルとアーカイブが二つにメディアファイルが一つとアンインストーラーが一つだ。他にユーザーが保存したファイルがある。 プログラムは「正しくインストールされていません。」と言うメッセージを返した。おそらくレジストリの中を参照したためだろうと思い、解決策としてレジストリを参照する過程をスキップしようと思った。 不正コピーの防止ならば、レジストリにインストールされたことを証明するためのキーがあると思われた。 詳しい友人も近くにいたのでデバッカを使うことは簡単にできた。が、肝心のクラックはうまくいかなかった。参考書を読んでもさっぱりだし、友人がやってることもよく判らない。やってることは条件付きジャンプを無条件でジャンプかスキップにすればと思ったが、必ずエラーに飛ぶ。結局できなくてやめてしまった。 帰宅して検証してみたところある事実が発覚した。外付けハードディスクの実行ファイルから起動したのにローカルハードディスク内のファイルにアクセスしていた。 つまり、アーカイブの場所は実行ファイルのディレクトリを取得して相対参照していると思っていたのだが、実際はレジストリを絶対参照し、その情報で再び絶対参照していたようだった。 そうなると前日にやるべきことはプログラムがレジストリを読み込んで参照先を書き込む場所を探し出して、そこにメモリエディタでプログラムのあるディレクトリを参照するべきだったらしい。もしくは、入力を求めてメモリに書き込んでくれるモジュールを開発し組み込めばよかったみたいだ。 他に参照するレジストリキーの場所と名前と入力規則を割り出してキーを作成する方法もあった。 そして、必要なレジストリの場所と値が分かったのでレジストリエディタで場所を指定することで起動した これにより相対参照が可能になった。 みなさんもこの方法で、プログラムを優雅に持ち歩いてみてはいかがですか? (自己責任でお願いします) この方法でインストーラーの無いゲームのコピーも可能になりますが悪用しないでね PR |
カレンダー
フリーエリア
最新記事
(07/07)
(06/27)
(06/03)
(05/31)
(05/25)
(05/25)
(05/22)
(05/18)
(05/16)
(05/15)
最新トラックバック
プロフィール
HN:
監督
性別:
非公開
ブログ内検索
最古記事
(05/04)
(05/04)
(05/07)
(05/08)
(05/08)
(05/09)
(05/12)
(05/15)
(05/16)
(05/18)
カウンター
|