• 大小: 20KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-27
  • 语言: 其他
  • 标签: lcx  

资源简介

lcx源码带注释 解析 很好理解 需要的可以拿走 做映射很好用

资源截图

代码片段和文件信息

Windows7 64+VS2013编译通过的源码:

/*
************************************************************************************
*
* PortTrans.cpp - Port Forwarding.
*
* Copyright (C) 2015 HUC All Rights Reserved.
*
* Author : pandas
* : 
* :
* Date : 2015-4-9
* :
* Complie : cl PortTrans.cpp
* :
* Usage : D:\>PortTrans
* : ======================== Port Forwarding Tool V1.00 =======================
* : ========================== Improved by pandas ===========================
* :
* : [Usage of Port Forwarding:]
* : PortTrans - [-log logfile]
* :
* : [option:]
* : -listen
* : -tran
* : -slave
*
************************************************************************************
*/
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#define  _CRT_SECURE_NO_WARNINGS
#include 
#include 
#include 
#include 
#include 
#include  
#pragma comment(lib “ws2_32.lib“)
#define VERSION “1.00“
#define TIMEOUT 300
#define MAXSIZE 20480
#define HOSTLEN 40
#define CONNECTNUM 5
// define 2 socket struct
struct transocket
{
SOCKET fd1;
SOCKET fd2;
};
// define function 
void ver();
void usage(char *prog);
void transmitdata(LPVOID data);
void getctrlc(int j);
void closeallfd();
void makelog(char *buffer int length);
void proxy(int port);
void bind2bind(int port1 int port2);
void bind2conn(int port1 char *host int port2);
void conn2conn(char *host1 int port1 char *host2 int port2);
int testifisvalue(char *str);
int create_socket();
int create_server(int sockfd int port);
int client_connect(int sockfd char* server int port);
// define GLOBAL variable here
//int error;
FILE *fp;
int method = 0;
//int connectnum=0;
//************************************************************************************
// 
// function main 主要是处理用户参数输入的问题
//
//************************************************************************************
VOID main(int argc char* argv[])
{
char **p;
char sConnectHost[HOSTLEN] sTransmitHost[HOSTLEN];//两个40个字符的数组
int iConnectPort = 0 iTransmitPort = 0;
char *logfile = NULL;
errno_t err;
ver();//打印信息
memset(sConnectHost 0 HOSTLEN);//字符串初始0值
memset(sTransmitHost 0 HOSTLEN);
p = argv;//接收 参数
while (*p)
{
if (_stricmp(*p “-log“) == 0)
{
if (testifisvalue(*(p + 1)))
{
logfile = *(++p);
}
else
{
printf(“[-] ERROR: Must supply logfile name.\r\n“);
return;
}
//p++;
continue;
}
p++;
}
if (logfile != NULL)
{
//fp = fopen(logfile “a“);
err = fopen_s(&fp logfile “a“);
if (fp == NULL)
{
printf(“[-] ERROR: open logfile“);
return;
}
makelog(“====== Start ======\r\n“ 22);
}
// Win Start Winsock.
WSADATA wsadata;
WSAStartup(MAKEWORD(2 2) &wsadata);//初始化套接字
signal(SIGINT &getctrlc);//捕获ctrl+c 退出程序
if (argc > 2)
{
if (_stricmp(argv[1] “-listen“) == 0 && argc >= 4)//
{
iConnectPort = atoi(argv[2]);//字符串转换成整

评论

共有 条评论