[英]How do I determine what a function will be called if it's virtual and when it is not?
[英]How do I determine what functions are being called in a binary?
答案不是“查看導入地址表”。
我希望對我生成的一些二進制文件進行一些分析,特別是為了更好地了解我正在使用的庫和Windows API函數。 我已經使用Dependency Walker來看一下這個,但是我做過的一些測試向我表明,可能會有很多額外的函數調用放入IAT,即使它們沒有被調用。
我正在尋找的是一種確定調用函數的方法......而不僅僅是IAT中的內容。
最好的方法可能是扭轉它並查看所有'CALL',但我也不知道這樣做的好方法。
做這個的最好方式是什么?
運行以下命令
打開logviewer工具自帶windows調試工具查看api,默認日志路徑是desktop \\ logexts
如果您使用link.exe鏈接二進制文件,請在鏈接時傳遞/ MAP標記。 這將生成一個MAP文件(binary.map)...它將具有使用的功能(不是所有功能)。
我不知道這是不是“最好的方式”,但我有點同意你的建議,所有的CALL都給出了很好的概述。
使用“Ollydbg”調試器,您可以加載程序,轉到進程的exe模塊,然后右鍵單擊 - >搜索 - >所有模塊間調用。
這為您提供了一個很好的可排序,可搜索的列表,列出了模塊中出現的所有“CALL”,並指向其他模塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.