如何從/proc/kcore
中檢索系統調用地址。我可以從System.map
文件中獲得系統調用表地址。從/ proc/kcore獲取系統調用表中的系統調用地址
4
A
回答
9
如果您使用的是基於x86的機器,則可以使用sidt
指令來獲取中斷描述符表寄存器以及中斷描述符表本身。有了這個功能,您可以獲得0x80系統調用中斷調用的system_call
(或與x86-64兼容的ia32等價物)函數的地址。拆解該中斷處理程序並掃描特定的間接調用指令,可以提取調用指令中的地址。該地址是您的系統調用表(在x86上)或x86-64上的IA32兼容性系統調用表。
獲取x86-64本地系統調用表是類似的:不要用sidt
重建中斷表,請閱讀處理器的IA32_LSTAR MSR。 (high << 32 | low)
的地址是系統調用調度程序。像以前一樣掃描內存,從調用指令中提取地址,但請記住掩蓋地址的高32位。
這可以掩蓋很多的更多技術信息(比如要搜索哪些字節),您應該先理解內核代碼。在Google快速搜索後,我發現整個過程都有文檔記錄(例如模塊代碼)here。
祝你好運,並儘量不要自責!
+0
不幸的是,鏈接已經死了:( – galaxy 2015-07-17 13:27:10
相關問題
- 1. 獲取系統調用
- 2. 如何從系統調用號碼獲取Linux系統調用名稱?
- 3. 系統(「」)調用
- 4. 獲取Java中的系統MAC地址
- 5. 從系統調用用C
- 6. FreeBSD從另一個系統調用發出系統調用
- 7. 讀取系統調用
- 8. UNIX系統調用列表?
- 9. Vfork系統調用
- 10. 系統調用Perl
- 11. Linux系統調用
- 12. 系統調用和系統程序
- 13. MIPS:系統調用
- 14. 調用C「系統」 ++
- 15. Ptracing系統調用
- 16. 調用android系統
- 17. Pipe()系統調用
- 18. sys_execve系統調用
- 19. 管系統調用
- 20. python系統調用
- 21. indir系統調用
- 22. 系統調用庫
- 23. sigaction系統調用
- 24. fork系統調用
- 25. 系統調用ARM
- 26. 系統調用write
- 27. 如何獲取系統的IP地址
- 28. 系統調用中的宏
- 29. Unix中的系統調用
- 30. XV6加計數系統的系統調用調用
是的。不使用系統地圖 – user567879 2011-04-27 15:57:22