网络通信数据包分析工具 1

如果没有工具我们就创造工具

一个数据包是怎么组织、解读的,可以通过逆向分析去分析,但是通过逆向分析去分析只适用于一两个数据,大量的数据分析的话成本太高了。

技术这个东西从语法会了,再到追求技巧,代码怎么写速度快,再往后就开始追求感觉上的东西,到后面看一眼,猜一下,就能知道个八九不离十。--第六感

拿到一段数据,客户端解读,不同的数据客户端解读方式不太可能不一样,有解读方式那肯定要有解读的图纸,没有提前的规划那也要有系统性的解读

  1. 如果用的是图纸:A数据包用的a号图纸去解读 把这个数据包定义成结构体,放到结构体里就行,拿到结构体的定义就行了
  2. 系统性方法: 我们就要将系统性的方法破解出来,写成算法,然后用这种系统性的方法去还原数据,组织数据

正常拿个文本去看也没啥问题,但就是比较累

分析工具的设计

  1. 显示通信数据包内容,根据数据包类型进行分别显示
  2. 能够显示鼠标选中的所有可能内容  (就是各种表示形式)
  3. 能够输出内容到文件
  4. 争取能应用到不同的项目中(所有网络通信核心就2个,第一:数据包,第二: 长度,最多加个类型)
  5. 拥有过滤机制

直接创建一个新项目

UI绘制略

BOOL CDataAnlyDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* p)
{
    lstView.InsertItem(0, (LPCTSTR)p->lpData);
    return CDialogEx::OnCopyData(pWnd, p);
}

添加个消息。

    wchar_t buff[]{ L"正在连接网络" };

    COPYDATASTRUCT copydata{};
    copydata.dwData = 0;
    copydata.cbData = sizeof(buff);
    copydata.lpData = buff;
    HWND hwnd = FindWindow(L"#32770", L"DataAnly");
    SendMessage(hwnd, WM_COPYDATA, 0, (LPARAM)&copydata);//别的程序就要提供cwnd

在那个Connect的Hook的地方写入上面这段。

测试可以发送过来数据

bool MsgType[5]
    {
        true,true,false,false,false
    };

    wchar_t MsgName[5][0xFF]
    {
        L"发送",  //data 000
        L"接收",//data 000
        L"发送解析",
        L"接收解析",
        L"日志"
    };
    /*
    0 发送数据
    1 接收数据
    2 发送数据解析
    3 接收数据解析
    4 日志
    */

 再把这个功能封装好

#include "pch.h"
#include "CAnly.h"
#ifdef Anly

LRESULT CAnly::SendData(int type, void* buff, unsigned len)
{
    COPYDATASTRUCT copydata{};
    copydata.dwData = type;
    copydata.cbData = len;
    copydata.lpData = buff;
    HWND hWnd = FindWindow(L"#32770", L"DataAnly");
    if (hWnd)return SendMessage(hWnd, WM_COPYDATA, 0, (LPARAM)&copydata);
    return 0;
}
#endif

完善到HOOK的一系列函数中 测试下

bool GameWinSock::OnSend(char* buf, unsigned len)
{
#ifdef Anly
    anly ->SendData(0,buf,len);
#endif
    return (this->*_OnSend)(buf,len);
}

bool GameWinSock::OnRecving(char* buf, unsigned len)
{
#ifdef Anly
    anly->SendData(1, buf, len);
#endif
    return true;
}

登录这个数据机关枪一样射过来了

数据量极大,但功能也是初步做好了丢丢

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

#A#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值