当前位置: 首页 > news >正文

门户网站建设 总结赞助网站怎么做

门户网站建设 总结,赞助网站怎么做,o2o信息类平台有哪些,上海最近新闻事件内容参考于#xff1a;易道云信息技术研究院VIP课 上一个内容#xff1a;接管游戏连接服务器的操作 码云地址#xff08;master 分支#xff09;#xff1a;染指/titan 码云版本号#xff1a;00820853d5492fa7b6e32407d46b5f9c01930ec6 代码下载地址#xff0c;在 ti…内容参考于易道云信息技术研究院VIP课 上一个内容接管游戏连接服务器的操作 码云地址master 分支染指/titan 码云版本号00820853d5492fa7b6e32407d46b5f9c01930ec6 代码下载地址在 titan 目录下文件名为titan-接管游戏发送数据的操作.zip 链接https://pan.baidu.com/s/1W-JpUcGOWbSJmMdmtMzYZg 提取码q9n5 --来自百度网盘超级会员V4的分享 HOOK引擎文件名为黑兔sdk升级版.zip 链接https://pan.baidu.com/s/1IB-Zs6hi3yU8LC2f-8hIEw 提取码78h8 --来自百度网盘超级会员V4的分享 以 接管游戏连接服务器的操作 它的代码为基础进行修改 首先通过 通过逆向分析确定游戏明文发送数据过程 分析得出数据发送的位置然后它与connect用的是同一个对象所以还是可以用虚函数表如下图虚函数表3C位置是的函数里调用了send函数 然后它的参数第一个参数是发送的数据包第二个数据是发送的数据包的长度它的返回值是一个bool类型如下图它的返回值是alal寄存器是1字节 然后通过下图两个红框位置的赋值操作也能看出这是一个bool类型true是1false是0 它的函数原型 bool GameWinSock::Send(char* buff, int len); 模拟游戏发送数据首先现在无法制作游戏的数据包所以用游戏生成一个数据包复制出来 通过按钮发送聊天数据 资源视图新加按钮 CUIWnd_0.cpp文件的修改新加新加按钮点击事件 // CUIWnd_0.cpp: 实现文件 //#include pch.h #include htdMfcDll.h #include CUIWnd_0.h #include afxdialogex.h #include extern_all.h// CUIWnd_0 对话框IMPLEMENT_DYNAMIC(CUIWnd_0, CDialogEx)CUIWnd_0::CUIWnd_0(CWnd* pParent /*nullptr*/): CDialogEx(IDD_PAGE_0, pParent) {}CUIWnd_0::~CUIWnd_0() { }void CUIWnd_0::DoDataExchange(CDataExchange* pDX) {CDialogEx::DoDataExchange(pDX); }BEGIN_MESSAGE_MAP(CUIWnd_0, CDialogEx)ON_BN_CLICKED(IDC_BUTTON1, CUIWnd_0::OnBnClickedButton1) END_MESSAGE_MAP()// CUIWnd_0 消息处理程序void CUIWnd_0::OnBnClickedButton1() {char buff[] {0xA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x4, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x02, 0x01, 00 ,0x00,0x00, 0x07, 0x0E, 0x00, 0x00, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x31, 0x00, 0x32 ,0x00,0x33, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};WinSock-OnSend(buff, sizeof(buff)); }GameWinSock.cpp文件的修改新加 OnSend函数、_OnSend函数指针变量 #include pch.h #include GameWinSock.h #include extern_all.hGameWinSock::PROC GameWinSock::_OnConnect{}; GameWinSock::PROC GameWinSock::_OnSend{}; // 这个函数拦截了游戏的连接 bool GameWinSock::OnConnect(char* ip, unsigned port) {// this是ecxHOOK的点已经有ecx了WinSock this;bool b (this-*_OnConnect)(ip, port);// 下方注释的代码时为了防止多次注入导致虚函数地址不恢复问题导致死循环通过一次性HOOK也能解决/*unsigned* vtable (unsigned*)this;vtable (unsigned*)vtable[0];union {unsigned value;bool(GameWinSock::* _proc)(char*, unsigned);} vproc;vproc._proc _OnConnect;DWORD oldPro, backProc;VirtualProtect(vtable, 0x10x00, PAGE_EXECUTE_READWRITE, oldPro);vtable[0x34 / 4] vproc.value;VirtualProtect(vtable, 0x10x00, oldPro, backProc);*/return b; }bool GameWinSock::OnSend(char* buff, unsigned len) {/*这里就可以监控游戏发送的数据了*/return (this-*_OnSend)(buff, len);; }GameWinSock.h文件的修改新加 OnSend函数、_OnSend函数指针变量 #pragma once class GameWinSock {typedef bool(GameWinSock::* PROC)(char*, unsigned); public:static PROC _OnConnect;static PROC _OnSend;bool OnConnect(char* ip, unsigned port);bool OnSend(char* buff, unsigned len); }; GameProc.cpp文件的修改修改了 _OnConnect函数 #include pch.h #include GameProc.h #include extern_all.h// typedef bool(GameWinSock::* U)(char*, unsigned);bool _OnConnect(HOOKREFS2) {/*根据虚函数表做HOOK的操作截取 ecx 获取 winsock 的值(指针)*/unsigned* vtable (unsigned*)_EDX;//WinSock (GameWinSock *)_ECX;/*联合体的特点是共用一个内存由于 GameWinSock::OnConnect 的 OnConnect函数是 GameWinSock类的成员函数直接 vtable[0x34 / 4] (unsigned)GameWinSock::OnConnect; 这样写语法不通过所以使用联合体让语法通过*/union {unsigned value;bool(GameWinSock::* _proc)(char*, unsigned);} vproc;DWORD oldPro, backProc;VirtualProtect(vtable, 0x100, PAGE_EXECUTE_READWRITE, oldPro);/*vproc._proc GameWinSock::OnConnect; 这一句是把我们自己写的调用connect函数的地址的出来*/ vproc._proc GameWinSock::OnConnect; /*InitClassProc函数里做的是给指针赋值的操作InitClassProc(GameWinSock::_OnConnect, vtable[0x34/4]);这一句的意思是把GameWinSock类里的_OnConnect变量的值赋值成vtable[0x34/4]这个 vtable[0x34/4] 是虚表里的函数vtable[0x34/4]是游戏中调用connect函数的函数地址经过之前的分析调用connect是先调用了虚表中的一个函数然后从这个函数中调用了connect函数*/InitClassProc(GameWinSock::_OnConnect, vtable[0x34/4]);vtable[0x34 / 4] vproc.value;vproc._proc GameWinSock::OnSend;InitClassProc(GameWinSock::_OnSend, vtable[0x3C / 4]);vtable[0x3C / 4] vproc.value;VirtualProtect(vtable, 0x100, oldPro, backProc);return true; }GameProc::GameProc() {hooker new htd::hook::htdHook2();Init();InitInterface(); }void GameProc::LoadBase() {LoadLibraryA(fxnet2.dll); }void GameProc::Init() { }void GameProc::InitInterface() {LoadBase();MessageBoxA(0, 1, 1, MB_OK);// 只会HOOK一次一次性的HOOKhooker-SetHook((LPVOID)0x10617046, 0x1, _OnConnect, 0, true); }
http://www.dnsts.com.cn/news/207712.html

相关文章:

  • wordpress编辑模板标题深圳seo优化推广公司
  • 垂直门户网站wordpress二手车模板
  • 湘潭交通网站怎么做简易手机网站
  • wordpress全站音乐wordpress小工具自定义
  • 能利用双股铜芯电话线做网站吗网站不兼容ie6
  • 南宁网站建设方案报价装修设计师在哪里找
  • 河北外贸网站建设深圳做网站排名哪家好
  • 网站流量统计怎么做的wordpress 微信主体
  • 北京市优化网站建设网站后期人员薪酬
  • 大师摄影作品网站做网站软件的
  • 百度上做网站重庆比较好的广告公司
  • 网站登录密码忘记怎么办吉林seo技术交流
  • 作品展示html5网站模板南昌做网站公司
  • 软文写作案例付费做网站关键词优化是怎么做的呀
  • 中天建设集团有限公司总网站大连做网站电话
  • 如何在百度上做网站推广开发游戏用什么编程软件
  • 合肥电信网站备案滴滴一年亏损109亿
  • 怎样做网站管理国外 外贸 网站 源码
  • 大型网站 php网站备案流程及步骤
  • 在线画画网站笔记本网站开发背景
  • 九江集团网站建设公司营销型企业网站案例
  • 什么是网站开发框架北京南站附近景点
  • 网站psd模版在网站做登记表备案 如果修改
  • 企业做网站怎么做个人crm
  • 网站的规划和建设方案站长素材音效下载
  • 糯米团网站怎么做wordpress美容主题
  • php网站开发综合案例公司代运营
  • 个人网站开发的意义公司网站需要服务器吗
  • 五大搜索引擎 三大门户网站网站怎么建设以及维护
  • 廊坊seo霸屏河南网站推广优化