• ベストアンサー

起動中のプロセスのメモリを書き換えるには

フリーソフトを使用していて、アプリケーション終了時に毎回作者のHPが表示される。 ollyやバイナリエディタで編集すると、起動時にエラーが出て起動できなくなってしまう。 なので、実行中に書き換えるしかないのですが、この場合どのようなプログラムを書けば良いのでしょうか・・・。 C#での参考URL、または具体的なコードを教えて頂きたいです。 ※カテゴリにC#がなかったのでC++にしてます。

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.3

ANo.1の者です。 デバッガからなら他のプロセスのメモリを書き換えられるのは忘れていました。 WindowsならWriteProcessMemoryなどのデバッグ用APIを使えば実現できそうです。C/C++から呼べるのは確実ですが、C#から呼ぶ方法があるかどうかは知りません。http://msdn.microsoft.com/ja-jp/library/cc428916.aspx なお、アプリケーションの中身を解析したり書き換えたりすることは使用条件などで禁じられている場合がありますから、書き換えプログラムを作るなら問題ないことを確認してからにしてください。 広告を見ないで済むようにするための、アプリケーションを書き換える以外のアイデア。 ・アプリケーションを終了するときにタスクマネージャから強制終了する ・アプリケーションを終了するときにネットワークを切断しておく ・そのフリーソフトの作者に、有償でもいいから広告が出ないバージョンを作ってくれるよう依頼する ・そのフリーソフトを使うのをやめて、広告が出ない他のアプリケーションを使う

nery1024
質問者

お礼

おお、やっぱりあったんですね。 作者には許可を取ります。 大変参考になりました。 ありがとうございます。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

そんな動作をするのは、悪質なウィルスの類か、制限付きで無料にしている本来は有料のソフトかです。 おそらく、後者でしょう。 それなら ・金を払って制限を解除するか ・金は払わず、わずらわしさを受け入れるか でしょう。 少なくとも、「改造して制限をはずす」という方法では、ここの利用規約違反になるでしょう。

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

今どきのOSでは、プログラミング言語の種類によらず実行中のプログラムを他のプログラムから書き換えることは普通不可能です。 アドレス空間はプロセスごとに割り当てられるので、あるプロセスから他のプロセスのアドレス空間をアクセスすることはできません。

nery1024
質問者

お礼

解答ありがとうございます。 しかしながら、うさみみハリケーンではそれができてるんです。 でも毎回うさみみで書き換えるのは大変なので(それだったら広告出るのを我慢するのと変わらない) 自分でコードが書けないものかと思い質問させていただきました。

関連するQ&A