2016-03-02 27 views
2

因此,爲了工作,他們讓我編寫一個簡單的程序來跟蹤工作流程中的員工效率(例如使用鍵盤快捷鍵,窗口位置以及需要查看內容的頻率等)。目前我們想跟蹤'F5'鍵(帶來下一個工作項),'Alt + Tab'(更改窗口),'Ctrl + V'(粘貼),但可能會擴大,因爲他們發現有更多的捷徑或東西他們想跟蹤。某些應用程序停止所有獲取鍵擊的嘗試

注意我們在windows 7上,用c#編寫跟蹤程序。

爲了做到這一點,我編寫了一個低級掛鉤庫來捕獲所選擇的擊鍵,將消息發送到掛鉤鏈中,然後向註釋中添加一個註釋以使用該鍵。鉤子庫在所有網絡瀏覽器和大多數普通程序中都很有用(除非我們實際上並不關心瀏覽器,所以我們忽略了在它們中完成的所有事情)。

問題是,他們用來管理他們的工作(我們實際上關心跟蹤的程序)的應用程序如何阻止我們的鉤子掛鉤,我不知道如何。有問題的應用程序是TA2000桌面。

我知道,如果應用程序在LowLevelHooksTimeout期間內未能呼叫callnexthook(),掛鉤的方式會起作用,系統將終止掛鉤。所以,也許TA2000只是花了很長時間,或者我把超時時間縮短到了30秒(是的,我知道這比鉤子更需要時間),但這沒有效果。

我試過的下一件事是實現基於原始輸入API的跟蹤系統。再次瀏覽器,微軟辦公室,記事本和我打開的所有其他程序的跟蹤軌道,除了它仍然無法跟蹤TA2000中的按鍵。這確實讓我感到驚訝,因爲根據MSDN

  • 的應用程序沒有檢測或打開輸入設備。
  • 應用程序直接從設備獲取數據,並根據需要處理數據
  • 應用程序可以區分輸入源,即使它來自同一類型的設備。例如,兩個鼠標設備。

所以,如果我直接從設備TA2000是如何阻止我也得到按鍵獲取數據?

我能想到的最後一件事就是在TA2000上使用dll注入來注入一個鉤子。然而,這種方法似乎有風險,因爲這是我和其他任何開發人員都沒有任何經驗的事情,我們想跟蹤的應用程序是操作關鍵,所以搞砸它不會發生,並將代碼注入其內存空間似乎是一種好方法搞砸了。

如果有人可以解釋TA2000如何阻止我跟蹤擊鍵,如何擊敗它或指向一個好方向,我會非常感激。

p.s.這被認爲是SO格式的一個合適的問題,但它也足夠具體以成爲一個可行的問題。非常抱歉,如果這不是一個好問題,但我憑藉這一點在我的智慧結束。

+0

TA2000 Desktop是舊版本,還是以兼容模式運行?在Windows 7之前,所有的鍵盤和鼠標輸入都以發送到應用程序的窗口事件消息的形式出現,但對於從其他平臺移植過來的舊軟件或軟件來說,情況並非總是如此。我試圖搜索TA2000 Desktop,但發現了幾個不同的軟件包,這些軟件包被稱爲某種變體,所以我無法分辨它是哪一種 - 這是財務/投資軟件包還是其他?它有多大可能被設計爲防止鍵盤記錄器窺探? –

+0

@MattJordan是的,這是我們的呼叫中心代表使用的財務軟件包。它的設計肯定是爲了防止窺探,因爲它被用於金融行業,但我不確定。可悲的是TA2000或者至少我們使用的版本是爲我們定製的,所以我們很難在網上找到與我們使用的版本相同的版本。 – user5999614

+0

第一步是確定這可能是安全「功能」,還是隻是軟件的設計方式。我建議使用一個流程調試器,看看它是否隱藏活動。在一個孤立的環境中執行此操作,因爲任何一種完整的監視軟件都可能使其速度變慢。 Sysinternals的Process Explorer可能是一種安全的第一種方法 - 它不會記錄擊鍵,但它可能表明TA2000是否試圖隱藏它正在做的事情。 –

回答

2

這個財務軟件包是安全的,以防止窺探。以管理員身份運行密鑰日誌記錄軟件似乎可以解決此特定問題。最初使用Sysinternals的Process Explorer識別安全性,這對於這樣的意外問題是一個很好的起點。

+0

非常感謝! – user5999614

相關問題