課題をやりました
WinDbgを使ってimm32_apitestを解析、ImmCreateContextの呼び出し履歴を調べると、kernel32!BaseProcessStartから呼び出されているようです。
imm32_apitest実行時なのと関数名から推察する限りではkernel32!BaseProcessStartからwinMainが呼び出され、himcテスト部分に来て止まっていると思うのですが...
Win2k3のBaseProcessStartはプロセス開始のシステム関数ですね。+0x23だからこれは一致していない。。。 「Following frames may be wrong.」だから間違っているかも。
hello12で試してごらん
プロセス開始したら呼ばれるのだから、これが呼ばれているのは当たり前ってことかな。
注意。Win2k3の関数名とReactOSの関数名は非公開のものは異なることがある。
わかりました 試してみます
imm32はユーザ空間の関数。NtUserなんちゃらはカーネル空間の関数。
あーなるほど 確かに忘れてたかもです
だったらhello12の最初のデバッグブレイクでプロセスをアタッチして、さらにImmCreateContextにブレイクポイントを置く。 再実行。ImmCreateContextで止まる。あとは料理。
お、ちゃんとHello12基準になりました
ではImmCreateContextの中を見ますか
やり方わかる?
わからないです
[Home]タブの[Ass*mbly]ボタンをクリックして
Disasmまではできました
何十行かを個人のメモ帳にでもコピーしといてくれ。
[Step Into]で少しづつ進むことができる。
ハッカーみたいになってきただろう。
[Stack]ペインで呼び出し履歴が見れる。またasmでも関数名が表示されている。これで呼び出している関数名がわかる。
[Stack]が表示されていないときは[View]タブから[Stack]ボタンをクリックしてくれ。
今日はここまでにします。
わかりました 色々とありがとうございます
時間があったらここからデバッガ拡張のMEXをインストールして:https://www.microsoft.com/en-us/download/details.aspx?id=53304 Install Instructionsに従ってインストール。
あとで入れてみます