621 名前:ppp1826.va-east.my-users.ne.jp 投稿日:2005/08/20(土) 07:53:27 ID:eLPWq2Y20
お願いします・・・
【板名*】 PC等->プログラム
【スレ名*】 アセンブラ… (´・∀・`)ヘー
【スレのURL*】
http://pc8.2ch.net/test/read.cgi/tech/1101390110/l5 【名前欄】 397,398
【メール欄】
【本文*】↓
>>399 >>代入ではなくWriteProcessMemory()を使ってるのは、WPM()ならPAGE_READONLYが付いてもWPM自信が属性書き換えてデータを書き込むからだそうな(そういう意味ではVirtualProtect()呼ぶのは無意味)。
だからそう書いてるんだが。>>自信
>>あと、プロセスメモリ内にある以上はシステムDLLだろうが何だろうが書き換えはできるし、
本当?そりゃ悪かった。今XPが使えないんで試せないんだが、少なくともWin98ではシステムDLL(のリードオンリー属性変更)にVirtualProtect()は通用しない。
>>そうでなきゃKERNEL32.DLLにブレークポイントしかけられない
だからWin98では仕掛けられないわな。
まあDRxならできるが。
>>copy on writeでそのプロセス独自のコピーが作られるから、他プロセスには影響しない。
本当?そりゃ悪かった。今XPが使えないんで試せないんだが、少なくともWin98では共有されている。
例えばKERNEL32やUSER32は、データやインポートテーブルは共有セクション上に置かれているので、例えプロセスごとにコピーが作られてもデータは共有される。
すなわちcopy on writeはコード(とかリソース等の)部分だけ、というわけだが。
Win98で共有されててWinXPで共有されていないって事は無いと思ったんだが、違うんか?