澳门现金牌九,澳门现金牛牛官网,山水云南麻将官网

澳门现金牌九,澳门现金牛牛官网,山水云南麻将官网

当前位置: 主页 > 快乐牛牛辅助软件 >

游戏外挂编程如何系统学习?

澳门现金牌九,澳门现金牛牛官网,山水云南麻将官网 时间:2019年10月17日 21:11

  我也来简单回答一下题主。首先, 外挂是一门很大很注重实践的一门技术大类。在这个技术大类之下还分很多小类。一般来说分逆向,编写逻辑 这2方面所谓逆向,也就是分析游戏的客户端,寻找相关功能的函数而编写逻辑,如掉线重登,自动打怪,自动吃药 之类等等等。但是实际上, 写一个挂,远远不止上述的2方面比如说还要过游戏的保护,这个需要运用Window内核的知识。以前的大神写挂都是单独一人完成的,这个需要懂的内容非常非常多。我列举一下成为一个全能大神所需的知识:首先,汇编的基础知识必须过硬,有良好的逆向经验。了解常用的数据结构(因为游戏的背包或者怪物之类的多用二叉树或者数组, 连基本的数据结构都不懂……那玩个蛋)了解API,R3(Native API),R0(内核),Socket。熟悉一门编程语言(只会汇编也可以)如果你能把上述的学精,就有成为大神(外挂类)的潜质。 -------------------------写着写着突然不想写了,以后再补充吧--------------------------------------竟然有人评论……那我继续写了。

  如果是对编译原理比较了解的基友,应该就知道。一个静态函数是一个固定的CALL,一个struct的结构内容都是用偏移可以算出来所有成员的。所以逆向游戏客户端,分析出游戏中的某些功能函数的地址,再加以分析出所传递的参数,模拟调用。这样一个简单的功能就完成了。当然,这中间还牵扯到其他不少的东西, 比如说必须熟悉结构,举个栗子:当你看到一个参数他的内存形式如下:0x12345678:111111100x1234567C:111111100x12345680:11111114

  这样的玩意,就很快可以联想到这是一个数组,还是一个vector。这些除了要有逆向的功底以外,还需要有“逆向游戏的经验”, 因为游戏的参数都那德行,万变不离其宗。除此之外, 游戏现在都有防多开的干涉。在不谈驱动保护的前提下, 你需要熟悉Window的工作机制,特别是互斥的工作原理,当然,现在游戏保护不止是互斥判断多开,比如说进程路径重复,类名,窗口名,互斥,内存映射,判断文件是否存在等等之类的……所以你至少要把那本Window核心编程给看熟。这方面的书籍, 我也没有太多的介绍, 现在有不少人是熟悉逆向,而不会过多的编程的“外挂作者”。 他们都并非靠对编译原理的理解去逆向游戏数据,而且靠“经验”去逆向游戏数据。总的来说,我看他们都是在网上找教程看下,再加以练习,就能达到这个水准了。

  那么接下来再讲讲编程这块。因为需要稳定不需要过多的人工量去看的挂机,所以你需要写得非常“智能”,简化操作流程,还要把角色的伤害跟玩家相提并论, 此过程听起来很简单, 操作起来非常麻烦。首先多线程你要懂吧? 比如说你必须无时无刻都在判断人物Hp低于某个程度就得啃药了吧?总不能每写一句代码就写if判断一次血量吧?还有某些全局数组或者vector之类的多线程操作,比较基础的互斥啊,临界区之类的你要用吧?总而言之,多线程这块就是麻烦!这类书籍我也就不班门弄斧了,想必各种大神的推荐应该更有力。接下去还需要懂Native API。 就是俗称的R3. 亦是巨硬没公开的API, 需要用这层去隐藏自己的DLL,防止游戏的检测。 还有多开之类的,一般都在这层完成的。你需要懂一点PE文件格式,把大部分的Native API的运行方法,调用方式给弄懂。还需要懂Socket网络编程.因为 你需要怎么“验证”自己,达到给工作室收费的目的,还有你需要怎么“验证”自己,达到防止被别人破解的目的当然,牵扯到socket了,我是看了,会socket的,大部分都会数据库操作的。要嘛是MSSQL,要嘛是MySQL。 这个方便查询和管理。(这个数据库对写挂木有硬性要求)socket无非就是粘包之类的,超时之类的判断。 赶脚不需要学到很深。当然,如果你还要弄脱机挂,底层的TCP协议是必须会的。还有加密和解密算法得杠杠的,逆向功底也要杠杠的。

  有兄台问:现在外挂的行情如何:我只能说, 没几年前那么好赚了, 几年前在DNF大火的时候,养了一大批中国的外挂作者和工作室。 但是现在的游戏,防得越来越严了。新人最难的就是入门, 而真正赚钱的东西,都被各家的前辈捂得严严实实的。哪怕你是一个编程高手,逆向高手。 当你真正写出一个挂的时候,会发现,玛德被封号了。 为何不稳定? 5分钟掉一次线? 为何总是跟不上工作室的需求, 不知道弄什么功能出来才是工作室所需的,而工作室本身就不是很懂技术,说的东西总是含糊其词的…… 恨不得直接可以刷软妹币到他们的口袋。

  就如同在国家严打黑客前,当年的刷钻盗号,入侵教程如春笋般在各种网站上公开叫卖, 肆意挥霍的年代, 很多大神就是从那个(相对于现在这个年代的环境已经是超级好了)年代成长起来,以前是年代也是“相对”比较单纯,现在学渗透,不如以前的学习环境好, 但是长江后浪推前浪,后浪死在沙滩上,依然有人在这种国家要严打的环境下 还是成长到媲美 上一代大神的境界。

  首先:老夫只拿我自己做过的例子来举例, 不代表其他人的做法也是一样第一步: 写一个控制台。 我是用C#来写(MFC太烂了, 又长又臭。), 方便工作室操作, 一般是存放帐号,还有操作一些配置文件(比如说设置低于%? 就吃药, 设置了收货【邮件或者交易】角色名之类等等诸如此类)。 为了防止别人认出来, 就不丢图了。 老夫找一张类似的图片

  第二步:然后老夫会用cpp写一个DLL。 用来跟C#的界面交互。 利用内存共享来和游戏的DLL交互信息. 基本这个就用到内存共享, CreateFileMapping, MapViewOfFile, OpenProcess, 诸如此类。 然后基本就是各种判断, 比如说掉线呐, 超时呐, 状态呐。 还有对在线帐号做各种判断操作, 比如说刷完 的角色要保存日志, 该删的删, 该留的留。 还要做登录初始化处理之类的。

  第三步:写注入(基本都有现成的, 为了流程规范! 还是单独列出来好了。 OOP思想已经祸害了老夫了)一般常用的注入很多, 比如说APC注入,输入法注入, DLL劫持。 OEP改入口。 远线程注入。 无模块注入(一般是申请一块内存, 然后把整个DLL复制过去。 修复导入表,重定位后,加载dllmain), 还有驱动级的一大堆就不一一细说了。 注入方法五花八门,不管是哪种方法, 只要有效, 能防止游戏检测到,又可以用。 那就是一个成功的注入。

  第四步:逆向游戏功能(其实这个才是第二步,注入是第一步)这里也分2种, 一种是先找遍历, 一种是先找发包//找游戏的明文发包, 这个可以大概说一下, 因为一般来说, 建立tcp连接, 都是需要connect, 然后send 或者 recv之类的。但是一般来说, 基本都是send都是经过单次或者多次加密后的密文封包, 所以并没有太大意思, 有些甚至是搞了多线程, 一个线程检查一个全局队列之类的然后send, 另一个线程负责push。 比如说基三就是这样干的!当然往上回溯之类的现在已经不怎么好用了。 这里面的篇幅太长太长了, 就不一一细说了, 因为里面还有很多小技巧的东西, 很多关于经验, 感觉之类的事。//遍历一般是指, 周围怪物, Npc, 技能, 背包, UI之类的。 从林林种种的数据结构中, 找到自己想要的数据。 比如说怪物是用树状结构保存的, 但是每一个CMonster 都是一个超级大的结构。 他里面还包含了很多类,结构, 也可能继承了N个类, 也有N个指针,N个虚函数。很多我们都是不需要的, 所以需要一一细分, 比如说, 只要怪物HP,MP, 角度, 坐标,之类的。 像怪物的形状, 外形, 颜色之类的,我们根本不care!// 然后就可以和明文发包结合了。 举个栗子, 使用技能函数无法就是static UseSkill(dwSkillId, dwTargetId){send(............)}所以你找到你明文发包的CALL。 那么你只需要在CALL头部下一个断点即可。 基本内容就是只要SkillId和TargetId, 比如说卖, 也一般就只有NpcId, ItemId, Count之类的。 游戏不一样, 可能做法不一样。

  第五步:就应该来到脚本这块了。 如果是用lua写脚本的话。 那基本就是封装几个函数的事。 比如说交任务, 接任务, Move, Npc对话之类的。 反正大部分游戏不都那个尿性嘛?整天跑来跑去, 跟几个Npc对对话, 虐虐小怪, 跟Npc美女谈笑风生。这块就是体力活了。

  第八步:基本这一步就可以到封号的步骤了, 以前游戏封号五花八门, 也有很多规则可循的。比如说某个区域就检测加速, 某个时间段就检测一次。 检测到就晾个几天再把你封号。 还有CRC校验代码段, 上传DLL, 按键检测, API检测………………我说几个例子, 某游戏, 就在检测你模拟鼠标, 比如说正常人的鼠标, 是有轨迹的移动过去的。 他就给你检测你的鼠标是否“瞬移”出现在某处, 还有键盘的按下和弹起时间, 太快了要遭殃!(这种都有权值的, 大意就是分数。 超过及格线, 基本就晾个几天就必封了!)比如说还有堆栈回溯, 查看调用CALL是否在本模块中………………据说TX跟暴雪 学了一个新招, 做一个Loader加载器。 然后随机从服务器下载一段shellcode。 然后运行这段代码, 把结果返回给服务器。 本地毫无痕迹! 而且下载回来的代码全部是vm混淆过的。咳咳, 里面还有各种奇招, 就不一一阐述了!

  // 注意, 这里的11B0A9C 是静态指针, 一般来说是不会变的。 如果会变的。 他有可能是属于DLL的全局指针, 因为win7有地址随机。 所以不能这样直接写。暂时先说这个情况

  // by 7.29想要我私信的自己先想好问什么问题好嘛?前面一大堆人我都私信过了, 结果一大堆都是连问问题都问不清的人, 剩下的一堆就是无视了我的私信。最后还有1个想让我教他的,我也教了差不多2个星期。 结果两天打渔三天晒网. 劝各位一句:只要是学编程相关的, 自认不是天才的情况下, 还是老老实实每天敲8个小时代码(看书), 不然你这样学到30岁都不知道能不能学有所成。

  把鼠标放到攻击上面, 他应该会获取当前的攻击类型,然后转换成Text ->

  Update 到界面, 好, 接下去就试试这招!

  一个是HP一个是MAXHP随便掉点血就知道第一个是HP, 第二个是MAXHP.附加OD, 在HP下访问断点

  先不管这个递归, 直接先找到上一层, 因为如果你一直卡在这个递归里面, 万一你上一层也是N个递归或者说是一条死路呢? 所以你得先寻找到根源, 再做详细分析!

  首先因为这个RootBase是在DLL里面的, 因为DLL的加载地址不同, 所以解析出的Base也不同, 这个需要知道PE文件的如何计算偏移的。

  MFC做个注入DLL…… 不要问我为嘛用MFC,因为它是VS自带的,方便立马用。反正关了灯都一样.

  运气好, 第一个就是。 如果没变化, 那就一个一个往下改。 记得如果不是的话, 要改回去. 再改下一个。 也可以用二分修改(查找)法, 直接一次性改一半. 如果不存在的话, 那肯定在另一半。时间复杂度O()=O(logn) 必须学以致用!!!

  好啦。 至少有一个是对的. 因为刚才游戏不小心被我弄崩了。我就顺便重开而且换了个游戏.暂时目的达到了. 获取到当前角色. (遍历所有英雄小兵之类的暂时没这个需求,不做)

  上面的MOV EAX, [ESP+14]. 就是从上一个函数传递过来的参数. 返回去看好一下.

  就是这个玩意。 那么我们要找的是种类。 也就是第二个参数=[ESP+0BC]然后往上分析……过程略, 多断点几次的事, 我就不废话了。

  我并非推荐你们去参加培训, 而是这里有课程目录。按照这个目录去学就好了。例如:游戏安全工程师培训介绍-WebMaster-15PB信息安全教育

  给各位想自学的人一点学习方向的建议。一般分2种, 一种是为了编程而学外挂, 一种是为了学外挂而编程。第一种就是以编程为主, 对外挂技术了解一下。 这里就不谈了, 正统道路的学习方法多得是。 我就不一一举例了。第二种方法, 我以0编程基础来举例。1:要熟悉C/C++语法, 可以做一些像模像样的小玩意, 比如说控制台下的XX管理系统, 读写文件, 什么银行存取金币系统之类这样的小玩意。 这部分后面就要应用在你的外挂控制台上如:知乎专栏2:学习完上面的,我个人建议开始学习socket, 功能大概就要激活CDK,校验CDK的时间, 用长连接。 大概就是生成CDK, 把CDK保存到Server, 然后Client激活CDK要去Server校验, 并且用心跳来保持连接。 这一步后面要应用到 防破解, 收费系统, 还有一些比如说组队, 交易, 邮寄都可以丢到Server上完成, 比如说不同电脑下, 如何让他们同一个大区同一个地图下如何分配组队和交易, 而且还能进一步锻炼你的编程能力。 建议要用非阻塞的异步socket。(用HTTP来做验证的可以忽略这一步)3: 这个时候可以做点有意思的, 比如说先学会用模拟按键+识图 去做某个游戏的登录。就用LOL来举例子, 可以做LOL的客户端登录。 用模拟按键+鼠标操作, 然后用识图来判断当前在哪个步骤了。 图片识别可以用OpenCv库Template Matching

  4: 这个时候你可以写一个控制台(Console模式), 保存帐号, 读取帐号, 开始登录。 如何判断到游戏登录完毕, 就登录下一个帐号, 保存登录失败(如密码错误)的日志, 操作完毕的日志。 如何再下一次启动的时候忽略已经成功的帐号。 中间的种种操作, 自己做一遍就知道了。如:VideoCardGuy/AutoLoginByBnsChina5: 这个时候建议把Console模式的控制台改成UI, UI可以用C#来做,也可以用MFC/QT来做, 用哪个语言来做无所谓, 学习一下多线程的操作, 如何刷新数据到UI, 如何从Server查询CDK返回到控制台, 比如说剩余时间对吧.6:这个时候就开始学习简单的汇编指令, 学习如何使用调试器, 怎么去逆向游戏的人物属性, 把基本的HP,MP,攻击力之类的逆向出来, 然后显示到控制台, 这里需要比较多的API知识, 比如如何注入DLL到游戏, 比如运用指针读取游戏的数据. 这一步做完你已经可以自己写一个UI注入到游戏里面, 显示出人物各种属性,周围怪物,Npc。 你也需要一些基本的数据结构知识,比如链表,二叉树,数组,std::vector,std::string在汇编的表现形式。7:可以逆向游戏的功能, 找到游戏的明文组包函数, 然后下断后就能断下绝大部分游戏的功能, 然后想办法模拟调用, 你就可以做到吃药, 释放技能,交接任务。 这一步我就不多说了,反正完成了几乎是搞完了。8: 把所有功能和UI控制台和Server端关联起来。 就是一个完整版的挂了。 下面就是一步一步添加更多的功能了,要考虑用脚本去写主线了,要考虑框架的问题了,要学习如何反反调试,如何多开,防检测,过游戏保护,做资源优化,写导航寻路等等……当你都学完之后,那么恭喜你,你已经成功获得外挂全能大神的称号了。无忧无求 - 知乎偶尔抽空写几篇教程

  如果是汉子,拜托,网上这么多学习资源,你都没法自学。我也是没有人教的啊!!!那你自生自灭吧!

  感觉不少人挺急功近利的, 都想着写挂是一门快速入门,快速赚大钱的行业。 我真是呵呵了。特别是大一或者大二的学生。

  第五,当你进入到游戏外挂的大门后, 你会发现你的数学抽象概念知识严重缺乏,我就说几个问题,你怎么转换成数学问题。一个BOSS向它脸朝向的方向的前面和后面放了一个激光炮,你必须躲开这个技能,首先你如何判断你是否在这个激光炮的范围, 如果在的话, 怎么躲开? 如果这个激光炮是全屏的, 只有BOSS的左边和右边3m的地方是一个很小范围的圆形安全点, 如何计算出这个安全点? 如果BOSS还随机在地图放了一些比如说是圆形的障碍物, 如何计算出一条路线可以绕过这些随机的圆形走到安全点上?

  再来一个比较抽象的问题。这个是程序和数学结合的问题:在游戏上古世纪里面, 那个拉货车只能按键盘AD来转向, W来前进。 在没寻路的情况下, 假设我有几百上千个从 起点到终点的坐标(每个坐标的距离不固定,而且起点和终点不一定是直线)。 已知你当前的角度和当前的坐标, 按一次A或者D的角度并不稳定的情况下,怎么编写这个拉货从起点到终点的程序?

  第六、假设你把上述所有问题都解决了, 你会发现一个挡在了无数能写挂,而且写得很完美很完善,但是赚不了钱的问题, 就是封号! 行为检测,代码检测,堆栈检测,IP检测,游戏区域检测,这些怎么过?怎么测试? 要知道像LOL,梦幻西游这种游戏, 你要是能完美解决封号的话, 年收入百万已经是很低调的说法。实际上整个中国能做到的,又有几个

  第七、假设你解决了封号的问题, 如果你写了1级-满级的主线, 你最后发现, 完成了没几天,游戏官方直接把游戏主线给的金币和物品全和谐了, 你花尽心思写了组队副本刷BOSS,游戏官方直接把副本任务和给的物品直接全和谐了,怎么找出钱路线?你要考虑你每个号都不是神装, 有些副本你输出不够, 根本打不了。 只能玩家去打。

游戏外挂编程如何系统学习?的相关资料:
  本文标题:游戏外挂编程如何系统学习?
  本文地址:http://www.mbizs.com/kuaileniuniufuzhuruanjian/10171591.html
  简介描述:我也来简单回答一下题主。首先, 外挂是一门很大很注重实践的一门技术大类。在这个技术大类之下还分很多小类。一般来说分逆向,编写逻辑 这2方面所谓逆向,也就是分析游戏的客户...
  文章标签:游戏辅助编程
  您可能还想阅读以下相关文章:
----------------------------------