簡體   English   中英

OpenGL調用鎖定/凍結

[英]OpenGL Calls Lock/Freeze

我正在使用一些Dell工作站(運行WinXP Pro SP 2和DeepFreeze)進行開發,但是某些東西被重新加載到這些計算機上,從而阻止了任何opengl調用(調用鎖定)的完成(而且我知道代碼已經按照我的測試進行了工作)在“干凈”的計算機上,我還用dev-cpp生成的簡單opengl應用程序進行了測試,該應用程序也會鎖定在Dell機器上)。

我嘗試調試自己的應用程序,以查看gl調用在何處凍結,但是ZwQueryInformationProcess上存在一些全局系統鈎子,使對ZwQueryInformationThread(由ExitThread使用)的調用混亂了,從而使我根本無法調試(這會導致調試器, OllyDBG,進入訪問沖突報告循環,或者如果傳遞了異常,則程序崩潰。 鈎子:

ntdll.ZwQueryInformationProcess 7C90D7E0       B8 9A000000          MOV EAX,9A
7C90D7E5                                       BA 0003FE7F          MOV EDX,7FFE0300
7C90D7EA                                       FF12                 CALL DWORD PTR DS:[EDX]
7C90D7EC                                     - E9 0F28448D          JMP 09D50000
7C90D7F1                                       9B                   WAIT
7C90D7F2                                       0000                 ADD BYTE PTR DS:[EAX],AL
7C90D7F4                                       00BA 0003FE7F        ADD BYTE PTR DS:[EDX+7FFE0300],BH
7C90D7FA                                       FF12                 CALL DWORD PTR DS:[EDX]
7C90D7FC                                       C2 1400              RETN 14
7C90D7FF                                       90                   NOP
ntdll.ZwQueryInformationToken 7C90D800         B8 9C000000          MOV EAX,9C

混亂的功能+呼叫:

ntdll.ZwQueryInformationThread 7C90D7F0        8D9B 000000BA        LEA EBX,DWORD PTR DS:[EBX+BA000000]
7C90D7F6                                       0003                 ADD BYTE PTR DS:[EBX],AL
7C90D7F8                                       FE                   ???                                                          ; Unknown command
7C90D7F9                                       7F FF                JG SHORT ntdll.7C90D7FA
7C90D7FB                                       12C2                 ADC AL,DL
7C90D7FD                                       14 00                ADC AL,0
7C90D7FF                                       90                   NOP
ntdll.ZwQueryInformationToken 7C90D800         B8 9C000000          MOV EAX,9C

因此,首先,任何人都知道如果導致OpenGL調用的任何事情會引起無限鎖定,以及是否有任何解決辦法? 在內核內存中創建這樣的鈎子又會是什么?

更新:經過一番擺弄之后,我發現了更多的內核鈎子,其中許多鈎子用於使系統信息調用(例如遠程調試端口)返回的數據無效,我還設法找出了正在做的事情這是使用madchook.dll(由madshi創建)來執行的,該dll也被注入到每個正在運行的進程中(這些似乎是一些反調試代碼)。 另外,在OpenGL方面,似乎Direct X很好/不受影響(我運行了DX 9演示程序之一,沒有問題),那么這些內核掛鈎之一會以某種方式影響OpenGL嗎?

經過研究,似乎有一些東西在積極阻止對OGL的用戶->內核模式調用,這可能是DeepFreeze的選項。 DirectX可以完美地工作,所以我切換到了這一點。

這聽起來很像某些惡意軟件試圖將自己隱藏在系統中(並弄錯了)。 您是否嘗試過使用最新的防病毒軟件掃描系統?

編輯:快速搜索madchook.dll的Google搜索表明,各種間諜軟件/撥號程序/其他惡意軟件都在使用它。 請盡快運行防病毒軟件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM