操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    譯者:myswsun

    預估稿費:100RMB

    投稿方式:發送郵件至linwei#360.cn,或登陸網頁版在線投稿

    0x00 前言


    回顧第一部分,我們總結了4種Windows用戶模式的鍵盤記錄的方法,今天我們將分析每種技術的檢測方式。

    測試機器:

    0x01 SetWindowsHookEx


    當我們使用SetWindowsHookEx注冊消息鉤子時,系統將我們的鉤子處理函數保存在鉤子鏈(是一個指針列表)中。因為我們能注冊任何消息類型的鉤子,因此,每種消息類型都有一個鉤子鏈。因此我們的目標是:

    系統內存中鉤子鏈的位置(WH_KEYBOARD和WH_KEYBOARD_LL)

    如何找到鉤子的進程名

    對于鉤子鏈的位置,可以參考如下:

    1
    nt!_ETHREAD + 0x0 => nt!_KTHREAD + 0x088 => nt!_TEB + 0x40 => win32k!tagTHREADINFO + 0xCC => win32k!tagDESKTOPINFO + 0x10 => win32k!tagHOOK

    每個結構都很清楚(感謝Windows符號)。Offset值是我的測試機器的,不同的Windows版本和構建版本會不同(ntoskrnl和win32k.sys)。

    從nt!_ETHREAD看,它一定是一個GUI線程。我們能從explorer.exe中得到GUI線程,或者自己創建。

    在上面,我們能得到系統所有的全局鉤子鏈的位置。這個有16個tagHOOK的數組指針,數組索引是WH_*消息類型的值(實際上是index=WH_*+1)。如果條目是空,我們能找到一個全局鉤子鏈。

    從tagHook中的_THRDESKHEAD看,我們能得到設置鉤子的進程的tagTHREADINFO。因此我們能得到進程ID和進程名:

    1
    processIdOfHooker = PsGetProcessId(IoThreadToProcess((PETHREAD)(*pCurHook->head.pti)));

    掃描結果:

    好了,查找Windows全局消息鉤子可以了。那么本地鉤子怎么辦?

    下面是本地鉤子:

    1
    nt!_ETHREAD + 0x0 => nt!_KTHREAD + 0x088 => nt!_TEB + 0x40 => win32k!tagTHREADINFO + 0x198 => win32k!tagHOOK

    和全局鉤子很相似,但是你能看見本地鉤子鏈的位置是在進程的tagTHREADINFO結構體中的,它是進程相關的。tagDESKTOPINFO中的鉤子鏈是相同桌面下所有進程的。

    0x02 輪詢


    我確實不知道怎么掃描這種方式。為什么?因為它直接從內部結構讀取鍵的狀態,似乎沒有方式來檢測。

    針對GetAsyncKeyState(), GetKeyboardState() API hook?可以,我們可以通過API來檢測,但是我不想用它,因為針對系統所有進程全局APIhook不是個好方法。使用API HOOK,我們能檢查頻率和鍵盤記錄鍵的范圍。

    0x03 Raw Input


    我從分析user32.dll中的RegisterRawInputDevices函數開始。這個API將調用win32k.sys中的NtUserRegisterRawInputDevices。

    在一些檢查之后,進入_RegisterRawInputDevices

    這里非常清楚。PsGetCurrentProcessWin32Process返回win32k!tagPROCESSINFO結構體。使用WinDbg查看偏移0x1A4:

    有個指針指向win32k!tagPROCESS_HID_TABLE。

    20-34行,驗證注冊的數據(HID請求)。

    36-47行,如果不存在分配HID表。意味著,如果tagPROCESSINFO->pHidTable為空,進程中沒有注冊設備。

    48-71行,設置HID請求到HID表中。

    剩下的就是更新標志和重啟HID設備。

    讓我們看下SetProcDeviceRequest函數:

    系統分配一個HID請求,將它插入到HID表中

    這里有2個HID請求的列表,分別是InclusionList, UsagePageList and ExclusionList。插入哪個列表取決于調用RegisterRawInputDevices的tagRAWINPUTDEVICE的dwFlags值。

    對于鍵盤記錄,我使用RIDEV_NOLEGACY | RIDEV_INPUTSINK標志,因此是InclusionList。最后一個結構體是win32k!tagPROCESS_HID_REQUEST

    能看到usUsagePage, usUsage and spwndTarget是tagRAWINPUTDEVICE的參數。

    對于原始輸入的檢測:

    1. 枚舉系統所有的進程

    2. 針對每個進程,遍歷pID -> PEPROCESS -> tagPROCESSINFO -> tagPROCESS_HID_TABLE -> tagPROCESS_HID_REQUEST

    3. 如果我們找到usUsagePage = 1的條目(通常是桌面控制)和usUsage = 6(鍵盤),這個進程就是用來鍵盤記錄的。

    掃描結果:

    0x04 Direct Input


    當檢測direct input時,我發現了注冊鉤子進程中的一些有趣的特征。

    針對MSIAfterburner.exe,我發現了一些與direct input(Mutant, Section, Key)相關的句柄。從運行的線程中,我們也能發現DINPUT8.dll(微軟DirectInput庫)。

    對于direct input的檢測:

    1. 枚舉系統所有進程

    2. 對于每個進程,枚舉所有的mutant、section、key,以匹配句柄特征

    3. 如果所有的特征都匹配了,我們得到進程的所有的線程的起始地址。如果起始地址在DINPUT8.DLL的地址空間中,則找到了鍵盤記錄。

    掃描結果:

    0x05 總結


    總結掃描方式如下:

    Windows操作系統有正版與盜版之分,今天我們重點來講如何驗證Windows 10系統是否正版的問題,很多人在電腦店高價安裝所謂的“正版Win10系統”,那么我們怎么知道電腦店給我們安裝的Win10系統就是正版系統呢?換句話說電腦店收我們正版系統的錢而給我們安裝盜版系統我們怎么知道呢?其實沒有不透風的墻,我們只需要驗證一下即可,驗證的方法也是非常的簡單,無需電腦專業人員操作。

    如何驗證系統是否正版

    驗證系統是否正版我們只需看兩個位置即可,第一就是看計算機屬性內的系統狀態是否被激活,如果系統狀態顯示已激活后我們才能進入下一步確認階段,因為系統激活狀態顯示“未激活”系統肯定100%為盜版系統,系統激活狀態顯示“已激活”也不能代表此系統就是正版,系統激活狀態顯示“已激活”我們還需要進一步驗證系統的真偽。

    計算機屬性內系統的激活狀態

    如上圖所示電腦系統的激活狀態為“已激活”,這時我們就需要進一步驗證系統的真偽,第二步也是最重要的一步,Win+R直接輸入:Slmgr.vbs -dlv再按鍵盤回車按鍵,這里我們一定要注意vbs后面有一個空格字符,沒有空格字符命令是不會被系統所識別的,接下來您電腦Windows 10系統的所有信息都全部展示在您的面前,下圖所示:

    ?驗證系統是否正版的“命令”畫面

    正版Windows 10系統有授權正版零售正版之分,上圖中我們需要看三項,第一項就是看激活ID,第二項就是看產品密鑰通道,第三項就是要看驗證URL,品牌電腦自帶的Windows10系統都是已授權的OEM-DM正版操作系統,產品密鑰通道為Volume證明是商用零售版正版操作系統,Volume后面不可帶任何文字字符。正版Win10系統是一碼激活一機,盜版Windows10系統是一碼可以批量激活N臺機,因為盜版Windows10系統是克隆正版Windows系統的文件后破解的。我們再看Windows10系統的盜版畫面展示圖片:

    盜版Windows10系統展示畫面

    ?正版操作系統可以把上圖中的信息輸入官網內查詢,信息輸入官網后會顯示的激活ID與系統檢測的ID一模一樣。圖三為正版系統,圖四為盜版系統,大家可以對照兩張驗證系統是否盜版的檢測圖來對比下他們的區別,弄清楚后您就會受益匪淺而不會再被黑心電腦商家所坑了。點擊關注小編,每期都會有實用的新知識奉獻給大家。

    原創作品版權所有,未經允許禁止盜用,一經發現維權到底,全網監測侵權必究。原創作者:王李軍。最后感謝大家的關注與閱讀,下期我們再見!

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有