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

陕西 建设工程有限公司网站自己电脑做的网站如何映射到公网

陕西 建设工程有限公司网站,自己电脑做的网站如何映射到公网,网站的管理维护,域名需要购买吗内容参考于#xff1a;易道云信息技术研究院VIP课 上一个内容#xff1a;项目需求与需求拆解-CSDN博客 码云地址#xff08;ui显示角色数据 分支#xff09;#xff1a;https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号#xff1a;453dd83d54140d2e1ee65c9…内容参考于易道云信息技术研究院VIP课 上一个内容项目需求与需求拆解-CSDN博客 码云地址ui显示角色数据 分支https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号453dd83d54140d2e1ee65c915ed2cede543f7400 代码下载地址在 SRO_EX 目录下文件名为SRO_Ex-物品使用的逆向分析与C代码的封装.zip 链接https://pan.baidu.com/s/1W-JpUcGOWbSJmMdmtMzYZg 提取码q9n5 --来自百度网盘超级会员V4的分享 HOOK引擎文件名为黑兔sdk.zip 链接https://pan.baidu.com/s/1IB-Zs6hi3yU8LC2f-8hIEw 提取码78h8 --来自百度网盘超级会员V4的分享 以 82.网游逆向分析与插件开发-背包的获取-装备栏数据与算法的C还原-CSDN博客 它的代码为基础进行修改 选择从网络的地方去下手因为网络这个东西是它肯定避不开的环节这是一个非常好的下手点网络游戏整个逆向或者说但凡有统一就是所有东西都会访问一个函数这种反而会分析起来难度比其它的难度要低非常多。 然后梳理一下思路首先使用物品这时发出ui的消息这个时候它一定会换算成网络消息然后网络消息会经过一个组合然后经过一个加密然后经过一个发送这就是它的一个大概的情况这整个流程里面只有一个最好切入就是发送这个地方最好切入使用ui的地方消息太多了处理起来肯定会很麻烦然后组合什么的都是算法这东西没有一个明确的点没有一个明确的特征所以找不着然后到了发送的地方就简单了因为网络的发送就是围绕着send函数和wsasend函数或sendto等函数所以可以对这几个函数下断点来回溯它整个过程然后分析过程中有一个要点就是分析的时候会发现一个问题发现它用了send函数或wsasend函数这个时候一路往回找但是要在哪停呢比如第一次找去找到跟ui相关的跟ui相关的会看到跟消息有关的函数然后接下来再往后这个时候要随时观察函数的参数只要在参数里发现可以辨别的东西那这个东西就基本找到了所以有几个东西是需要密切关注的比如物品的指针或者说数组它的序号等这些信息比较重要所以要随时观察什么时候出现了这些数据就很关键就知道什么时候停了。 然后打开x96dbg下断点首先是send函数 然后是sendto函数sendto一般在聊天软件里用的比较多 然后WSASend函数它可以实现iocpiocp例子它是异步的在新的游戏里用的比较多 然后可以发现WSASend会触发断点那基本上就可以确认是它了然后它会不停的断下来会有干扰 然后游戏不动它也会停下来原因是游戏为了保证安全它有心跳包这个时候最好找到它的长度通过条件断点筛选掉或者眼疾手快点然后使用物品使用一个药物然后它的id是应该是5912或者5913然后因为现在以及知道它背包的物品是一个指针的数组所以如果服务器响应这个东西就要告诉服务器要用哪个物品所以应该会给服务器发送一个可以证明是哪一个物品的数据如果是数组的话使用序号的可能性要大然后下图红框位置的物品数组下标是22然后也可能是5912或者5913所以看到这几个数据要敏感 然后接下来眼疾手快一点使用物品然后就断下来了 然后断点住后把断点取消掉再往上跟否则它会乱 然后一直ctrlf9再按f8大致的过一遍看看到什么位置就过不去了然后就会看到在下图红框位置就结束了这说明在循环里然后下图红框位置附近有Sleep函数这个Sleep函数一般跟消息靠的比较近现在就大概知道它是一个什么情况了函数很长然后接着往下看 这么长的函数该怎样处理首先要分清楚它的一个结构就是游戏它有各种操作比如a操作使用物品b操作走路c操作心跳包d操作使用技能它们都会走到网络的部分发送数据刚刚经历的一系列函数假设a是使用物品那么它有一部分是属于a使用物品的它的前面还有ui管理或者消息管理的一部分如果要精确的找到a的过程才能去分析它刚刚的一系列操作该怎样排除ui或者send呢倒着分析的逻辑的话是不需要排除ui的只需要排除网络的部分不可能在WSASend函数分析使用物品的逻辑所以该怎样排除WSASend函数然后ABCD这四个操作它基本上是共用或者部分共用这个send函数就是共用网络发送的部分网络发送的函数它一定是由N个函数构成也就是说在ABCD所有的操作它到最后都会跑到send函数里如果现在处在A的操作里面就会只有A操作能触发就比如走路它就一定不触发A操作使用使能也不会触发A操作只有使用物品触发A操作所以通过这一点就可以很容易的定位到A操作所以接下来重新回到WSASend函数里ctrlf9再按f8每按一次都在上一行代码调用函数的位置打断点然后走路或者执行一个非使用物品的操作看看是否还会触发断点如果触发就接着在断点位置使用一次物品然后继续往上跟ctrlf9再按f8这个操作然后一路这样打断点做非使用物品的操作最终来到下图位置0x860A43它并不会被其它操作影响只会在使用物品的时候断下来 但是这个函数并不怎样理想它的参数看不懂ecx的数据也看不懂这没关系因为游戏它组织数据的时候一定也是循序渐进的所以就继续往前找一定能找到一个能看懂的地方这个时候才好切入 然后ctrlf9再按f8来到上一层关键点 0x74688F 然后它的参数0x85F640函数的入参它有三个入参通过0x85F640函数的返回也就是ret位置看出的它是ret c所以是三个参数然后通过下图可以看出其中一个参数是索引使用的物品正好是22 然后使用第一个物品eax的值是0所以它是索引然后0x85F640函数就是使用物品的函数它是0x1256E3C类里的成员函数这个0x1256E3C之前已经用C封装过了也就是SRO_Control类的成员函数 效果图可以正常使用物品了 总结 在盲分析的情况下可以发现是非常需要依赖参数的能看懂参数会省很大的劲可以尝试在0x74688F位置往上跟一层看看它的入参看看它的触发机制还有下图所示的物品栏是不是也能通过 0x74688F 位置分析到 新加按钮 GameBase.cpp文件的修改修改了 Init函数 #include pch.h #include GameBase.hGameBase* _pgamebase;void GameBase::Init() {unsigned* addrRead (unsigned*)0x1256E3C;SRO_Res (PRes)0x1036518;SRO_Control (PControl)addrRead[0];addrRead (unsigned*)0x1037D3C;SRO_Player (PAIM)addrRead[0];InitClassProc(Res::_ReadTitle, 0x9A46C0);InitClassProc(Res::_ReadItemTitle, 0x9A4640);InitClassProc(Control::_NormalNotice, 0x848580);InitClassProc(Control::_NetNotice, 0x844E40);InitClassProc(Control::_ChatNotice, 0x844E80);InitClassProc(Control::_GetPPack, 0x866140);InitClassProc(Control::_UseItem, 0x85F640);InitClassProc(ITEM::_GetItemRes, 0x995800);InitClassProc(Pack::_GetPackPack, 0x7722C0);InitClassProc(Pack::_GetEquipPack, 0x772300);}void GameBase::InitClassProc(LPVOID proc_addr, unsigned value) {unsigned* uWrite (unsigned*)proc_addr;uWrite[0] value; }GameBase::GameBase() {_pgamebase this;// Init();// 初始化机制完成游戏与我们dll的对接 }Control.h文件的修改新加 PROC_D_D_D函数指针类型、_UseItem函数指针变量、UseItem函数声明 #pragma once #include SRO_String.h #include Pack.h typedef class Control {typedef PPack (Control::* PROC)();typedef void (Control::* PROC_PSROSTR)(PSROSTRING);typedef void (Control::* PROC_D_PWSTR_D_D)(int, wchar_t*, int, int);typedef void (Control::* PROC_D_D_D)(int, int, int); public:static PROC _GetPPack;static PROC_PSROSTR _NormalNotice;static PROC_PSROSTR _NetNotice;static PROC_D_PWSTR_D_D _ChatNotice;static PROC_D_D_D _UseItem; public:void NormalNotice(PSROSTRING _txt);void NetNotice(PSROSTRING _txt);void ChatNotice(wchar_t* _txt, int color0xFFFFAEC3, int type10x3, int type20x1);void UseItem(int index, int p1 -1, int p2 -1);PPack GetPPack(); }*PControl; Control.cpp文件的修改新加 UseItem函数、_UseItem变量初始化 #include pch.h #include Control.hControl::PROC Control::_GetPPack{}; Control::PROC_PSROSTR Control::_NormalNotice{}; Control::PROC_PSROSTR Control::_NetNotice{}; Control::PROC_D_PWSTR_D_D Control::_ChatNotice{}; Control::PROC_D_D_D Control::_UseItem{};void Control::NormalNotice(PSROSTRING _txt) {(this-*_NormalNotice)(_txt); }void Control::NetNotice(PSROSTRING _txt) {(this-*_NetNotice)(_txt); }/**type1 默认0x3type2 默认0x1 */ void Control::ChatNotice(wchar_t* _txt, int color, int type1, int type2) {(this-*_ChatNotice)(type1, _txt, color, type2); }void Control::UseItem(int index, int p1, int p2) {(this-*_UseItem)(index, p1, p2); }PPack Control::GetPPack() {return (this-*_GetPPack)(); }CUIWnd_1.cpp文件的修改新加OnBnClickedButton3函数OnBnClickedButton3函数是Button3按钮的点击事件处理函数 // CUIWnd_1.cpp: 实现文件 //#include pch.h #include htdMfcDll.h #include CUIWnd_1.h #include afxdialogex.h #include extern_all.h// CUIWnd_1 对话框IMPLEMENT_DYNAMIC(CUIWnd_1, CDialogEx)CUIWnd_1::CUIWnd_1(CWnd* pParent /*nullptr*/): CDialogEx(IDD_PAGE_1, pParent) {}CUIWnd_1::~CUIWnd_1() { }void CUIWnd_1::DoDataExchange(CDataExchange* pDX) {CDialogEx::DoDataExchange(pDX);DDX_Control(pDX, IDC_LIST1, lstPack); }BEGIN_MESSAGE_MAP(CUIWnd_1, CDialogEx)ON_BN_CLICKED(IDC_BUTTON1, CUIWnd_1::OnBnClickedButton1)ON_BN_CLICKED(IDC_BUTTON2, CUIWnd_1::OnBnClickedButton2)ON_BN_CLICKED(IDC_BUTTON3, CUIWnd_1::OnBnClickedButton3) END_MESSAGE_MAP()// CUIWnd_1 消息处理程序void CUIWnd_1::OnBnClickedButton1() {// int count _pgamebase-SRO_Control-GetPPack()-GetPackBack()-PackCount();CString tmp;// tmp.Format(L%d, count);// AfxMessageBox(tmp);PBackPack _PackBack _pgamebase-SRO_Control-GetPPack()-GetPackBack();lstPack.ResetContent();for (int i 0; i _PackBack-PackCount(); i){PITEM item _PackBack-GetItem(i);if ((item ! NULL) (item-Type)) {tmp.Format(L[%s][数量:%d][耐久:%d/%d]\n, item-GetNameByWide(), item-Count, item-Durabillty, item-MaxDurabillty);lstPack.AddString(tmp);}}}void CUIWnd_1::OnBnClickedButton2() {// int count _pgamebase-SRO_Control-GetPPack()-GetPackBack()-PackCount();CString tmp;// tmp.Format(L%d, count);// AfxMessageBox(tmp);PEquipPack _PackBack _pgamebase-SRO_Control-GetPPack()-GetEquipBack();lstPack.ResetContent();for (int i 0; i 13; i){PITEM item _PackBack-GetItem((EquipType)i);if ((item ! NULL) (item-Type 0)) {tmp.Format(L[%s][数量:%d][耐久:%d/%d]\n, item-GetNameByWide(), item-Count, item-Durabillty, item-MaxDurabillty);lstPack.AddString(tmp);}} }void CUIWnd_1::OnBnClickedButton3() {_pgamebase-SRO_Control-UseItem(12); }
http://www.hkea.cn/news/14426236/

相关文章:

  • 站长之家psd素材网站建设的作业模板
  • 学做软件的网站有哪些内容代码级优化wordpress
  • 合肥做网站的网络公司wordpress 如果分类
  • 手机网站前端数据库网站
  • 个人建设网站教程网站搭建网站管理
  • 知名商城网站建设多少钱怎么做网站和服务器吗
  • 建设行政主管部门相关网站网络营销师证书含金量
  • 深圳企业网站制作报价青岛公司网站
  • 大连外贸网站网站的域名是什么意思
  • 容县建设工程交易中心网站传奇网页
  • a 朝扬网络网站建设建筑网格布厂家
  • 网站开发应用技术专业google chrome网页版
  • 查网站域名备案查询南宁网站搜索引擎优
  • 做外贸要看哪些网站好做新浪微博网站需要
  • mui做浏览器网站跳转网站商城微信支付接口
  • 网站建设登录界面代码网站砍价活动怎么做
  • 网站建设和域名什么关系wordpress播放下载
  • 网站的思维导图怎么做平面设计专业就业前景和就业方向
  • 网站推广的优劣房产网站设计模板
  • 一个新的网站怎么做SEO优化时尚网站模板代码
  • 网站建设分金手指排名十一seo 费用
  • 网站推广怎么做优化打造一个app需要多少钱
  • 网站管理模板浦口区网站建设经验丰富
  • 域名网站备案管理系统连云港网站 建设
  • 湖南省建设厅政务中心网站汽车网站开发与实现 论文
  • 网站管理登录动漫设计与制作大学
  • 中学网站源码企业网站建设条件
  • 网站附件下载表格怎么做wordpress登录网址
  • 动易网站中添加邮箱成都网络营销策划
  • 做网站1核1g服务器够吗外贸兼职平台