乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      360安全衛(wèi)士hookport.sys簡(jiǎn)單逆向——基礎(chǔ)

       昵稱2034962 2010-07-06
      hookport.sys模塊作用

      Hookport.sys360安全衛(wèi)士對(duì)系統(tǒng)進(jìn)行掛鉤操作的核心模塊。其中主要方 式對(duì)SSDTshadowSSDT安裝鉤子函數(shù)。但其使用了一種較為特 殊的實(shí)現(xiàn)方法,使眾多常規(guī)ARK軟件很難檢測(cè)出360安全衛(wèi)士所的鉤子。由于此方法對(duì)系統(tǒng)表操作很少,比較穩(wěn)定。

      Hookport.sys只提供了最為基本的過(guò)濾操作和樁 函數(shù),本身并沒(méi)有實(shí)現(xiàn)策略部分。策略部分由360SelfProtection.sys實(shí)現(xiàn),并通過(guò)設(shè)備擴(kuò)展進(jìn)行溝通。

      本報(bào)告簡(jiǎn)要解釋了360安全衛(wèi)士所使用的掛鉤方法,給出了其中的一些關(guān)鍵數(shù)據(jù)結(jié)構(gòu)和 使用方法。

      SSDT內(nèi)存位置的確定

               由于SSDT是內(nèi)核的導(dǎo)出表,所以確定較為方便??梢灾苯邮褂?strong> MmGetSystemRoutineAddress 函數(shù)。但由于系統(tǒng)中其它安全軟件可能對(duì)此函數(shù)進(jìn)行掛鉤,所以360采用了更加穩(wěn)妥的方式。

               首先,向ZwQuerySystemInformation傳遞0x0B號(hào)參數(shù),獲得SYSTEM_MODULE_INFORMATION結(jié)構(gòu) 數(shù)組。數(shù)組的第一個(gè)元素就是內(nèi)核模塊,取得內(nèi)核模塊的imageBaseimageSize。


      按照PE格式解析映射入內(nèi)存的系統(tǒng)內(nèi)核,從導(dǎo)出表中找到KeServiceDescriptorTable的地 址,進(jìn)行重定位后得到SSDT表在內(nèi)存中的真實(shí)地址。

               上述這個(gè)過(guò)程被360封裝在MyGetFuncAddrFromKrnl 函數(shù)中,并在以后被多次調(diào)用。

               函數(shù)原型如下:

      int __stdcall MyGetFuncAddrFromKrnl(PUNICODE_STRING funcName)

      funcName為內(nèi)核導(dǎo)出函數(shù)的名稱

      返回值為函數(shù)地址或NULL。(詳細(xì)分析請(qǐng)參考IDB文件)

      shadowSSDT內(nèi)存位置的確定

      1.       使用MyGetFuncAddrFromKrnl獲得 KeAddSystemServiceTable函數(shù)地址。

      其反匯編代碼如下:

      80596542 8bff            mov     edi,edi

      80596544 55              push    ebp

      80596545 8bec            mov     ebp,esp

      80596547 837d1803        cmp     dword ptr [ebp+18h],3

      8059654b 7760            ja     nt!KeAddSystemServiceTable+0x6b (805965ad)

      8059654d 8b4518          mov     eax,dword ptr [ebp+18h]

      80596550 c1e004          shl     eax,4

      80596553 83b88031558000 cmp     dword ptr nt!KeServiceDescriptorTable (80553180)[eax],0

      8059655a 7551            jne     nt!KeAddSystemServiceTable+0x6b (805965ad)

      8059655c 8d8840315580    lea     ecx,nt!KeServiceDescriptorTableShadow (80553140)[eax]

      80596562 833900          cmp     dword ptr [ecx],0

      80596565 7546            jne     nt!KeAddSystemServiceTable+0x6b (805965ad)

      80596567 837d1801        cmp     dword ptr [ebp+18h],1

      2.       搜索8D 88 指令,并去除后4字節(jié):     

      注意紅色代碼:這里出現(xiàn)了KeServiceDescriptorTableShadow的地址,對(duì)應(yīng)的機(jī)器碼為

               8D 88 40 31 55 80 ,從KeAddSystemServiceTable開(kāi)始搜索8D 88,緊接著的4字節(jié)數(shù)據(jù)就是shadowSSDT在內(nèi)存中的地址。


        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多