Delete DeleteModuleFromPEB.asm

这个提交包含在:
vxunderground 2021-05-28 23:55:01 -05:00 提交者 GitHub
父节点 c7ebe7cb0b
当前提交 9f244c610f
找不到此签名对应的密钥
GPG 密钥 ID: 4AEE18F83AFDEB23

查看文件

@ -1,100 +0,0 @@
KLIST_ENTRY struct
Flink dd ?
Blink dd ?
KLIST_ENTRY ends
UNICODE_STRING struct
CLength dw ?
MaximumLength dw ?
Buffer dd ?
UNICODE_STRING ends
LDR_DATA_TABLE_ENTRY struct
InLoadOrderLinks KLIST_ENTRY <>
InMemoryOrderLinks KLIST_ENTRY <>
InInitializationOrderLinks KLIST_ENTRY <>
DllBase dd ?
EntryPoint dd ?
SizeOfImage dd ?
FullDllName UNICODE_STRING <>
BaseDllName UNICODE_STRING <>
LDR_DATA_TABLE_ENTRY ends
PEB_LDR_DATA struct
dd 3 dup(?)
InLoadOrderModuleList KLIST_ENTRY <>
InMemoryOrderModuleList KLIST_ENTRY <>
InInitializationOrderModuleList KLIST_ENTRY <>
PEB_LDR_DATA ends
PEB struct
db 2 dup(?)
BeingDebugged db ?
db ?
dd 2 dup(?)
Ldr dd ?
PEB ends
DeleteModuleFromPEB proto :dword
DeleteModuleFromPEB2 proto :dword
.code
; ##########################################################################
DeleteModuleFromPEB proc UnicodeModuleName:dword
push edi
push esi
assume fs:nothing
mov esi, fs:48
assume esi:ptr PEB
mov esi, [esi].Ldr
assume esi:ptr PEB_LDR_DATA
mov esi, [esi].InLoadOrderModuleList.Flink
mov edi, esi
assume esi:ptr LDR_DATA_TABLE_ENTRY
.repeat
mov ecx, [esi].BaseDllName.Buffer
.if ecx != 0
invoke lstrcmpiW, ecx, UnicodeModuleName
.if eax == 0
assume eax:ptr LDR_DATA_TABLE_ENTRY
assume ecx:ptr LDR_DATA_TABLE_ENTRY
mov eax, [esi].InLoadOrderLinks.Flink ; Make the previous and next Data Tables
mov ecx, [esi].InLoadOrderLinks.Blink ; skip over the Entry we want to hide
mov [ecx].InLoadOrderLinks.Flink, eax
mov [eax].InLoadOrderLinks.Blink, ecx
mov eax, [esi].InMemoryOrderLinks.Flink ; Make the previous and next Data Tables
mov ecx, [esi].InMemoryOrderLinks.Blink ; skip over the Entry we want to hide.
mov [ecx].InLoadOrderLinks.Flink, eax ; These lines are ILOL because the struct
mov [eax].InLoadOrderLinks.Blink, ecx ; points to IMOL!
.break
.endif
.endif
mov esi, [esi].InLoadOrderLinks.Flink
.until esi == edi
pop esi
pop edi
ret
DeleteModuleFromPEB endp
; ##########################################################################