思いっきりAPIと格闘してました。
今日のまとめ
DLL:kernel32.dll
OpenMutexA
ミューテックスオブジェクトを開いてハンドルを取得する。
SAKURAは常に"sakura"という名前のミューテックスオブジェクトを保持する。
このオブジェクトの存在を調べることによって、容易にSAKURAの存在を知ることが出来る。
OpenFileMappingA
ファイルマッピングオブジェクトを開いてハンドルを取得する。
SAKURAは常に"Sakura"と言う名前のファイルマッピングオブジェクトを保持する。
このオブジェクトにはDirectSSTP通信を行うために重要な情報が含まれる。
MapViewOfFile
ファイルマッピングオブジェクトのハンドルを用いて、プロセス内のメモリ空間にオブジェクトを展開する。
このオブジェクトにはDirectSSTPサーバのウィンドウハンドルの他、パス情報やsakuraとkeroの名前が含まれる。
サーバとなるウィンドウハンドルのエントリは".hwnd"である。
なお、オブジェクトの始め0-3byteは全体サイズを示すlong値である。
従って、実際のデータは4byte目から始まる。
ToDo
目的のエントリの切り出し
実際にSendMessage
これでDirectSSTPは完成するはず。
今日のまとめ
DLL:kernel32.dll
OpenMutexA
ミューテックスオブジェクトを開いてハンドルを取得する。
SAKURAは常に"sakura"という名前のミューテックスオブジェクトを保持する。
このオブジェクトの存在を調べることによって、容易にSAKURAの存在を知ることが出来る。
OpenFileMappingA
ファイルマッピングオブジェクトを開いてハンドルを取得する。
SAKURAは常に"Sakura"と言う名前のファイルマッピングオブジェクトを保持する。
このオブジェクトにはDirectSSTP通信を行うために重要な情報が含まれる。
MapViewOfFile
ファイルマッピングオブジェクトのハンドルを用いて、プロセス内のメモリ空間にオブジェクトを展開する。
このオブジェクトにはDirectSSTPサーバのウィンドウハンドルの他、パス情報やsakuraとkeroの名前が含まれる。
サーバとなるウィンドウハンドルのエントリは".hwnd"である。
なお、オブジェクトの始め0-3byteは全体サイズを示すlong値である。
従って、実際のデータは4byte目から始まる。
ToDo
目的のエントリの切り出し
実際にSendMessage
これでDirectSSTPは完成するはず。
※コメント投稿者のブログIDはブログ作成者のみに通知されます