介绍 . DebugView 并非微软的那款DebugView工具,而是我自己写的显示包数据的工具。用途在于最近分析一款程序做类似脱机的东西。(不是外挂。)方便自己观察分析每次程序与硬件,程序与服务器发包的顺序流程,收包数据。来辅助自己完成工作的产物。不过这款工具不是万能的,你需要自行找到发送点并且自己进行做HOOK。 使用[C++] 纯文本查看 复制代码 [/align][align=left]#include <windows.h>
int main(int argc, char* argv[])
{
BYTE bbbbb[0x31] = {
0x06, 0xE0, 0x02, 0x51, 0x20, 0x10, 0x00, 0x00, 0x00, 0x04, 0x63, 0x00, 0x00, 0x00, 0xF7,
0x01, 0x01, 0xFF, 0xFF, 0x00, 0x1B, 0x00, 0xFF, 0x0F, 0x00, 0x05, 0x02, 0x0};
HWND m_hwnd = ::FindWindow(NULL, "DebugView");
if (m_hwnd != NULL)
{
COPYDATASTRUCT data = { 0 };
data.lpData = (LPVOID)bbbbb;
data.cbData = 31;
data.dwData = 2;
::SendMessage(m_hwnd, WM_COPYDATA, NULL, (LPARAM)&data);
}
return 0;
} 显示. 在程序中我设置的命令为: send: 1
recv: 2
WriteFile: 3
ReadFile: 4
. 分别对应send,recv,writeFile,readFile。标签 . All为显示所有的包,以收到的顺序来显示。srAll为显示所有send/recve网络发收包。wrAll为显示所有的WriteFile/ReadFile。 Edit框. 点击每一列收到的包将会在下面的EDIT以16进制方式显示。 .Edit鼠标右键 . 复制所有数据:将当前EDIT内显示的复制到剪切板 . 复制十六进制数组:将当前包的十六进制复制到剪切板,每行十六个为一行。。 . 生成C数组:将当前包的数据生成一个C数组,可以直接使用。 过滤器功能. 程序实现了对收到的包进行过滤的过滤器功能,使用为每次先点击【添加】按钮添加一行list,然后对需要过滤的字节在某一位偏移双击进行填入过滤的数据。每个数据为BYTE类型。所以你不能填入超过FF的数据。 . 添加完后点击【确定】即可保存过滤内容开始过滤后续收到的包。 过滤器有三种: . 停止过滤:接收所有发送过来的数据 . 过滤包:收到的包会先检查过滤列表中是否存在,存在则不保留,直接丢弃。不存在过滤内容则保留,并且显示在列表中。 . 非过滤包:收到的包会先检查过滤列表中是否存在,存在则保留,并且显示在列表中。不存在过滤内容则丢弃。 下载程序是开源的,VS2013,MFC工程。初学MFC的可以参考下。
|