38.第二阶段x64游戏实战-封包-改造封包劫持工具(一)
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
本次游戏没法给
内容参考于:微尘网络安全
上一个内容:37.第二阶段x64游戏实战-封包-寻找Socket套接字
首先给列表添加一个双击事件(双击时执行的代码)
然后
双击事件的代码
// 把内容复制到剪贴板,在百度搜的
void CopyCStringToClipboard(CWnd* pWnd, CString strText)
{if (!pWnd || strText.IsEmpty())return; // 如果窗口指针为空或字符串为空,则直接返回// 打开剪贴板if (!pWnd->OpenClipboard())return; // 如果无法打开剪贴板,则直接返回// 清空剪贴板::EmptyClipboard();// 分配全局内存块来保存字符串HGLOBAL hClipboardData = GlobalAlloc(GMEM_DDESHARE, strText.GetLength() + 1);char* pchData = (char*)GlobalLock(hClipboardData);// 将CString转换为标准C字符串并复制到全局内存块_tcscpy_s(pchData, strText.GetLength() + 1, strText);GlobalUnlock(hClipboardData);// 将数据设置到剪贴板(文本格式)::SetClipboardData(CF_TEXT, hClipboardData);// 关闭剪贴板::CloseClipboard();}
void MyDialog::OnNMDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
{LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);// TODO: 在此添加控件通知处理程序代码*pResult = 0;int index = m_list.GetSelectionMark();if (index != -1){//LogA("%d", index);// 把内容复制到剪贴板CopyCStringToClipboard(this, m_list.GetItemText(index, 1));GetDlgItem(IDC_EDIT1)->SetWindowTextA("");GetDlgItem(IDC_EDIT2)->SetWindowTextA("");GetDlgItem(IDC_EDIT1)->SetWindowTextA(m_list.GetItemText(index, 0));GetDlgItem(IDC_EDIT2)->SetWindowTextA(m_list.GetItemText(index, 1));}
}
然后添加两个输入框
然后添加一个按钮
输入框的id
输入框的id
双击之后的效果:会把双击那行的数据放到输入框和剪切板(也就是CTRL+C的功能)
下方是发送了4次聊天数据,内容分别是11111、22222、33333、44444,顺序也是先发的11111、22222、33333、44444,然后通过对比可以发现相同的
A222110000 2F000 5000000 3131313131 00FFFFFFFF00FFFFFFFF0000000000
A222110000 31000 5000000 3232323232 00FFFFFFFF00FFFFFFFF0000000000
A222110000 34000 5000000 3333333333 00FFFFFFFF00FFFFFFFF0000000000
A222110000 38000 5000000 3434343434 00FFFFFFFF00FFFFFFFF0000000000
可以发现 A222110000、5000000、00FFFFFFFF00FFFFFFFF0000000000这三部分是相同的
2F000 和 3131313131 这一列数据是不同的,3131313131是聊天内容11111,这个 2F000 通过观察它是递增的,后面的数据包要比前面的数据包大,这里直接说答案 2F000 这一列是计数器,很多网络游戏发包的时候都会有计数器,这个计数器很重要,需要我们去找它的基址,否则我们伪造的数据包发过去就会掉线(有些游戏可能也没事,最好还是符合规则)