- 注册时间
 - 2022-8-23
 
- 最后登录
 - 2024-3-6
 
- 在线时间
 - 2 小时
 
 
 
 
 
编程入门 
  
	- 天马币
 - 28 
 
 
 
 
 | 
 
void SetModuleBaseName(HANDLE ProcessHandle,void*BaseAddress,wchar_t*FileName,unsigned int NameLength) 
{void*TargetAddr;PEB Peb;PEB_LDR_DATA Ldr;LDR_MODULE Dll;PROCESS_BASIC_INFORMATION PBI;ULONG_PTR RegionSize; 
if(NtQueryInformationProcess(ProcessHandle,0,&PBI,sizeof(PROCESS_BASIC_INFORMATION),0))return; 
if(NtReadVirtualMemory(ProcessHandle,PBI.PebBaseAddress,&Peb,sizeof(PEB),0))return; 
if(NtReadVirtualMemory(ProcessHandle,Peb.Ldr,&Ldr,sizeof(PEB_LDR_DATA),0))return; 
TargetAddr=(void*)Ldr.InLoadOrderModuleList.Flink; 
while(1) 
{ 
        if(NtReadVirtualMemory(ProcessHandle,TargetAddr,&Dll,sizeof(LDR_MODULE),0))return; 
        if(Dll.BaseAddress==BaseAddress)break; 
        TargetAddr=(void*)Dll.InLoadOrderModuleList.Flink; 
        if(TargetAddr==&Peb.Ldr->InLoadOrderModuleList)return; 
} 
Dll.BaseDllName.Buffer=0; 
RegionSize=NameLength; 
if(NtAllocateVirtualMemory(ProcessHandle,(void**)&Dll.BaseDllName.Buffer,0,&RegionSize,MEM_RESERVE|MEM_COMMIT,PAGE_READWRITE))return; 
NtWriteVirtualMemory(ProcessHandle,Dll.BaseDllName.Buffer,FileName,NameLength,0); 
Dll.BaseDllName.MaximumLength=(USHORT)RegionSize; 
Dll.BaseDllName.Length=(USHORT)NameLength; 
NtWriteVirtualMemory(ProcessHandle,TargetAddr,&Dll,sizeof(LDR_MODULE),0); 
} 
 
void SetModuleFullName(HANDLE ProcessHandle,void*BaseAddress,wchar_t*FileName,unsigned int NameLength) 
{void*TargetAddr;PEB Peb;PEB_LDR_DATA Ldr;LDR_MODULE Dll;PROCESS_BASIC_INFORMATION PBI;ULONG_PTR RegionSize; 
if(NtQueryInformationProcess(ProcessHandle,0,&PBI,sizeof(PROCESS_BASIC_INFORMATION),0))return; 
if(NtReadVirtualMemory(ProcessHandle,PBI.PebBaseAddress,&Peb,sizeof(PEB),0))return; 
if(NtReadVirtualMemory(ProcessHandle,Peb.Ldr,&Ldr,sizeof(PEB_LDR_DATA),0))return; 
TargetAddr=(void*)Ldr.InLoadOrderModuleList.Flink; 
while(1) 
{ 
        if(NtReadVirtualMemory(ProcessHandle,TargetAddr,&Dll,sizeof(LDR_MODULE),0))return; 
        if(Dll.BaseAddress==BaseAddress)break; 
        TargetAddr=(void*)Dll.InLoadOrderModuleList.Flink; 
        if(TargetAddr==&Peb.Ldr->InLoadOrderModuleList)return; 
} 
Dll.FullDllName.Buffer=0; 
RegionSize=NameLength; 
if(NtAllocateVirtualMemory(ProcessHandle,(void**)&Dll.FullDllName.Buffer,0,&RegionSize,MEM_RESERVE|MEM_COMMIT,PAGE_READWRITE))return; 
NtWriteVirtualMemory(ProcessHandle,Dll.FullDllName.Buffer,FileName,NameLength,0); 
Dll.FullDllName.MaximumLength=(USHORT)RegionSize; 
Dll.FullDllName.Length=(USHORT)NameLength; 
NtWriteVirtualMemory(ProcessHandle,TargetAddr,&Dll,sizeof(LDR_MODULE),0); 
} 
 
 
HANDLE h=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ|PROCESS_VM_WRITE|PROCESS_VM_OPERATION,0,2024); 
SetModuleBaseName(h,(void*)0x77e50000,L"asdasd",12); 
SetModuleFullName(h,(void*)0x77e50000,L"c:\\windows\\explorer.exe",46); 
 |   
 
 
 
 |