首页
社区
课程
招聘
[旧帖] [原创]编写端口监视工具 0.00雪花
发表于: 2009-12-14 12:32 3667

[旧帖] [原创]编写端口监视工具 0.00雪花

2009-12-14 12:32
3667

【破文标题】编写端口监视工具 
【破文作者】demoscene
【作者邮箱】
【工具】VC++6.0
【平台】xp sp3
【软件简介】我以前写的一个东西
------------------------------------------------------------------------------------------------
【声明】得到了某大牛对我指点,我决定在论坛发表我的笫一篇文章,再次感谢大牛的指点!
------------------------------------------------------------------------------------------------

有一天(具体是哪一天我忘记了),一)时心血来潮,想学网络编程,就学了两天 ,写了这个所谓的端口监听工具

大牛别笑,虽然这东西和驱动防为墙这些比起来或许没什么技术含量,但是对我这种小鸟来说 ,想法和在编写的过程中遇到问并解决是能学到很多东西的。

其实我写这个东西的时候只看了书中介绍怎么写一个聊天工具,就想利用这一点东西能不能写出一点东西,聊天工具是不想写了,因为网上这样的文章一大把,大部分介绍网络编程的书都会用聊天工具作为例子,想想聊天工具中服务端

是通过监听某一特定的端口来接收消息的,又联想到防火墙中也有监听端口的功能,于是就想到我也可以用这种方法来实现监听端口的功能,但是书中介绍的聊天工具只是监听一个端口,怎么实现监听多个端口呢?
对了,我们可以用多线程,要监听多少个端口我们就开多少个线程,虽然这样效率低下,恕我愚昧,我只能想到这种方法,我知道防火墙用的肯定不是这种方法

设计如下:
1.为了让程序不那么死板,我们让程序能作一些参数的设置:
1.要监听的端口
2.发现有人连接到被监听的端口时是否声音提示
3.程序运行时是否显示程序窗口
我们用一个文件config.ini 来保存这些参数信息
来看看config.ini

其中ShowWindow字段表示是否显示端口,1表示显示,0表示不显示
sound字段表示是否有提示声音,1表示有,0表示没有
port字段表示要监听的端口,各端口这间用 '-' 隔开
2. 当有人连接到我们的端口的时候我们给出提示,对方连接的时间日期,连接我们的哪个端口,对方的IP,并给            对方发送一条人们自定义的消息,消息内容,人们作文件Message.ini来保存
当对方断开连接的时候,我们同样给出对方的IP,断开的日期时间,
我们来看看Message.ini,里面是随便的一些信息

3.我们用文件 log.log来保存所有的日志记录,方便我们不在的时候可以在以后查看

有了思路,我们开工
打开 VC6.0 新建一个工程,Win32 Console Application,输入工程名HoneyPot,确定,选择一个支持MFC的程序(用MFC是为了在写多线程的时候可以偷一下懒,
                                    


// HoneyPot.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "HoneyPot.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// The one and only application object

CWinApp theApp;

using namespace std;

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
  int nRetCode = 0;
  
  // initialize MFC and print and error on failure
  if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
  {
    // TODO: change error code to suit your needs
    cerr << _T("Fatal Error: MFC initialization failed") << endl;
    nRetCode = 1;
  }
  else
  {
    // TODO: code your application's behavior here.
    CString strHello;
    strHello.LoadString(IDS_HELLO);
    cout << (LPCTSTR)strHello << endl;
  }
  
  return nRetCode;
}


#include "stdafx.h"
#include "HoneyPot.h"
#include "stdio.h"
#include "winsock2.h"  //Winsock头文件
#include "conio.h"
#pragma comment (lib,"ws2_32")   //ws2_32.lib库
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

CWinApp theApp;

using namespace std;

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
  int nRetCode = 0;
  
  if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
  {
    cerr << _T("Fatal Error: MFC initialization failed") << endl;
    nRetCode = 1;
  }
  else
  {
    //我们在这里开始我们的代码
    system("title 系紧要微型蜜罐系统1.0");   //调用DOS设置标题
    cout<<"Listening..........."<<endl;
    HWND hWnd=FindWindow("ConsoleWindowClass",NULL);   
    char Text[22]={'0'};
    char Text2[]="系紧要微型蜜罐系统1.0";
    readport();  //调用readport函数
  }
  
  return nRetCode;
}


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (19)
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
哇 厉害啊   看不懂
2009-12-16 01:46
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
为什么大家都是用MFC 没有人用VISUAL C++啊
2009-12-16 03:51
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
下走瞅瞅去,谢谢楼主。
2009-12-16 14:37
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
很不错,不过我用VB,看不懂
2009-12-16 15:53
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
很好 很强大的软件啊
2009-12-16 17:53
0
雪    币: 41
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
很好,能实现数据拦截功能吗
2009-12-17 14:16
0
雪    币: 218
活跃值: (62)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
楼主太厉害了学了两天网络编程,就写了端口监听工具。佩服佩服
2009-12-17 17:00
0
雪    币: 201
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
楼主是牛人!!
2009-12-17 21:08
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
太精彩,学习ing。感谢楼主的无私。
2009-12-17 22:12
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
厉害!学习中!是不是破解都最好用VC++6.0之类的!
2009-12-18 12:58
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
厉害,支持原创。收藏了
2009-12-18 13:44
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
哦,对了,如果能实现数据拦截就成了防火墙了啊
2009-12-19 07:59
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
很不错收藏了..
2009-12-19 08:03
0
雪    币: 509
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
收藏,慢慢学习
2009-12-19 11:59
0
雪    币: 105
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
16
很好很强大,谢谢
2009-12-19 12:31
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
是不是真的?
2009-12-19 13:51
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
学习学习学习学习
2009-12-19 14:22
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
很长 以前玩过类似的监听收到的数据包
2009-12-19 15:02
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
收藏  楼主厉害了  学习
2009-12-21 10:52
0
游客
登录 | 注册 方可回帖
返回
//