逆転している間に、call dword ds:[004000238h]
またはcall dword ptr ds:_imp_atoi
のようないくつかの混在通話が見られます。
なぜコードセグメント(CS
)を使用する代わりにデータセグメントを使用していますか?DSを使って手続きを呼び出すのはなぜですか?
-1
A
答えて
1
call dword ds:[004000238h]
が、間接の近くに呼び出しあり、それは004000238hでDWORDの値を読み、呼び出しを行うためにそれを使用しています。
大括弧とdword ptr
は、命令のタイプを決定するためのスポットであることに注意してください。
命令のオペランドがメモリオペランドであるため、DS
が暗黙的にその命令を読み取るために使用されています(ディスアセンブラは、セグメントオーバーライド構文でそれを示すのが賢明です)。
CS
の現在の値は変更されていないため、コールは近いです(保護モードのfar呼び出しはまれであり、特別な意味を持ちます)。
コールが現在の値CS
に関連しているので、CS
が暗黙的に使用されていると言えます。
Intel manual 3は、protected modeの呼び出しメカニズムについて説明しています。
32ビットシステムであっても、セグメンテーションは実質的に無効になります(すべてのディスクリプタは0になります)。セレクタレジスタは忘れてしまいますが、TLSとSEH(通常はfs
/gs
レジスタ)。
関連する問題
- 1. 他の手続きで手続きをしたときに呼び出されるものは何ですか?
- 2. なぜICommunicationListener.Abort()は引き続き呼び出されますか?
- 3. VB.NETで手続きを呼び出す賛否両論は何ですか?
- 4. プロシージャ内で手続きを呼び出す
- 5. 空手を使って別のフィーチャからシナリオを呼び出すことはできますか?
- 6. は、なぜ私はこのような別の手続き関数を呼び出す手続きの機能を持っている場合は、オブジェクトのプロトタイプメソッドは、手続き型プログラミングで
- 7. なぜonErrorメソッドが引き続き呼び出されるのですか(Firebase)?
- 8. OnlyOnCanceled継続がなぜ呼び出されるのですか?
- 9. なぜRustは値で呼び出しを行い、参照によって呼び出しますか?
- 10. 別のモデルを呼び出すときにsave()を呼び出すのはなぜですか
- 11. 手続きの呼び出しは失敗し、反復
- 12. サービス接続がonResumeで呼び出されないのはなぜですか?
- 13. Neo4j:ノードIDを反復処理して手続きを呼び出す
- 14. Cpanelでajaxを使ってphpファイルを呼び出せないのはなぜですか?
- 15. デストラクタでdispose(false)を呼び出すのはなぜですか?
- 16. 関数定義で非手続き呼び出し?
- 17. なぜsocketIOが多すぎる接続を呼び出すのですか?
- 18. Swiftが間違ったイニシャライザを呼び出すのはなぜですか?
- 19. AndroidのPhoneGap:camera.getPicture成功手続きが呼び出されていない
- 20. なぜunregisterReceiver()はonServiceDisconnectedを呼び出さないのですか?
- 21. recvシステムコールを呼び出すときにsigprocmaskが呼び出されるのはなぜですか?
- 22. URLDownloadTaskが呼び出されなかったのはなぜですか?
- 23. Ruby:putsがto_aryを呼び出すのはなぜですか?
- 24. なぜクロスgccはネイティブ 'as'を呼び出すのですか?
- 25. strcpy()を呼び出すときに、対応するサブルーチン呼び出しがマシンコードのダンプで呼び出されないのはなぜですか?
- 26. glMatrixModeを呼び出すたびにglLoadIdentityを呼び出す必要があるのはなぜですか?
- 27. 手動でconnectSlotsByName()を呼び出す
- 28. 手動でRaisePropertyChangedを呼び出す
- 29. 手動で描画を呼び出す
- 30. 手でExpressを呼び出す
なぜ静的リンクモジュールでもインポートアドレステーブルが必要ですか?私は動的リンクでIATを使用すると思います –
@ user7445340具体的な例がないと言うのは難しいですが、Windows APIは主にユーザースペースDLLとして実装されています。 Cランタイムは 'user32'や' kernel32'のようなライブラリをロードする必要があります。 –