[英]Intercepting API calls related to getting Windows Verion
我一直在玩Homeworld 1,要使其運行,您需要運行Windows NT 4兼容模式。
Windows 8出於某種原因沒有此功能,這很煩人。
使用Microsoft應用程序兼容性工具包,我發現Homeworld進行了API調用以獲取Windows版本,除非它認為它在Windows NT上運行,否則它似乎停止工作(使用調試器,我可以看到它要求GetVersion和GetVersionEx)。 。
http://technet.microsoft.com/en-us/library/cc749574(v=ws.10).aspx
將以上內容與Microsoft Applocation Compat Toolkit一起使用可解決此錯誤,但我在許多不同的計算機上玩此游戲,其中一些無法使用上述方法。
我有什么辦法可以做一些包裝來攔截API調用,並通過上述鏈接結構返回它們,以便程序認為它在NT上運行? 我已經看到了很多放置在文件夾中的DLL,它可以攔截某些調用,盡管我不確定它們是如何工作的,我認為它們是用C,C ++編寫的。
我真正了解的唯一語言是C#,我認為它無法滿足我的要求,因此,如果有人能夠向我指出正確的方向,請提供幫助,在此方面給我提示或指出我可以得到的地方更多的幫助,那就太好了!
謝謝你的時間!
您可以使用api掛鈎庫,這是著名的easyhook庫的教程 。
為您的應用程序掛鈎GetVersionEx api,然后返回您想要的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.