求在地下城寻求或其他游戏外挂。脱机挂。

当年有绿装。&br&当年随便爆件紫装就很满足。&br&当年40多级就可以来新手副本炫,记得当年见到一狂战士开双刀用大吸兴奋的不行。&br& 当年僵尸8000一位,悬空城1W,城主1W5,单带任意图也是这个价。&br& 但你还得拜师,因为要注意不知道有啥用的COF点。 &br&当年土罐下面小摊一把20级蓝色光剑小十万,刚转职找基友借钱买。 第一次开二刀兴奋的不行。&br& 一把极光脸贵成狗。&br& 当年见一路人穿着加十梵风衣和墨竹把我和小伙伴羡慕坏了。 &br&当时的梦想是把细雪之舞。 当时的细雪之舞样子巨好看。&br&当时的复活币从来不够用。&br&当时紫装就是奢望,粉装没想过,史诗没见过。&br&当时最拉风的刀是流星落。&br&当时我打不过城主宫殿。&br&也打不过随机深渊。&br&&br&&br&后来我想要的都有了。&br&我有两把流星落,我有满级号,我有史诗,我可以随意过王的遗迹。&br&但我一直单刷再没有朋友。&br&我不再非常仔细的纠结加点,因为无所谓。&br&我不再深思熟虑的考虑买哪组套装,因为现在都是假紫。&br&哦,对了,那时一个磷岩护肩贵成狗,我当时玩大枪只想杀光所有玩狂战的
&br&谁还记得斩影三件套。&br&&br&现在可以随便充点卷换金币买装备。&br&我可以买到我当时梦想的一切装备。&br&但无论我再充多少钱。&br&那些灰色的名字都不会再亮起来。&br&也没有人会再拿跟梵风衣长的一样的防弹夹克骗我。&br&也没有人再会私信问我组不组队。&br&&br&我不开心。&br&&br&更新-----------------最近看到很多很多孔乙己的改写,心痒之下也写了一段,贴在下面,权当纪念。&br&&br&鬼乙己一到酒馆,所有喝酒的人便看着他笑,有的叫道,“鬼乙己,你又换上秋叶刀了。”他不回答,对索西娅说“温两碗酒,恢复下虚弱。”便排出几枚金币。他们又故意嚷道,“你一定又偷了人家的东西了。”鬼乙己睁大眼睛说,“你怎这样凭空污人清白…”“什么清白?我前天亲眼见到你偷了凯丽的强化器,被吊着打。”鬼乙己便涨红了脸,争辩道,“偷强化器不能算偷,强化…氪金人的事,能算偷么?”接着便是些难懂的话,什么“双刀加连发一套八万八”“假猪套天下第一”“双刀不算无色”之类,引得众人都哄笑了起来,店内外充满了快活的空气。 &br&
听人家背后谈论,鬼乙己原来也拿过流星落,但因他痴迷于调戏凯丽,又不是心悦会员,于是越过越黑,弄到武器碎了,幸而拉的一手好二胡,便替人家打打辅助,按按摩,混一碗饭吃。可惜他又有一样坏毛病,便是强化武器,强化几次便连钱带装备都没了,如是几次,叫他混团的人也没有了。鬼乙己没有法,便免不了偶尔做些偷窃的事。&br&
有一天,在安图恩门口,团长正在点人,忽然说,“鬼乙己长久没有来打团了,上回他骂凯丽,借了我19个频道喇叭,还没有还。”“我也觉得他的确长久没有来了。”一个大叔说道,“他怎么会来,他被打断腿了。”团长说“哦!”“他总仍旧是偷,这一回,是自己发昏,偷到歌兰蒂斯那里去了,她家的橙武器,偷得的吗?”“后来怎么样?”“怎么样?先是落雷符,后来是朱雀玄武,人兽play,虐了大半夜。”“后来呢?”“谁晓得?估计AFK了。”团长也不再发问,继续慢慢清点人数。&br&&br&
自此以后,又长久没有看见鬼乙己。到了年底,团长换上新年套说,“鬼乙己还欠十九个喇叭呢!”到第二年的端午,又说“鬼乙己还欠十九个喇叭呢!”到中秋可是没有说,再到年底也没有看见他。   &br&
我到现在终于没有见——大约鬼乙己的确AFK了。
当年有绿装。 当年随便爆件紫装就很满足。 当年40多级就可以来新手副本炫,记得当年见到一狂战士开双刀用大吸兴奋的不行。 当年僵尸8000一位,悬空城1W,城主1W5,单带任意图也是这个价。 但你还得拜师,因为要注意不知道有啥用的COF点。 当年土罐下面小摊…
看了前面诸多答案,没有提及当前CSGO的VAC(Valve Anti-Cheating)机制的。&br&&img src=&/d4e929fe53_b.jpg& data-rawwidth=&533& data-rawheight=&300& class=&origin_image zh-lightbox-thumb& width=&533& data-original=&/d4e929fe53_r.jpg&&&br&&br&VAC是相当成熟的监视审查(overwatch)机制,作为任何玩家都会有一个基于&b&举报&/b&的隐藏分,这个隐藏分取决于你举报的正确率(会有小蓝信通知),&br&&img src=&/c787fe12cac4f505c80fa4da27ed3c1a_b.png& data-rawwidth=&291& data-rawheight=&34& class=&content_image& width=&291&&&br&和你的比赛场次,胜率场次和清白程度(具体算法是机密)。当任何玩家的隐藏分达到一定的条件后,玩家会成为一个&b&审查者&/b&来审查别人是否作弊(小蓝信通知)。&br&&br&鉴于csgo一盘比赛的长度,会有8局被随机挑选出来以供审查,审查的方式就是通过观察嫌疑人(匿名)的视频,来判断是否作弊并提交你的结论。 一个嫌疑人的游戏demo会被多个审查者审查。审查者通过&b&民主投票的方式&/b&来决定是否是作弊者,一共有多项罪名,每项两档:证据不足和明显开挂。&br&&img src=&/e30cbc570eecc7d5e63b8_b.jpg& data-rawwidth=&518& data-rawheight=&312& class=&origin_image zh-lightbox-thumb& width=&518& data-original=&/e30cbc570eecc7d5e63b8_r.jpg&&&br&&br&这个投票也是有权重的,这个权重也是基于某个隐藏分。但只有压倒性的投票能够给嫌疑人定罪。悬而未决的嫌疑人会在以后的比赛中具有更大的概率和其他嫌疑人匹配在一起,以&b&诱发更加明显的作弊行为&/b&。为了减少“工作室带老板上分”的行为,如果你和作弊者组队进行比赛,当作弊者被定罪之后,不仅被定罪者永久禁止游戏(小红信,包括单人游戏),&br&&img src=&/adbbb83b8c1d025de429e_b.png& data-rawwidth=&368& data-rawheight=&61& class=&content_image& width=&368&&&br&而且全队人的该盘比赛得分都会被扣除,并且依程度被禁赛一段时间(小黄信)。&br&&br&&br&Youtube上有很多审查csgo作弊的视频,有兴趣的可以去搜搜看。其中不乏有很多似是而非的作弊者,&u&演技比ow的挂逼不知道高到哪里去了&/u&。&br&&blockquote&比如:&a href=&///?target=https%3A///watch%3Fv%3D5imuKN2PvnY& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&/watch?&/span&&span class=&invisible&&v=5imuKN2PvnY&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& 给没有玩过csgo的玩家解释一下,任何非参赛观察者,包括审查者,是可以看见所有人物的透视位置的(称为x-ray),以判断作弊者,也优化了观战体验。审查者必须经常换位思考:当你是嫌疑人的时候你会怎么做,以决定是否给嫌疑人定罪。&/blockquote&而我们能在b站上看到的ow挂逼基本上都是不演的,准星粘到头上就叮叮叮叮击杀,&br&&blockquote&比如:&a href=&///?target=http%3A///video/av5162409/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《守望先锋》老干部制裁外挂队LAOX视角&i class=&icon-external&&&/i&&/a&&/blockquote&这在csgo里面就是作死。&br&&br&可以说,这个机制减少了官方审查的负担,也迫使每个作弊者必须是个好演员,否则会有很大的封禁风险。又要演得好又要保证胜率就不是一件容易的事情。另一方面VAC机制的准确率也惊人,所以有一说是VAC是不会冤枉人的,&b&被封了肯定是有鬼&/b&,申诉成功率也是极低极低的。&br&&br&&u&&b&如果OW引入类似VAC的机制,是可以远比csgo(VAC)成功的,&/b&&/u&原因如下:&br&首先是竞技比赛允许回放,是不是挂逼,受害者可以看到之前的击杀细节,从而&b&减少误举报&/b&的几率。&br&其次ow的战斗节奏比csgo的更为激烈,各个英雄的能力各异,并且大部分情况下没法一发击杀,有的武器甚至需要预判;地图的站点更为复杂,对团队配合要求更高。这就对作弊者有更高的演技要求, 作弊器&b&也很难起到决定性作用&/b&。如果一个ow挂逼想要不被封,他也至少是个经验丰富的玩家。这一点你们看看b站上挂逼放开胆无演技开挂还被专业队虐就知道了。&br&&br&这里说一下自己的观点:&br&美国有句俗语“ If it walks like a duck, quacks like a duck and walks like a duck, it‘s a duck”。如果一个挂逼真的演技至深了,并且滴水不漏,某种程度上讲他就等价于高玩,在CSGO里是个大地球,在OW里是天梯70+。但是毫无疑问他是个没有道德的玩家。由于作弊器的逆天功能被刻意的演技抵消了,带来的效果就像是神意识和神操作,甚至太入戏了,也不大影响游戏平衡,所以这样的玩家也自然会和其他真真假假的同水平玩家匹配在一起。&b&天梯系统的意义就在于带来平衡,不管你是不是作弊。&/b&在保持游戏平衡的情况下拼演技,也是一种玩法吧。但是演技不好又想开挂活该被封。&br&&br& P.S.我不清楚OW和CSGO哪个的作弊玩家比较多(比例上或者数量上),只要官方不公布真实数据就只是你的个人感觉。另说一点题外话,如果玩家愿意放弃屏幕隐私,任由游戏运营商截取比赛的全屏画面,可以极大程度地制裁fps的透视者。
看了前面诸多答案,没有提及当前CSGO的VAC(Valve Anti-Cheating)机制的。 VAC是相当成熟的监视审查(overwatch)机制,作为任何玩家都会有一个基于举报的隐藏分,这个隐藏分取决于你举报的正确率(会有小蓝信通知), 和你的比赛场次,胜率场次和清白程度(具体…
&p&我也来简单回答一下题主。&br&首先, 外挂是一门很大很注重实践的一门技术大类。&br&在这个技术大类之下还分很多小类。&br&一般来说分逆向,编写逻辑 这2方面&br&所谓逆向,也就是分析游戏的客户端,寻找相关功能的函数&br&而编写逻辑,如掉线重登,自动打怪,自动吃药 之类等等等。&br&但是实际上, 写一个挂,远远不止上述的2方面&br&比如说还要过游戏的保护,这个需要运用Window内核的知识。&br&以前的大神写挂都是单独一人完成的,这个需要懂的内容非常非常多。&br&我列举一下成为一个全能大神所需的知识:&br&首先,汇编的基础知识必须过硬,有良好的逆向经验。了解常用的数据结构(因为游戏的背包或者怪物之类的多用二叉树或者数组, 连基本的数据结构都不懂……那玩个蛋)&br&了解API,R3(Native API),R0(内核),Socket。熟悉一门编程语言(只会汇编也可以)&br&如果你能把上述的学精,就有成为大神(外挂类)的潜质。 &br&-------------------------写着写着突然不想写了,以后再补充吧--------------------------------------&br&竟然有人评论……那我继续写了。&/p&&p&如果是对编译原理比较了解的基友,应该就知道。&br&一个静态函数是一个固定的CALL,一个struct的结构内容都是用偏移可以算出来所有成员的。&br&所以逆向游戏客户端,分析出游戏中的某些功能函数的地址,再加以分析出所传递的参数,模拟调用。这样一个简单的功能就完成了。&br&当然,这中间还牵扯到其他不少的东西, 比如说必须熟悉结构,&br&举个栗子:&br&当你看到一个参数他的内存形式如下:&br&0x11110&br&0x111110&br&0x11114&/p&&p&这样的玩意,就很快可以联想到这是一个数组,还是一个vector。&br&这些除了要有逆向的功底以外,还需要有“逆向游戏的经验”, 因为游戏的参数都那德行,万变不离其宗。&br&除此之外, 游戏现在都有防多开的干涉。&br&在不谈驱动保护的前提下, 你需要熟悉Window的工作机制,特别是互斥的工作原理,当然,现在游戏保护不止是互斥判断多开,比如说进程路径重复,类名,窗口名,互斥,内存映射,判断文件是否存在等等之类的……所以你至少要把那本Window核心编程给看熟。&br&这方面的书籍, 我也没有太多的介绍, 现在有不少人是熟悉逆向,而不会过多的编程的“外挂作者”。 他们都并非靠对编译原理的理解去逆向游戏数据,而且靠“经验”去逆向游戏数据。&br&总的来说,我看他们都是在网上找教程看下,再加以练习,就能达到这个水准了。&/p&&p&那么接下来再讲讲编程这块。&br&因为需要稳定不需要过多的人工量去看的挂机,所以你需要写得非常“智能”,简化操作流程,还要把角色的伤害跟玩家相提并论, 此过程听起来很简单, 操作起来非常麻烦。&br&首先多线程你要懂吧? 比如说你必须无时无刻都在判断人物Hp低于某个程度就得啃药了吧?总不能每写一句代码就写if判断一次血量吧?&br&还有某些全局数组或者vector之类的多线程操作,比较基础的互斥啊,临界区之类的你要用吧?&br&总而言之,多线程这块就是麻烦!这类书籍我也就不班门弄斧了,想必各种大神的推荐应该更有力。&br&接下去还需要懂Native API。 就是俗称的R3. 亦是巨硬没公开的API, 需要用这层去隐藏自己的DLL,防止游戏的检测。 还有多开之类的,一般都在这层完成的。&br&你需要懂一点PE文件格式,把大部分的Native API的运行方法,调用方式给弄懂。&br&还需要懂Socket网络编程.&br&因为 你需要怎么“验证”自己,达到给工作室收费的目的,&br&还有你需要怎么“验证”自己,达到防止被别人破解的目的&br&当然,牵扯到socket了,我是看了,会socket的,大部分都会数据库操作的。&br&要嘛是MSSQL,要嘛是MySQL。 这个方便查询和管理。(这个数据库对写挂木有硬性要求)&br&socket无非就是粘包之类的,超时之类的判断。 赶脚不需要学到很深。&br&当然,如果你还要弄脱机挂,底层的TCP协议是必须会的。&br&还有加密和解密算法得杠杠的,逆向功底也要杠杠的。&/p&&p&我想下,编程这块应该就剩下个脚本了吧? 会一门脚本语言这个应该很easy。&br&还有应该懂一点算法, 比如说A*, dijkstra,之类的。&/p&&p&剩下就是Window内核了,就是俗称的R0,驱动层。&br&……&br&就先写到这里了……以后想多了再补充。&/p&&p&&br&&/p&&p&------------------8.24号更新--------------------------------&br&有兄台问: 为何要精通汇编……&br&这……难道还有游戏的源码供你调试? &br&在木有游戏的源码下,只能看汇编……&/p&&p&有兄台问:现在外挂的行情如何:&br&我只能说, 没几年前那么好赚了, 几年前在DNF大火的时候,养了一大批中国的外挂作者和工作室。 但是现在的游戏,防得越来越严了。&br&新人最难的就是入门, 而真正赚钱的东西,都被各家的前辈捂得严严实实的。&br&哪怕你是一个编程高手,逆向高手。 当你真正写出一个挂的时候,会发现,玛德被封号了。 为何不稳定? 5分钟掉一次线? 为何总是跟不上工作室的需求, 不知道弄什么功能出来才是工作室所需的,而工作室本身就不是很懂技术,说的东西总是含糊其词的…… 恨不得直接可以刷软妹币到他们的口袋。&/p&&p&这个行业很讲经验, 对付封号的经验,跟工作室配合的经验,熟悉游戏的经验, 怎么才能用最短的时间,写出工作室最需要的功能。 &/p&&p&顺便一提, 就是这些经验,都是需要时间的日积月累。 然而新人入门都倒在了这个门槛上,很少有人能够坚持个几年去不断摸索学习。&br&当然现在也有很多写挂的教程视频,请允许我对这种视频说一句:然并卵!&/p&&p&真正赚到钱的作者,根本不会去在乎那点小钱,也不会拿这种共享的心态去分享这些经验,这些经验对于他们来说就是收入,他们公开了这些经验,很多人知道,就意味着很多游戏公司的反外挂部门也知道, 那就是打破自己的饭碗。 &/p&&p&知乎很多大神,有很多反外挂的大神,也有很多写挂的大神都混在这里(所以我才匿名,免得被认出来)&/p&&p&很多人进这行1年都能赚百万,有人5年都赚不到10万。 总是有高有低,有起有落的。&/p&&p&就如同在国家严打黑客前,当年的刷钻盗号,入侵教程如春笋般在各种网站上公开叫卖, 肆意挥霍的年代, 很多大神就是从那个(相对于现在这个年代的环境已经是超级好了)年代成长起来,以前是年代也是“相对”比较单纯,现在学渗透,不如以前的学习环境好, 但是长江后浪推前浪,后浪死在沙滩上,依然有人在这种国家要严打的环境下 还是成长到媲美 上一代大神的境界。&/p&&p&最后给各位读者一句衷心的劝言:&br&没有一颗沉得住寂寞的心,不要轻易进这个行业&br&没有一颗2年都赚不到钱的觉悟,不要轻易进这个行业&br&没有一颗坚强的心(偷摸拐骗在这个行业处处可见),不要轻易进这个行业&/p&&p&我也比较认同楼下的说法, :&br&技术的成长路线 全看个人,虽然这条路很偏,这门技术在“正统”的领域中,很少有用得上的。&/p&&p&最后总结一下这门技术, 是非常注重“实践”和“调试”,&br&如果想增强一下对语言底层的理解,逻辑思维的增强,调试功底, 可以稍微浅入这个领域去学习一下。&/p&&p&特别是调试功底~! &br&在木有源码,无法调试的情况下,甚至在不知道,出错是你的锅,还是游戏的锅。不知道为何运行一段时间崩溃后,疯狂查日志的寂寞。&/p&&p&这个行业 也确实是比较“浮躁”的一个行业,功利心很强, 大家都是向着利益看齐。因为利益而解散的写挂团队我也见过太多了。 可以这么说,写挂团队解散有60%是赚不到钱,35%是利益纷争,5%是其他原因。&/p&&p&---------先写到这里,虽然木有大神在行业混了8年的经验,也曾呆过这个行业一段时间,比较了解。 也很乐意分享各种见闻(经验分享我就不说了:毕竟这是灰色产业,明目张胆的说,会坑爹的。)---------------------------------&/p&&p&&br&&/p&&p&----------------------------------------------------------------&br&嘿嘿, 好长时间没来更新了, 发现挺多赞的。
那就再更一发。&br&老夫来说一下, 如果要完成一个“完整的工作室内存外挂”, 需要什么功能, 需要哪些技术。&/p&&p&首先:老夫只拿我自己做过的例子来举例, 不代表其他人的做法也是一样&br&第一步: 写一个控制台。 我是用C#来写(MFC太烂了, 又长又臭。), 方便工作室操作, 一般是存放帐号,还有操作一些配置文件(比如说设置低于%? 就吃药, 设置了收货【邮件或者交易】角色名之类等等诸如此类)。 为了防止别人认出来, 就不丢图了。 老夫找一张类似的图片&/p&&img src=&/fa128a1cdfcff3bed4ad_b.png& data-rawwidth=&554& data-rawheight=&361& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&/fa128a1cdfcff3bed4ad_r.png&&&p&&br&&/p&&p&基本就做这个玩意。 大部分都是读取配置文件, 做一些界面交互的功能。 写好List。 和一些界面操作之类的。&br&基本就是dataGridview操作, StreamReader, StreamWriter, 各种拖拉控件。 完事。&/p&&p&&br&&/p&&p&第二步:&br&然后老夫会用cpp写一个DLL。 用来跟C#的界面交互。 利用内存共享来和游戏的DLL交互信息. &br&基本这个就用到内存共享, CreateFileMapping, MapViewOfFile, OpenProcess, 诸如此类。
然后基本就是各种判断, 比如说掉线呐, 超时呐, 状态呐。 还有对在线帐号做各种判断操作, 比如说刷完 的角色要保存日志, 该删的删, 该留的留。 还要做登录初始化处理之类的。 &/p&&p&第三步:&br&写注入(基本都有现成的, 为了流程规范! 还是单独列出来好了。 OOP思想已经祸害了老夫了)&br&一般常用的注入很多, 比如说APC注入,输入法注入, DLL劫持。 OEP改入口。 远线程注入。 无模块注入(一般是申请一块内存, 然后把整个DLL复制过去。 修复导入表,重定位后,加载dllmain), 还有驱动级的一大堆就不一一细说了。
注入方法五花八门,不管是哪种方法, 只要有效, 能防止游戏检测到,又可以用。 那就是一个成功的注入。&/p&&p&第四步:&br&逆向游戏功能(其实这个才是第二步,注入是第一步)&br&这里也分2种, 一种是先找遍历, 一种是先找发包&br&//&br&找游戏的明文发包, 这个可以大概说一下, 因为一般来说, 建立tcp连接, 都是需要connect, 然后send 或者 recv之类的。&br&但是一般来说, 基本都是send都是经过单次或者多次加密后的密文封包, 所以并没有太大意思, 有些甚至是搞了多线程, 一个线程检查一个全局队列之类的然后send, 另一个线程负责push。
比如说基三就是这样干的!&br&当然往上回溯之类的现在已经不怎么好用了。
这里面的篇幅太长太长了, 就不一一细说了, 因为里面还有很多小技巧的东西, 很多关于经验, 感觉之类的事。&br&//&br&遍历一般是指, 周围怪物, Npc, 技能, 背包, UI之类的。 从林林种种的数据结构中, 找到自己想要的数据。 &br&比如说怪物是用树状结构保存的, 但是每一个CMonster 都是一个超级大的结构。 他里面还包含了很多类,结构, 也可能继承了N个类, 也有N个指针,N个虚函数。&br&很多我们都是不需要的, 所以需要一一细分, 比如说, 只要怪物HP,MP, 角度, 坐标,之类的。 像怪物的形状, 外形, 颜色之类的,我们根本不care!&br&// &br&然后就可以和明文发包结合了。
&br&举个栗子, 使用技能函数&br&无法就是&br&static UseSkill(dwSkillId, dwTargetId)&br&{&br&send(............)&br&}&br&所以你找到你明文发包的CALL。
那么你只需要在CALL头部下一个断点即可。 &br&基本内容就是只要SkillId和TargetId, &br&比如说&br&卖, 也一般就只有NpcId, ItemId, Count之类的。 游戏不一样, 可能做法不一样。&/p&&p&从这一步, 可以实现相当多的功能, 比如说自身的HP&? 就使用物品。&br&可以实现自动打怪,捡物, 做任务之类的………………&br&这一步其实需要的功能很复杂, 但是技术含量我认为并不高。
时间做久了, 就是写业务逻辑的事。&/p&&p&第五步:&br&就应该来到脚本这块了。 如果是用lua写脚本的话。 那基本就是封装几个函数的事。 比如说交任务, 接任务, Move, Npc对话之类的。 反正大部分游戏不都那个尿性嘛?整天跑来跑去, 跟几个Npc对对话, 虐虐小怪, 跟Npc美女谈笑风生。&br&这块就是体力活了。&/p&&p&第六步:&br&把控制台, 控制台DLL, 游戏DLL结合起来。 比如说血量控制呐, 超时判断呐, 怪物过滤表之类的要与控制台交互起来。&/p&&p&第七步:&br&socket, 要给工作室写收费系统。
这一步工作量也不少。
前面几步是跟游戏斗智斗力, 这一步是跟破解者斗智斗力, 比如说有很多阴险的检测. 什么删系统, 格式化之类的。
&/p&&p&第八步:&br&基本这一步就可以到封号的步骤了,
以前游戏封号五花八门, 也有很多规则可循的。&br&比如说某个区域就检测加速, 某个时间段就检测一次。 检测到就晾个几天再把你封号。 还有CRC校验代码段, 上传DLL, 按键检测, API检测………………&br&我说几个例子, 某游戏, 就在检测你模拟鼠标, 比如说正常人的鼠标, 是有轨迹的移动过去的。 他就给你检测你的鼠标是否“瞬移”出现在某处, 还有键盘的按下和弹起时间, 太快了要遭殃!(这种都有权值的, 大意就是分数。 超过及格线, 基本就晾个几天就必封了!)&br&比如说还有堆栈回溯, 查看调用CALL是否在本模块中………………&br&据说TX跟暴雪 学了一个新招, 做一个Loader加载器。
然后随机从服务器下载一段shellcode。 然后运行这段代码, 把结果返回给服务器。
本地毫无痕迹! 而且下载回来的代码全部是vm混淆过的。&br&咳咳, 里面还有各种奇招, 就不一一阐述了!&/p&&p&回头一想, 也发现漏了很多步骤, 比如说TX的就有TP保护。 盛大网易的有HS和NP保护。 所以还需要驱动层说。 比如说TP是DebugPort清0之类的。 NP老版本可以解密配置文件剥离。
还有重载内核, 用VT, 自己重写异常处理之类的一大堆手段可以过保护。&/p&&p&也有游戏多开没说, 还有隐藏自身这块也没说……&br&发现写了N多了。 就先说到这里了。
有空下次再更新!&br&赞多了再更!&/p&&p&------------------------------------------------------------------&br&长夜漫漫, 无心睡眠。 那就来更一发吧!&br&这次直接上教程和代码(用TX的某游戏来演示, 只进行技术研究, 禁止用于非法用途! )&/p&&img src=&/5b97ad17aa9fcfa0e08fc_b.png& data-rawwidth=&530& data-rawheight=&612& class=&origin_image zh-lightbox-thumb& width=&530& data-original=&/5b97ad17aa9fcfa0e08fc_r.png&&&p&祭出CE!
开始从人物HP下手&/p&&img src=&/534e304ceb8_b.png& data-rawwidth=&310& data-rawheight=&512& class=&content_image& width=&310&&&p&&br&&/p&&p&开始找小怪攻击自己来掉血&/p&&img src=&/2f64f0db7b9ded3f970f94e_b.png& data-rawwidth=&876& data-rawheight=&355& class=&origin_image zh-lightbox-thumb& width=&876& data-original=&/2f64f0db7b9ded3f970f94e_r.png&&&p&找到了!&/p&&p&索引第0,1,3个是当前HP
2,4是MAXHP&/p&&p&接下来打开OD! (怎么附加进程这里略过……这个又可以说一个一本书那么厚的文章的如何对抗TP反调试)&/p&&img src=&/7acc812cf5a82c9f87104bcaab918b62_b.png& data-rawwidth=&294& data-rawheight=&246& class=&content_image& width=&294&&&p&0x2E70=11888(因为已经回满血了) &/p&&img src=&/eb754b5ad3d0da79c0476e_b.png& data-rawwidth=&498& data-rawheight=&573& class=&origin_image zh-lightbox-thumb& width=&498& data-original=&/eb754b5ad3d0da79c0476e_r.png&&&p&下一个硬件访问断点!&/p&&p&&br&&/p&&p&&br&&/p&&img src=&/d7d78c37ed4cba918d93e9bcc7a7d997_b.png& data-rawwidth=&1070& data-rawheight=&835& class=&origin_image zh-lightbox-thumb& width=&1070& data-original=&/d7d78c37ed4cba918d93e9bcc7a7d997_r.png&&&p&&br&&/p&&div class=&highlight&&&pre&&code class=&language-ca65&&&span class=&mi&&004705&/span&&span class=&n&&E1&/span&
&span class=&mi&&8&/span&&span class=&n&&B87&/span& &span class=&n&&C0000000&/span&
&span class=&n&&MOV&/span& &span class=&n&&EAX&/span&&span class=&p&&,&/span&&span class=&n&&DWORD&/span& &span class=&n&&PTR&/span& &span class=&nl&&DS:&/span&&span class=&p&&[&/span&&span class=&n&&EDI&/span&&span class=&o&&+&/span&&span class=&n&&C0&/span&&span class=&p&&]&/span&
&/code&&/pre&&/div&&p&从这句代码可以看出, 这个角色当前HP 是 EDI + 0xC0.&/p&&p&那么你可以猜EDI就是当前人物角色指针.&/p&&img src=&/e16ed4f3037a_b.png& data-rawwidth=&337& data-rawheight=&229& class=&content_image& width=&337&&&p&那么我们继续回溯这个指针是怎么来的!&/p&&img src=&/f10aba3bd7bcd32c3d96fdb_b.png& data-rawwidth=&1208& data-rawheight=&567& class=&origin_image zh-lightbox-thumb& width=&1208& data-original=&/f10aba3bd7bcd32c3d96fdb_r.png&&&div class=&highlight&&&pre&&code class=&language-ca65&&&span class=&mi&&&/span&
&span class=&mi&&8&/span&&span class=&n&&BB8&/span& &span class=&mi&&&/span&
&span class=&n&&MOV&/span& &span class=&n&&EDI&/span&&span class=&p&&,&/span&&span class=&n&&DWORD&/span& &span class=&n&&PTR&/span& &span class=&nl&&DS:&/span&&span class=&p&&[&/span&&span class=&n&&EAX&/span&&span class=&o&&+&/span&&span class=&mi&&80&/span&&span class=&p&&]&/span&
&/code&&/pre&&/div&&img src=&/5d22df156ed81f513ccd3c_b.png& data-rawwidth=&1224& data-rawheight=&578& class=&origin_image zh-lightbox-thumb& width=&1224& data-original=&/5d22df156ed81f513ccd3c_r.png&&&p&继续往上翻。 就可以得出人物血量= [[[11B0A9C]+34]+80]+0C0&/p&&img src=&/97a3b6b8eee64e89ae0c219f360fe665_b.png& data-rawwidth=&321& data-rawheight=&338& class=&content_image& width=&321&&&p&这里11B0A9C 是一个全局静态类&/p&&p&如果对C++这块稍微有点了解的就知道了。 这种情况不过是类里面有类/结构 变量/指针&/p&&p&比如说&/p&&div class=&highlight&&&pre&&code class=&language-cpp&&&span class=&k&&class&/span& &span class=&nc&&CBns2&/span&
&span class=&p&&{&/span&
&span class=&p&&...........&/span&
&span class=&p&&}&/span&
&span class=&k&&struct&/span& &span class=&n&&strcut1&/span&
&span class=&p&&{&/span&
&span class=&p&&........&/span&
&span class=&p&&}&/span&
&span class=&k&&class&/span& &span class=&nc&&CBns1&/span&
&span class=&p&&{&/span&
&span class=&p&&.......&/span&
&span class=&p&&.......&/span&
&span class=&n&&CBns2&/span& &span class=&n&&CBns2_&/span&&span class=&p&&;&/span&
&span class=&n&&strcut1&/span& &span class=&n&&strcut1_&/span&&span class=&p&&;&/span&
&span class=&n&&CBns2&/span&&span class=&o&&*&/span& &span class=&n&&pCBns2_&/span&&span class=&p&&;&/span&
&span class=&n&&strcut1&/span&&span class=&o&&*&/span& &span class=&n&&pstrcut1_&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&&br&&/p&&p&&br&&/p&&p&当然也不一定是这样的。 推测罢了。&/p&&p&// 注意, 这里的11B0A9C 是静态指针, 一般来说是不会变的。 如果会变的。 他有可能是属于DLL的全局指针, 因为win7有地址随机。 所以不能这样直接写。暂时先说这个情况&/p&&p&// 把DLL注入到游戏的情况下, 否则只能用OpenProcess + ReadProcMemory的方式读取&/p&&p&然后就可以写代码来实时获取人物血量了! &/p&&div class=&highlight&&&pre&&code class=&language-cpp&&&span class=&n&&DWORD&/span& &span class=&nf&&ReadDWORD&/span&&span class=&p&&(&/span&&span class=&n&&_In_&/span& &span class=&n&&DWORD&/span& &span class=&n&&dwAddr&/span&&span class=&p&&)&/span&
&span class=&p&&{&/span&
&span class=&n&&DWORD&/span& &span class=&n&&dwValue&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&&span class=&p&&;&/span&
&span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&o&&!&/span&&span class=&n&&IsBadCodePtr&/span&&span class=&p&&(&/span&&span class=&n&&FARPROC&/span&&span class=&p&&(&/span&&span class=&n&&dwAddr&/span&&span class=&p&&)))&/span&
&span class=&n&&dwValue&/span& &span class=&o&&=&/span& &span class=&o&&*&/span&&span class=&p&&(&/span&&span class=&n&&DWORD&/span&&span class=&o&&*&/span&&span class=&p&&)&/span&&span class=&n&&dwAddr&/span&&span class=&p&&;&/span&
&span class=&k&&return&/span& &span class=&n&&dwValue&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&span class=&n&&DWORD&/span& &span class=&n&&WINAPI&/span& &span class=&nf&&_WorkThread&/span&&span class=&p&&(&/span&&span class=&n&&LPVOID&/span& &span class=&n&&lpParm&/span&&span class=&p&&)&/span&
&span class=&p&&{&/span&
&span class=&k&&while&/span& &span class=&p&&(&/span&&span class=&nb&&true&/span&&span class=&p&&)&/span&
&span class=&p&&{&/span&
&span class=&n&&DWORD&/span& &span class=&n&&dwHp&/span& &span class=&o&&=&/span& &span class=&n&&ReadDWORD&/span&&span class=&p&&(&/span&&span class=&n&&ReadDWORD&/span&&span class=&p&&(&/span&&span class=&n&&ReadDWORD&/span&&span class=&p&&(&/span&&span class=&n&&ReadDWORD&/span&&span class=&p&&(&/span&&span class=&mh&&0x11B0A9C&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&mh&&0x34&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&mh&&0x80&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&mh&&0xC0&/span&&span class=&p&&);&/span&
&span class=&o&&::&/span&&span class=&n&&Sleep&/span&&span class=&p&&(&/span&&span class=&mi&&100&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&span class=&k&&return&/span& &span class=&mi&&0&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&&br&&/p&&p&这里就可以获取到人物HP了! MAXHP略过, 方法同上!&br&接下去就可以继续逆向游戏功能&br&比如说要做一个吃药的功能。 当HP & %50的时候, 就自动吃药. 伪代码如下&br&while(true)&br&{&br&
::Sleep(100);&br&
if(GetPercentHp() & 50 && ExistItem(回血道具) && GetItemCD(回血道具) == 0)&br&
UseItem(回血道具)&br&}&/p&&p&……不知不觉已经凌晨2点了。 下次有机会再把上面的逆向和代码写完。&br&记得点赞!&/p&&p&///////////////////////////////////////////////////////////////////////////////////////&/p&&p&继续更!&/p&&p&接下来做找明文发包CALL。 一般游戏处理是 明文打包-&加密包-&send&/p&&p&过程略……发包就在这里&/p&&img src=&/1fa2d69e5677e1caf6daf8d_b.png& data-rawwidth=&1055& data-rawheight=&841& class=&origin_image zh-lightbox-thumb& width=&1055& data-original=&/1fa2d69e5677e1caf6daf8d_r.png&&&p&&br&&/p&&p&啃一瓶药. &/p&&p&下断点!&/p&&img src=&/772cbbe51149d62cfbfb31ae6b2d0def_b.png& data-rawwidth=&1065& data-rawheight=&851& class=&origin_image zh-lightbox-thumb& width=&1065& data-original=&/772cbbe51149d62cfbfb31ae6b2d0def_r.png&&&p&从调用堆栈可以看到调用的函数地址&/p&&img src=&/6f727e48a54c5e248de2c2_b.png& data-rawwidth=&986& data-rawheight=&691& class=&origin_image zh-lightbox-thumb& width=&986& data-original=&/6f727e48a54c5e248de2c2_r.png&&&p&然后一个一个分析参数。 &/p&&p&首先逆向游戏是需要先对游戏的数据结构有一定了解才能模拟调用。 &/p&&p&比如说这里的&/p&&p&PUSH 30&/p&&p&CALL 00CDF02E&/p&&p&就是申请 0x30大小的内存大小嘛&/p&&img src=&/a95a56fbfc7_b.png& data-rawwidth=&963& data-rawheight=&1009& class=&origin_image zh-lightbox-thumb& width=&963& data-original=&/a95a56fbfc7_r.png&&&p&然后从这一层可以看到代码大概如下, 只要把0x30的参数按原来的形式填进去, 就能send&/p&&p&那个10002从其他地方分析(略)可以得出, 1是指背包位置, 最后一个2是指类型。 2是指背包.&br&所以如果背包第二个物品就是20002, 背包第三个物品就是30002.&br&EAX && 0x10就是获取背包位置&br&申请的内存是MOV ESI,EAX. &br&所以MOV WORD PTR DS:[ESI+10],AX&br&就是&br&*(WORD*)(ESI + 0x10) = 背包位置;&/p&&p&然后接下去看看别的参数&/p&&img src=&/afe5c5fe62c416_b.png& data-rawwidth=&907& data-rawheight=&708& class=&origin_image zh-lightbox-thumb& width=&907& data-original=&/afe5c5fe62c416_r.png&&&p&先将申请的内存清0&/p&&img src=&/00bed15fbe3fc35c5abf36c0c27c5221_b.png& data-rawwidth=&1143& data-rawheight=&937& class=&origin_image zh-lightbox-thumb& width=&1143& data-original=&/00bed15fbe3fc35c5abf36c0c27c5221_r.png&&&p&可以看出来这个0x30大小的数组内容是这些. &br&基本上就是0x10是填物品位置。&br&然后0x28和0x2C填0xFFFFFFFF&br&然后干货就是0x18,0x1C,0x20了&/p&&p&然后接下去继续返回上一层继续找EBX的来源会发现他其实就是[[[11F57AC]+34]+80]&br&所以&br&*(DWORD*)(ESI + 0x18) = [[[[11F57AC]+34]+80]+8]&br&*(DWORD*)(ESI + 0x1C) = [[[[11F57AC]+34]+80]+C]&/p&&p&至于0x29嘛, 刚刚准备写的时候发现&/p&&img src=&/bdfbba95be9cf50d4e97f51_b.png& data-rawwidth=&331& data-rawheight=&152& class=&content_image& width=&331&&&p&算了。 就写到这里啦。 &/p&&p&感觉下次得上欧美服或者韩服去才行。 国服真是越来越难调试了。&/p&&p&// by 7.29&br&想要我私信的自己先想好问什么问题好嘛?&br&前面一大堆人我都私信过了, 结果一大堆都是连问问题都问不清的人, 剩下的一堆就是无视了我的私信。&br&最后还有1个想让我教他的,我也教了差不多2个星期。 结果两天打渔三天晒网. &br&劝各位一句:只要是学编程相关的, 自认不是天才的情况下, 还是老老实实每天敲8个小时代码(看书), 不然你这样学到30岁都不知道能不能学有所成。&/p&&p&// by 8.13&br&我挺可以分享行业见闻的, 但是不代表也可以分享我个人的隐私, 跟其他人交流过经常都问你赚了多少钱, 搞了哪些游戏之类的……等等诸如此类的问题, 我拒绝回答敏感性的问题!&/p&&p&&br&&/p&&p&// by 8.17&/p&&p&论如何修改魔兽3的攻击为混乱攻击, 护甲是神圣护甲&/p&&img src=&/f556b3ebfc74abbc70e3_b.png& data-rawwidth=&1228& data-rawheight=&356& class=&origin_image zh-lightbox-thumb& width=&1228& data-original=&/f556b3ebfc74abbc70e3_r.png&&&p&改成&/p&&img src=&/8d8fba476fd78f977166f_b.png& data-rawwidth=&1235& data-rawheight=&469& class=&origin_image zh-lightbox-thumb& width=&1235& data-original=&/8d8fba476fd78f977166f_r.png&&&p&&br&&/p&&p&&br&&/p&&p&0x1:&/p&&p&在做之前要想好'切入点',
就是游戏在哪会调用到攻击类型这个玩意呢?&/p&&p&比如说可以在使用技能(包括普通攻击)之后, 造成伤害之前是需要获取的。&/p&&p&但是也不好入手, 因为使用技能的判断太多了, 不好区分。&/p&&p&又或者说。 可以这样!&/p&&img src=&/7bfc2cbcf5fc8e643b7d1da_b.png& data-rawwidth=&1117& data-rawheight=&285& class=&origin_image zh-lightbox-thumb& width=&1117& data-original=&/7bfc2cbcf5fc8e643b7d1da_r.png&&&p&把鼠标放到攻击上面, 他'应该'会获取当前的攻击类型,然后转换成Text -& Update 到界面&br&, 好, 接下去就试试这招!&/p&&p&………………&br&但是在获取这个攻击类型之前, 还要获取一个东西, 就是获取该英雄的Object.&br&如何在茫茫人海里面把该英雄找出来, 因为每一个英雄都有自己的攻击种类, 所以第一件事就是要找到自身的Object指针!&/p&&p&从人物HP入手, 买点装备丢装备来达到人物HP不断变化的目的. 最终找到了&/p&&img src=&/397e13b912ba4e3e10dbd544de1d83de_b.png& data-rawwidth=&1099& data-rawheight=&549& class=&origin_image zh-lightbox-thumb& width=&1099& data-original=&/397e13b912ba4e3e10dbd544de1d83de_r.png&&&p&一个是HP一个是MAXHP&br&随便掉点血就知道第一个是HP, 第二个是MAXHP.&br&附加OD, 在HP下访问断点&/p&&img src=&/4f6bd8f297fc34a_b.png& data-rawwidth=&659& data-rawheight=&789& class=&origin_image zh-lightbox-thumb& width=&659& data-original=&/4f6bd8f297fc34a_r.png&&&img src=&/e698c4edbc37e_b.png& data-rawwidth=&886& data-rawheight=&534& class=&origin_image zh-lightbox-thumb& width=&886& data-original=&/e698c4edbc37e_r.png&&&p&&br&&/p&&p&看上一层, &/p&&div class=&highlight&&&pre&&code class=&language-asy&&&span class=&mo&&023&/span&&span class=&n&&C8C1B&/span&
&span class=&o&&|&/span&&span class=&p&&.&/span&
&span class=&mi&&8&/span&&span class=&n&&BBE&/span& &span class=&mi&&&/span& &span class=&n&&mov&/span&
&span class=&n&&edi&/span&&span class=&p&&,&/span& &span class=&n&&dword&/span& &span class=&n&&ptr&/span& &span class=&p&&[&/span&&span class=&n&&esi&/span&&span class=&o&&+&/span&&span class=&mi&&248&/span&&span class=&p&&]&/span&
&span class=&p&&;&/span&
&span class=&n&&HP&/span&
&/code&&/pre&&/div&&p&ESI就是人物指针. 往上回溯, 看下ESI是怎么传递的&/p&&p&一直翻啊翻, 翻到函数头了&/p&&img src=&/69ee98ac198f1ea80a4c39c4411aed68_b.png& data-rawwidth=&753& data-rawheight=&341& class=&origin_image zh-lightbox-thumb& width=&753& data-original=&/69ee98ac198f1ea80a4c39c4411aed68_r.png&&&p&ESI=ECX. 一般ECX或者ESI传递的, 都是this指针, 就是类指针.&/p&&p&比如说 Class::AAA() 里面默认有一个参数传递this指针. 汇编自动生成, 但是代码省略.&/p&&img src=&/fdbb8485fa_b.png& data-rawwidth=&753& data-rawheight=&120& class=&origin_image zh-lightbox-thumb& width=&753& data-original=&/fdbb8485fa_r.png&&&p&同理, 顺便做个记号, 因为你总不可能记0x????? 老夫记忆力不行.&/p&&img src=&/68a2a78a40e6e3ad2b194e9c23cce62f_b.png& data-rawwidth=&912& data-rawheight=&135& class=&origin_image zh-lightbox-thumb& width=&912& data-original=&/68a2a78a40e6e3ad2b194e9c23cce62f_r.png&&&p&继续回溯!&/p&&img src=&/c18ac5a4dca7_b.png& data-rawwidth=&1210& data-rawheight=&142& class=&origin_image zh-lightbox-thumb& width=&1210& data-original=&/c18ac5a4dca7_r.png&&&p&&br&&/p&&p&函数头&/p&&img src=&/304ce33fcf15dd01b5dec3ec9cc9f099_b.png& data-rawwidth=&928& data-rawheight=&107& class=&origin_image zh-lightbox-thumb& width=&928& data-original=&/304ce33fcf15dd01b5dec3ec9cc9f099_r.png&&&p&继续回溯&/p&&img src=&/2f93cbfd4c_b.png& data-rawwidth=&817& data-rawheight=&554& class=&origin_image zh-lightbox-thumb& width=&817& data-original=&/2f93cbfd4c_r.png&&&p&&br&&/p&&p&发现了这样! 很明显就是一个递归嘛!&/p&&p&先不管这个递归, 直接先找到上一层, 因为如果你一直卡在这个递归里面, 万一你上一层也是N个递归或者说是一条死路呢? 所以你得先寻找到根源, 再做详细分析!&/p&&p&继续函数头部下断点, 那么你会发现&/p&&img src=&/eb83c7c7b2bdaf7e2df805_b.png& data-rawwidth=&1498& data-rawheight=&539& class=&origin_image zh-lightbox-thumb& width=&1498& data-original=&/eb83c7c7b2bdaf7e2df805_r.png&&&p&&br&&/p&&p&他的[ESP]=266E02B&/p&&img src=&/86ede7c5455_b.png& data-rawwidth=&718& data-rawheight=&156& class=&origin_image zh-lightbox-thumb& width=&718& data-original=&/86ede7c5455_r.png&&&p&&br&&/p&&p&也就是这里. 所以要过滤这个!使用条件断点!&/p&&p&[ESP]!=266E02B&/p&&img src=&/3bc417d71d_b.png& data-rawwidth=&1504& data-rawheight=&419& class=&origin_image zh-lightbox-thumb& width=&1504& data-original=&/3bc417d71d_r.png&&&p&&br&&/p&&img src=&/93be7dab7c174be1cc3946b_b.png& data-rawwidth=&883& data-rawheight=&149& class=&origin_image zh-lightbox-thumb& width=&883& data-original=&/93be7dab7c174be1cc3946b_r.png&&&p&总算找到Base了.&/p&&p&那么我们再来分析这个递归&/p&&img src=&/358a346ccd8a_b.png& data-rawwidth=&1031& data-rawheight=&719& class=&origin_image zh-lightbox-thumb& width=&1031& data-original=&/358a346ccd8a_r.png&&&p&&br&&/p&&p&好了。然后就可以动手了写代码了.&/p&&p&首先因为这个RootBase是在DLL里面的, 因为DLL的加载地址不同, 所以解析出的Base也不同, 这个需要知道PE文件的如何计算偏移的。&/p&&p&我就直接粗暴一点, 暴力搜索内存&/p&&img src=&/843b49bc92c166ab34952_b.png& data-rawwidth=&941& data-rawheight=&416& class=&origin_image zh-lightbox-thumb& width=&941& data-original=&/843b49bc92c166ab34952_r.png&&&img src=&/6a6e3e2edec8aabdafdb_b.png& data-rawwidth=&791& data-rawheight=&490& class=&origin_image zh-lightbox-thumb& width=&791& data-original=&/6a6e3e2edec8aabdafdb_r.png&&&img src=&/bd4d5c4d70_b.png& data-rawwidth=&385& data-rawheight=&502& class=&content_image& width=&385&&&img src=&/a9ecea3038ecc_b.png& data-rawwidth=&971& data-rawheight=&628& class=&origin_image zh-lightbox-thumb& width=&971& data-original=&/a9ecea3038ecc_r.png&&&p&MFC做个注入DLL…… 不要问我为嘛用MFC,因为它是VS自带的,方便立马用。反正关了灯都一样. &/p&&img src=&/9f95ee250ee1_b.png& data-rawwidth=&824& data-rawheight=&650& class=&origin_image zh-lightbox-thumb& width=&824& data-original=&/9f95ee250ee1_r.png&&&p&&br&&/p&&p&&br&&/p&&img src=&/edf87de1aa13b323c3a995b5620200dd_b.png& data-rawwidth=&583& data-rawheight=&209& class=&origin_image zh-lightbox-thumb& width=&583& data-original=&/edf87de1aa13b323c3a995b5620200dd_r.png&&&p&随便写一个。 不要太讲究了。 &/p&&p&编译! 注入! 测试! 结果如下:&/p&&img src=&/afbf90b6f7cdd_b.png& data-rawwidth=&121& data-rawheight=&418& class=&content_image& width=&121&&&p&好啦。然后发现了辣么多个Base, 然后找名字!&/p&&p&&br&&/p&&p&从名字入手. 这个英雄叫'虚入梦'. 顺便这个游戏是UTF-8编码(略过如何求证的).&/p&&p&所以这个英雄名称对应的编码是=EE6A2A6&/p&&img src=&/fc7ecf9d39ad_b.png& data-rawwidth=&243& data-rawheight=&190& class=&content_image& width=&243&&&p&打开CE, 搜一下&/p&&img src=&/d4dff0a32b1e0eeafc7121c_b.png& data-rawwidth=&515& data-rawheight=&404& class=&origin_image zh-lightbox-thumb& width=&515& data-original=&/d4dff0a32b1e0eeafc7121c_r.png&&&p&务必要记住把 扫'只读'内存勾上&/p&&p&然后直接一个一个修改这个Text, 看下哪个是对应的名称. 比如说&/p&&img src=&/72f7aa6ad384d9adf29a1d_b.png& data-rawwidth=&362& data-rawheight=&183& class=&content_image& width=&362&&&p&手动修改一个&/p&&img src=&/c42ce206a4acc93b7a0b_b.png& data-rawwidth=&619& data-rawheight=&268& class=&origin_image zh-lightbox-thumb& width=&619& data-original=&/c42ce206a4acc93b7a0b_r.png&&&img src=&/eedca09cbd5a7bbfaba7d0_b.png& data-rawwidth=&559& data-rawheight=&194& class=&origin_image zh-lightbox-thumb& width=&559& data-original=&/eedca09cbd5a7bbfaba7d0_r.png&&&p&运气好, 第一个就是。 &br&如果没变化, 那就一个一个往下改。 记得如果不是的话, 要改回去. 再改下一个。 &br&也可以用二分&修改&(查找)法, 直接一次性改一半. 如果不存在的话, 那肯定在另一半。时间复杂度O()=O(logn) 必须学以致用!!!&/p&&p&接下来就是开启OD, 附加游戏.&/p&&img src=&/862b689f27c3d0eede9459_b.png& data-rawwidth=&617& data-rawheight=&625& class=&origin_image zh-lightbox-thumb& width=&617& data-original=&/862b689f27c3d0eede9459_r.png&&&p&下一个访问断点.&/p&&img src=&/a17eeef91b896_b.png& data-rawwidth=&556& data-rawheight=&594& class=&origin_image zh-lightbox-thumb& width=&556& data-original=&/a17eeef91b896_r.png&&&p&断下来了, 就是一个字符串循环复制, 返回到上一层CALL&/p&&img src=&/536fd04b7de658af7ef3e_b.png& data-rawwidth=&921& data-rawheight=&213& class=&origin_image zh-lightbox-thumb& width=&921& data-original=&/536fd04b7de658af7ef3e_r.png&&&p&eax就是人物对象指针.
edi就是一个缓冲区, 把人物指针的Name复制到缓冲区.&/p&&img src=&/362e6daff3_b.png& data-rawwidth=&960& data-rawheight=&464& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&/362e6daff3_r.png&&&p&继续回溯&/p&&img src=&/1df162ddac6647d73abceb_b.png& data-rawwidth=&903& data-rawheight=&180& class=&origin_image zh-lightbox-thumb& width=&903& data-original=&/1df162ddac6647d73abceb_r.png&&&p&这个CALL就可以用了。
&/p&&div class=&highlight&&&pre&&code class=&language-asy&&&span class=&n&&PUSH&/span& &span class=&mh&&0x200&/span&
&span class=&n&&PUSH&/span& &span class=&n&&Buffer&/span&
&span class=&n&&MOV&/span& &span class=&n&&ECX&/span&&span class=&p&&,&/span& &span class=&n&&pObjectPointer&/span&
&span class=&n&&CALL&/span& &span class=&mf&&235F&/span&&span class=&mi&&640&/span&
&/code&&/pre&&/div&&p&&br&&/p&&p&然而我在观察地址的时候, 就观察出来&/p&&img src=&/20a94d93dba_b.png& data-rawwidth=&1225& data-rawheight=&136& class=&origin_image zh-lightbox-thumb& width=&1225& data-original=&/20a94d93dba_r.png&&&p&&br&&/p&&p&因为他们2个地址是一毛一样的!&/p&&img src=&/5dd3beaaceea9c75a5383_b.png& data-rawwidth=&1457& data-rawheight=&435& class=&origin_image zh-lightbox-thumb& width=&1457& data-original=&/5dd3beaaceea9c75a5383_r.png&&&p&ECX=[ESI+238]&br&0DDF3CC4=[14C]&/p&&img src=&/33b1a3785ceadcb3b5e81b6_b.png& data-rawwidth=&1375& data-rawheight=&624& class=&origin_image zh-lightbox-thumb& width=&1375& data-original=&/33b1a3785ceadcb3b5e81b6_r.png&&&p&其实往上跟也有可能可以关联起来, 但是我懒得继续回溯了……&/p&&img src=&/afd08d1cb851_b.png& data-rawwidth=&119& data-rawheight=&373& class=&content_image& width=&119&&&p&所以……&/p&&img src=&/5bbca7a1da_b.png& data-rawwidth=&680& data-rawheight=&292& class=&origin_image zh-lightbox-thumb& width=&680& data-original=&/5bbca7a1da_r.png&&&p&&br&&/p&&img src=&/987ba2c5c9d8d6a14159_b.png& data-rawwidth=&439& data-rawheight=&81& class=&origin_image zh-lightbox-thumb& width=&439& data-original=&/987ba2c5c9d8d6a14159_r.png&&&p&&br&&/p&&img src=&/3df9dfafcfa41e_b.png& data-rawwidth=&192& data-rawheight=&374& class=&content_image& width=&192&&&p&发现了有些地址可能是其他分类的吧? &/p&&p&分类判断懒得写了。 干脆&/p&&img src=&/2daa296d0bfadeb6b7cf_b.png& data-rawwidth=&328& data-rawheight=&43& class=&content_image& width=&328&&&p&&br&&/p&&img src=&/62f088a5daca02cdb92a5_b.png& data-rawwidth=&1454& data-rawheight=&750& class=&origin_image zh-lightbox-thumb& width=&1454& data-original=&/62f088a5daca02cdb92a5_r.png&&&p&结果就是&/p&&img src=&/b915effcf48ed_b.png& data-rawwidth=&532& data-rawheight=&386& class=&origin_image zh-lightbox-thumb& width=&532& data-original=&/b915effcf48ed_r.png&&&p&好啦。 至少有一个是对的. &br&因为刚才游戏不小心被我弄崩了。我就顺便重开而且换了个游戏.&br&暂时目的达到了. 获取到当前角色. (遍历所有英雄小兵之类的暂时没这个需求,不做)&/p&&p&下一步就是修改攻击种类:&/p&&img src=&/b4fb55e45f299d440f178923_b.png& data-rawwidth=&1205& data-rawheight=&547& class=&origin_image zh-lightbox-thumb& width=&1205& data-original=&/b4fb55e45f299d440f178923_r.png&&&p&按照刚才的步骤, 搜索显示的Text&/p&&img src=&/177cd69cd55aa98b9173c_b.png& data-rawwidth=&921& data-rawheight=&477& class=&origin_image zh-lightbox-thumb& width=&921& data-original=&/177cd69cd55aa98b9173c_r.png&&&p&&br&&/p&&p&2分搜索大法好, 3次即可到达。&/p&&p&下访问断点&/p&&img src=&/1ccd89e8ceb913e9630e65_b.png& data-rawwidth=&721& data-rawheight=&802& class=&origin_image zh-lightbox-thumb& width=&721& data-original=&/1ccd89e8ceb913e9630e65_r.png&&&p&惯例的字符串复制操作, 返回到上一个函数!&/p&&p&&br&&/p&&img src=&/60ca3f8dd396f_b.png& data-rawwidth=&914& data-rawheight=&421& class=&origin_image zh-lightbox-thumb& width=&914& data-original=&/60ca3f8dd396f_r.png&&&p&&br&&/p&&p&EAX就是Text, &/p&&img src=&/128c6e8b61bc01e7b4d289ebcfe286af_b.png& data-rawwidth=&1185& data-rawheight=&675& class=&origin_image zh-lightbox-thumb& width=&1185& data-original=&/128c6e8b61bc01e7b4d289ebcfe286af_r.png&&&p&上面的MOV EAX, [ESP+14]. 就是从上一个函数传递过来的参数. 返回去看好一下.&/p&&p&上一层CALL看参数&/p&&img src=&/22f933ffa35e7906ddb9c6aea623edcf_b.png& data-rawwidth=&1169& data-rawheight=&736& class=&origin_image zh-lightbox-thumb& width=&1169& data-original=&/22f933ffa35e7906ddb9c6aea623edcf_r.png&&&p&第一个参数&/p&&p&&br&&/p&&p&第二个参数&/p&&img src=&/2fae35e0c4_b.png& data-rawwidth=&627& data-rawheight=&462& class=&origin_image zh-lightbox-thumb& width=&627& data-original=&/2fae35e0c4_r.png&&&p&就是上上张图, 就懒得复制了&/p&&p&第三个参数&/p&&img src=&/563aada8d9b5e5f51ac9e8f_b.png& data-rawwidth=&977& data-rawheight=&816& class=&origin_image zh-lightbox-thumb& width=&977& data-original=&/563aada8d9b5e5f51ac9e8f_r.png&&&img src=&/b7e6b24bec2_b.png& data-rawwidth=&426& data-rawheight=&136& class=&origin_image zh-lightbox-thumb& width=&426& data-original=&/b7e6b24bec2_r.png&&&p&就是这个玩意。 那么我们要找的是种类。 也就是第二个参数=[ESP+0BC]&br&然后往上分析……过程略, 多断点几次的事, 我就不废话了。 &/p&&p&然后往上慢慢下断看参数, 直到……&/p&&img src=&/1afec82ac1c30c17a8bf9_b.png& data-rawwidth=&1461& data-rawheight=&832& class=&origin_image zh-lightbox-thumb& width=&1461& data-original=&/1afec82ac1c30c17a8bf9_r.png&&&p&&br&&/p&&img src=&/edc41b96e8e8_b.png& data-rawwidth=&1511& data-rawheight=&446& class=&origin_image zh-lightbox-thumb& width=&1511& data-original=&/edc41b96e8e8_r.png&&&p&mov
edx, dword ptr [esp+10]&br&mov
ecx, dword ptr [edx+2ADD3B0]&/p&&img src=&/eba612405eecc7b1abca41cefe4314f2_b.png& data-rawwidth=&1212& data-rawheight=&198& class=&origin_image zh-lightbox-thumb& width=&1212& data-original=&/eba612405eecc7b1abca41cefe4314f2_r.png&&&p&接下去就找[ESP+34]&/p&&img src=&/db2bbe2282910_b.png& data-rawwidth=&1203& data-rawheight=&529& class=&origin_image zh-lightbox-thumb& width=&1203& data-original=&/db2bbe2282910_r.png&&&p&既然这样, 那么我们试试.&/p&&p&首先&/p&&img src=&/a6b9a79c7ef98edf798b9_b.png& data-rawwidth=&648& data-rawheight=&150& class=&origin_image zh-lightbox-thumb& width=&648& data-original=&/a6b9a79c7ef98edf798b9_r.png&&&p&&br&&/p&&p&所以 [0F923CC4] + 1E8 = EDI&/p&&p&EAX = 攻击种类 = [EDI + 0 * 4 + 0xF4]. (已经探明EBX=0)&/p&&p&所以……&/p&&img src=&/587fff5c99ac6b1dba5e543d15263d50_b.png& data-rawwidth=&583& data-rawheight=&357& class=&origin_image zh-lightbox-thumb& width=&583& data-original=&/587fff5c99ac6b1dba5e543d15263d50_r.png&&&p&&br&&/p&&p&我们换一个有混乱攻击的号就知道。 混乱攻击的时候。 这个值是=5的。&/p&&p&所以我们改成5试试。&/p&&img src=&/41b71650bfd81153feed8de_b.png& data-rawwidth=&1126& data-rawheight=&361& class=&origin_image zh-lightbox-thumb& width=&1126& data-original=&/41b71650bfd81153feed8de_r.png&&&p&嘿嘿!&/p&&p&然后是不是有效。 最上面的那2张图有数值测试!&/p&&p&顺便…… 肯定是联网无效的, 因为有数值校验的。可以单机爽一下!&/p&&p&而且……哪怕你用各种作弊图, 暂时老夫还没发现哪个可以改攻击类型!&/p&&p&神圣护甲同理, 我就多此一举了。&/p&&p&还有几张图顺便贴了&/p&&img src=&/23ed798ab3b_b.png& data-rawwidth=&663& data-rawheight=&359& class=&origin_image zh-lightbox-thumb& width=&663& data-original=&/23ed798ab3b_r.png&&&img src=&/fb60ffb7ca984e6a25d6028_b.png& data-rawwidth=&1210& data-rawheight=&783& class=&origin_image zh-lightbox-thumb& width=&1210& data-original=&/fb60ffb7ca984e6a25d6028_r.png&&&p&&br&&/p&&p&这篇文章到这里就结束了。 以后在这篇文章也不会更新技术类的话题了。&br&顺便!&br&不知哪位英语比较好? 最近学英语陷入死循环, 各种不爽背单词, 但是不背也不行。
有没有能拯救我……必有酬谢!&/p&&p&很多人都问怎么学, 其实嘛&/p&&p&&a href=&///?target=http%3A///forumdisplay.php%3Ff%3D20& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&『求助问答』&i class=&icon-external&&&/i&&/a&&/p&&img src=&/44e74fcc4f0d96deaf086e_b.png& data-rawwidth=&1055& data-rawheight=&206& class=&origin_image zh-lightbox-thumb& width=&1055& data-original=&/44e74fcc4f0d96deaf086e_r.png&&&p&我并非推荐你们去参加培训, 而是这里有课程目录。&br&按照这个目录去学就好了。&br&例如:&a href=&///?target=http%3A///portal.php%3Fmod%3Dview%26aid%3D10& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&游戏安全工程师培训介绍-WebMaster-15PB信息安全教育&i class=&icon-external&&&/i&&/a&&/p&&p&老夫的git项目,无聊的时候写的LOL刷金币。 可以参考一下。 &br&强调一下: 只做技术交流。 不要瞎搞!&br&&a href=&///?target=https%3A///VideoCardGay/LOL_China& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - VideoCardGay/LOL_China&i class=&icon-external&&&/i&&/a&&/p&&p&给各位想自学的人一点学习方向的建议。&br&一般分2种, 一种是为了编程而学外挂, 一种是为了学外挂而编程。&br&第一种就是以编程为主, 对外挂技术了解一下。 这里就不谈了, 正统道路的学习方法多得是。 我就不一一举例了。&br&第二种方法, 我以0编程基础来举例。&br&1:要熟悉C/C++语法, 可以做一些像模像样的小玩意, 比如说控制台下的XX管理系统, 读写文件, 什么银行存取金币系统之类这样的小玩意。
这部分后面就要应用在你的外挂控制台上&br&如:&a href=&/p/& class=&internal&&知乎专栏&/a&&br&2:学习完上面的,我个人建议开始学习socket,
功能大概就要激活CDK,校验CDK的时间, 用长连接。 大概就是生成CDK, 把CDK保存到Server, 然后Client激活CDK要去Server校验, 并且用心跳来保持连接。 &br&这一步后面要应用到 防破解, 收费系统, 还有一些比如说组队, 交易, 邮寄都可以丢到Server上完成, 比如说不同电脑下, 如何让他们同一个大区同一个地图下如何分配组队和交易, 而且还能进一步锻炼你的编程能力。 建议要用非阻塞的异步socket。(用HTTP来做验证的可以忽略这一步)&br&3: 这个时候可以做点有意思的, 比如说先学会用模拟按键+识图 去做某个游戏的登录。就用LOL来举例子, 可以做LOL的客户端登录。 用模拟按键+鼠标操作, 然后用识图来判断当前在哪个步骤了。 图片识别可以用OpenCv库&a href=&///?target=http%3A//docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/template_matching/template_matching.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Template Matching&i class=&icon-external&&&/i&&/a&,然后如果出现验证码, 可以用网上那种打码系统,QQ游戏的验证码挺便宜的, 最多几分钱一次。&br&如:&a href=&///?target=https%3A///VideoCardGuy/AutoLoginByBnsChina& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&VideoCardGuy/AutoLoginByBnsChina&i class=&icon-external&&&/i&&/a&&br&4: 这个时候你可以写一个控制台(Console模式), 保存帐号, 读取帐号, 开始登录。 如何判断到游戏登录完毕, 就登录下一个帐号, 保存登录失败(如密码错误)的日志, 操作完毕的日志。 如何再下一次启动的时候忽略已经成功的帐号。 中间的种种操作, 自己做一遍就知道了。&br&如:&a href=&///?target=https%3A///VideoCardGuy/AutoLoginByBnsChina& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&VideoCardGuy/AutoLoginByBnsChina&i class=&icon-external&&&/i&&/a&&br&5: 这个时候建议把Console模式的控制台改成UI, UI可以用C#来做,也可以用MFC/QT来做, 用哪个语言来做无所谓,
学习一下多线程的操作, 如何刷新数据到UI, 如何从Server查询CDK返回到控制台, 比如说剩余时间对吧.&br&6:这个时候就开始学习简单的汇编指令, 学习如何使用调试器, 怎么去逆向游戏的人物属性, 把基本的HP,MP,攻击力之类的逆向出来, 然后显示到控制台, 这里需要比较多的API知识, 比如如何注入DLL到游戏, 比如运用指针读取游戏的数据. 这一步做完你已经可以自己写一个UI注入到游戏里面, 显示出人物各种属性,周围怪物,Npc。 你也需要一些基本的数据结构知识,比如链表,二叉树,数组,std::vector,std::string在汇编的表现形式。&br&7:可以逆向游戏的功能, 找到游戏的明文组包函数, 然后下断后就能断下绝大部分游戏的功能, 然后想办法模拟调用, 你就可以做到吃药, 释放技能,交接任务。 这一步我就不多说了,反正完成了几乎是搞完了。&br&8: 把所有功能和UI控制台和Server端关联起来。 就是一个完整版的挂了。 下面就是一步一步添加更多的功能了,要考虑用脚本去写主线了,要考虑框架的问题了,要学习如何反反调试,如何多开,防检测,过游戏保护,做资源优化,写导航寻路等等……当你都学完之后,那么恭喜你,你已经成功获得&外挂全能大神&的称号了。&/p&&p&&a href=&/people/wu-you-wu-qiu-wu-you-wu-qiu/pins/posts& class=&internal&&无忧无求 - 知乎&/a& 偶尔抽空写几篇教程&/p&&p&&b&如果是妹子,请私信我探讨如何学习编程,&/b&&/p&&p&&b&如果是汉子,拜托,网上这么多学习资源,你都没法自学。我也是没有人教的啊!!!那你自生自灭吧!&/b&&/p&&p&&br&&/p&&p&&b&---------------------------------&/b&&/p&&p&感觉不少人挺急功近利的, 都想着写挂是一门快速入门,快速赚大钱的行业。 我真是呵呵了。特别是大一或者大二的学生。&/p&&p&我就想说几点:&/p&&p&第一,你要达到一个正常可以上班的程序员的水平, 从0开始你要花多久?&/p&&p&第二,你要学习Window API的一些简单处理,搭建属于自己的工具,需要花多久?&/p&&p&第三,你学习汇编,逆向要花多久?&/p&&p&第四,你要学习逆向游戏来分析多开,代码检测要多久?&/p&&p&第六、假设你把上述所有问题都解决了, 你会发现一个挡在了无数能写挂,而且写得很完美很完善,但是赚不了钱的问题, 就是封号!
行为检测,代码检测,堆栈检测,IP检测,游戏区域检测,这些怎么过?怎么测试? 要知道像LOL,梦幻西游这种游戏, 你要是能完美解决封号的话, 年收入百万已经是很低调的说法。实际上整个中国能做到的,又有几个&&b&敢做&&/b&呢?&/p&&p&&br&&/p&&p&第七、假设你解决了封号的问题, 如果你写了1级-满级的主线, 你最后发现, 完成了没几天,游戏官方直接把游戏主线给的金币和物品全和谐了, 你花尽心思写了组队副本刷BOSS,游戏官方直接把副本任务和给的物品直接全和谐了,怎么找出钱路线?你要考虑你每个号都不是神装, 有些副本你输出不够, 根本打不了。 只能玩家去打。&/p&&p&&br&&/p&&p&&br&&/p&&p&---------------------------&/p&&p&有苏州的资深吃货老司机吗?
&/p&&p&有的话请务必私信带带我!
&/p&&p&PS: 一个人出去点菜好尴尬!1,2个菜嫌少。3个菜就是浪费&/p&
我也来简单回答一下题主。 首先, 外挂是一门很大很注重实践的一门技术大类。 在这个技术大类之下还分很多小类。 一般来说分逆向,编写逻辑 这2方面 所谓逆向,也就是分析游戏的客户端,寻找相关功能的函数 而编写逻辑,如掉线重登,自动打怪,自动吃药 之类…
&p&闲来睡不着,帮大家把相关信息整理一遍,主要在于告诉大家究竟发生了什么~&br&&/p&&p&首先是昨天早上ig nga论坛和花猫发的不明不白的微博。&/p&&img data-rawheight=&960& src=&/17b0c505bbc0733fec0ef1bb9ccca494_b.jpg& data-rawwidth=&540& class=&origin_image zh-lightbox-thumb& width=&540& data-original=&/17b0c505bbc0733fec0ef1bb9ccca494_r.jpg&&&br&&img data-rawheight=&177& src=&/5fcc2feef7e5_b.jpg& data-rawwidth=&478& class=&origin_image zh-lightbox-thumb& width=&478& data-original=&/5fcc2feef7e5_r.jpg&&&img data-rawheight=&960& src=&/d0cafdebc13_b.jpg& data-rawwidth=&540& class=&origin_image zh-lightbox-thumb& width=&540& data-original=&/d0cafdebc13_r.jpg&&&img data-rawheight=&2276& src=&/bd8c44cf79e8df1852d15_b.png& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/bd8c44cf79e8df1852d15_r.png&&&p&之后这些微博引起了许多人的猜测,但是能把矛头清楚指向diya,肯定是故意为之的。&/p&&p&之后解说们直接捅破这层窗户纸&/p&&img data-rawheight=&2276& src=&/d381eef81adac2eaa06f2d_b.png& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/d381eef81adac2eaa06f2d_r.png&&&br&&img data-rawheight=&2276& src=&/bb3e23cd14ca48ff50298_b.png& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/bb3e23cd14ca48ff50298_r.png&&&img data-rawheight=&1091& src=&/b6b1fb1b3234_b.jpg& data-rawwidth=&1440& class=&origin_image zh-lightbox-thumb& width=&1440& data-original=&/b6b1fb1b3234_r.jpg&&&br&&p&然后就是linkin在群里面diya&/p&&img data-rawheight=&960& src=&/b213bb3b698ee7ead135dd_b.jpg& data-rawwidth=&540& class=&origin_image zh-lightbox-thumb& width=&540& data-original=&/b213bb3b698ee7ead135dd_r.jpg&&&p&再之后&/p&&p&就在a站b站出现了对diya表示质疑的视频。&/p&&p&a站视频已删除,b站av号为&a href=&tel:04258&/a&。&/p&&p&到这个时候相信大家已经明白发生了什么事。&/p&&img data-rawheight=&48& src=&/62e56c3eb3_b.jpg& data-rawwidth=&48& class=&content_image& width=&48&&&br&&p&然后apac官方出来给diya站台。&/p&&img data-rawheight=&2276& src=&/afd843beeb56c8bf410c_b.png& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/afd843beeb56c8bf410c_r.png&&&br&&p&之前表示质疑的人纷纷顾左右而言他&/p&&img data-rawheight=&2276& src=&/ee960d8b366d0bbf87c170_b.png& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/ee960d8b366d0bbf87c170_r.png&&&br&&img data-rawheight=&2276& src=&/75cc7a2060183add642cf7d_b.png& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/75cc7a2060183add642cf7d_r.png&&&br&&p&但是还有人继续坚持质疑的立场,&/p&&p&鹅皇:大牙直播让nga的鹅皇预测这次apac的冠军,鹅皇表示『要看那个人按没按那个键』&/p&&p&linkin:&/p&&img data-rawheight=&1136& src=&/c87dfca13feb216ac907a8a_b.jpg& data-rawwidth=&639& class=&origin_image zh-lightbox-thumb& width=&639& data-original=&/c87dfca13feb216ac907a8a_r.jpg&&&br&&p&同时在午夜时候b站视频更新,从油管搬运了p2,从p2来看非常可疑。&/p&&p&油管的视频搜索『vg diya overwatch』就能搜到,up主名为overwatch cn police,并且很早就盯上了diya,早就发了些diya零零碎碎的可疑片段。&/p&&p&论坛和贴吧人民也发挥了极大的指挥,纷纷找出了鼠标挂的信息&/p&&p&&a href=&///?target=http%3A///programs/view/SjCsoIIKxVY%23%3Fcuid%3D29CE8ADDCAA176EB27B28F& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/programs/view&/span&&span class=&invisible&&/SjCsoIIKxVY#?cuid=29CE8ADDCAA176EB27B28F&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&|553&timestamp=4&_client_version=7.4.5 &/p&&p&链接为鼠标挂的讲解&/p&&img data-rawheight=&722& src=&/1c75ba58279dad8af34c2c_b.jpg& data-rawwidth=&666& class=&origin_image zh-lightbox-thumb& width=&666& data-original=&/1c75ba58279dad8af34c2c_r.jpg&&&p&看得出diya的手部姿势非常怪异,而且麦克雷基本用不到鼠标滚轮&/p&&img data-rawheight=&750& src=&/039bcdf0eac2f9c850ec7b2fd298334b_b.jpg& data-rawwidth=&421& class=&origin_image zh-lightbox-thumb& width=&421& data-original=&/039bcdf0eac2f9c850ec7b2fd298334b_r.jpg&&&br&&p&虽然nga人民生活在水深火热的删帖中,依然表现出了极大的热情&/p&&img data-rawheight=&900& src=&/ecf0e6b1501d01a_b.jpg& data-rawwidth=&506& class=&origin_image zh-lightbox-thumb& width=&506& data-original=&/ecf0e6b1501d01a_r.jpg&&&br&&img data-rawheight=&900& src=&/2e991c276d740ef682ed8_b.jpg& data-rawwidth=&506& class=&origin_image zh-lightbox-thumb& width=&506& data-original=&/2e991c276d740ef682ed8_r.jpg&&&br&&br&&br&&p&基本就是这些信息,答主不负责做出结论。等待暴雪官方给出一个权威的解释。&/p&&p&继续保持吃瓜姿势。&/p&&img data-rawheight=&48& src=&/62e56c3eb3_b.jpg& data-rawwidth=&48& class=&content_image& width=&48&&&br&&p&=================================================&br&10.3更新&/p&&p&b站视频更新了p3 据说更令人信服,但是答主身无wifi 还没观看&br&同时补上一个很鬼畜的视频&a href=&tel:09693&/a&&/p&&p&补上老李群里的截图,有网友认为暗指diya事件&/p&&p&截图来自网友&/p&&img data-rawheight=&1136& src=&/ddc0f96cbb8e90fb13d6cf166dd29a00_b.png& data-rawwidth=&639& class=&origin_image zh-lightbox-thumb& width=&639& data-original=&/ddc0f96cbb8e90fb13d6cf166dd29a00_r.png&&&br&&p&评论里nga论坛的大神也来到了知乎 &/p&&p&nga id为AbsintheW 知乎id为王彦博,希望大神继续补充找到的信息。&/p&&p&ig linkin表示将一站到底&/p&&img data-rawheight=&1136& src=&/d6ebddb0f879_b.png& data-rawwidth=&639& class=&origin_image zh-lightbox-thumb& width=&639& data-original=&/d6ebddb0f879_r.png&&&br&&p&元气表示——linkin说的对&/p&&img data-rawheight=&2276& src=&/54f98de0de57a6ff78c116f3a1f43b29_b.png& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/54f98de0de57a6ff78c116f3a1f43b29_r.png&&&br&&p&vg也表示将一抗到底&/p&&img data-rawheight=&2276& src=&/6f2fa18271bbc721a7f515fe46bf706c_b.png& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/6f2fa18271bbc721a7f515fe46bf706c_r.png&&&br&&img data-rawheight=&2276& src=&/7b7ec93db96a43a_b.png& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/7b7ec93db96a43a_r.png&&&br&&p&=======================================================&/p&&p&10.4更新&/p&&p&补充几个新出现的视频&/p&&p&ash职业战队的bbcat发视频分析之前有关diya的质疑视频 av号6517538&/p&&p&演员diya版视频被删,up主重新上传 av号6519608&/p&&p&apac中国区冠军队伍skg的flood不小心说出了大牙的qq号。。不对,是似乎不小心说出了自己对diya事件的看法,『强不强diya都不应该开挂』——av号6508920&/p&&p&同时fury连续发微博似乎暗指diya事件&/p&&img data-rawheight=&2276& src=&/8f3c4fdca19afde5619dbae_b.png& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/8f3c4fdca19afde5619dbae_r.png&&&br&&p&=================================================&/p&&p&10.5更新&/p&&p&感谢王王和浅浅两位知友的补充&/p&&p&首先是lyb战队的狼雨 &/p&&p&答主表示并不知道1024是什么(手动滑稽)&/p&&img data-rawheight=&2276& src=&/e7c114ead76_b.png& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/e7c114ead76_r.png&&&br&&p&还有夏一可在b站的回复(截图来自网友,答主并未证实)&/p&&img data-rawheight=&960& src=&/c8c12e62e87dbd08a9db43c_b.png& data-rawwidth=&540& class=&origin_image zh-lightbox-thumb& width=&540& data-original=&/c8c12e62e87dbd08a9db43c_r.png&&&br&&p&=============================&/p&&p&10.6 更新&/p&&p&VG电子俱乐部官方 在B站发布反驳视频——av6561051&/p&&img data-rawheight=&555& src=&/v2-2ee078a475a9a6926feb76b3cb4a47a7_b.png& data-rawwidth=&600& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&/v2-2ee078a475a9a6926feb76b3cb4a47a7_r.png&&&br&&br&&img data-rawheight=&395& src=&/v2-60bc7feb03646a6fecce78_b.png& data-rawwidth=&600& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&/v2-60bc7feb03646a6fecce78_r.png&&&br&&img data-rawheight=&393& src=&/v2-ea648a8b4acee8ee1378_b.png& data-rawwidth=&600& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&/v2-ea648a8b4acee8ee1378_r.png&&&p&同时,暴雪做出官方通告&/p&&img data-rawheight=&1066& src=&/v2-d9f17cfad26f6ca6361ee_b.png& data-rawwidth=&600& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&/v2-d9f17cfad26f6ca6361ee_r.png&&&br&&p&以下是评论区转播&/p&&img data-rawheight=&1066& src=&/v2-83a565ad73a5cf5063d72_b.png& data-rawwidth=&600& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&/v2-83a565ad73a5cf5063d72_r.png&&&p&经过这几天的整理,想必大家对diya事件的轮廓基本已经清晰,除非再有大新闻 答主不会再更新啦。&/p&&p&顺便安利个非常油菜花的视频『葛平版diya演员』——av号&a href=&tel:40869&/a&&/p&&p&让我们期待diya在国际赛上的表现吧。&/p&&p&接受评论区意见,删除倾向性语言,仅作事件整理。&/p&
闲来睡不着,帮大家把相关信息整理一遍,主要在于告诉大家究竟发生了什么~ 首先是昨天早上ig nga论坛和花猫发的不明不白的微博。 之后这些微博引起了许多人的猜测,但是能把矛头清楚指向diya,肯定是故意为之的。之后解说们直接捅破这层窗户纸 然后就是link…
作为一个DNF7年玩家以及前游戏策划,我说几点吧,重要性依次递增:&br&&br&1.难度&br&
跟前面答案的观点不同,我认为目前版本的DNF难度并不高,恰恰相反,现在DNF大部分地下城的难度太低了,我本来已经准备好连100hit打死BOSS,结果才3hit它就倒下了。你可能要反对,你可能要说安徒恩、镇魂曲、巨龙地下城的难度高得爆表。但这些地下城的占比是多少?什么?你说高难度地下城奖励丰厚才算地下城,其他都不算?装备是否顶级对大多数玩家有那么重要么?所有装备都顶级了,没目标了才会让人不想玩吧?60版本时满大街能穿紫装的都少,DNF不照样火爆?游戏的重点是给玩家带来心流体验,玩家丧失格斗快感、失去追求目标,那还玩个JJ?&br&&br&2.平衡性&br&
在60版本除了召唤外全民下水道的版本,也没多少人讨论平衡性。平衡性问题最早的导火索来自70版本末期,痛苦之村列瑟芬的BOSS防御减免95%,导致吃武器强化的百分比职业的输出能力远远超过了不吃武器强化的固伤职业。发现问题的Nexon赶紧在下个版本降低了所有怪物的防御,同时提高了所有怪物的血量,然而一个游戏的数值系统不是这么简单的,在这次改版后,DNF的平衡性就彻底乱套了。直到现在,Nexon公司还在NB、SB、TB、FB的修补当年留下的问题。86版本目前状态来看,除了四大天王(魔道、驱魔、修罗、鬼泣)过分全能且强势,一些根本没几个人玩的冷门职业Nexon懒得改以外,其余职业的平衡性算是可以了。&br&&br&3.玩家等级密度&br&
DNF完全照搬了WOW的等级上限提升路线,60-&70-&80-&85-&86,现在版本从1级升到86级要好久好久好久,前50级比较快,50级之后越来越慢。然而DNF的图都是跟等级严格对应的,1级一个图。以前所有玩家被分成60份,现在所有玩家被分成86份,而且大多数玩家都卡在较高的级别。这就导致级别较低的玩家&b&根本找不到人组队&/b&,好好的一个网游就变成了一个单机游戏,请问在单机游戏中花样吊打BOSS的成就感有网游来的舒服么?这个问题后来还被严重加剧,原因是下面第4点。&br&&br&4.引流能力&br&渣!画!质!拿!什!么!吸!引!外!貌!协!会!真以为自己是Minecraft么?&br&&br&5.外挂&br&
我相信谈到DNF哪不好,总会有一大堆人第一反应闪过来就是外挂。然而我不得不说一件事实:有人用外挂,恰恰证明你的游戏足够优秀。如果不是你的游戏让我有追求的动力,鬼用外挂啊?而且还有更多的情况是,我自己不敢开外挂怕封号,有人开外挂带我我简直高兴地不行!!而且细心的朋友也发现了,从60版本~86版本,腾讯对外挂的打击力度在不断放宽,然而外挂却没有60版本那么严重了。所以,一般玩家使用外挂不会对游戏造成太大的影响,腾讯对于开外挂的普通玩家也往往会多给次机会,先断线个几小时,屡教不改再进行惩罚。然而外挂对游戏有没有危害呢?答案是:有。什么危害?看第6条。&br&&br&6.工作室&br&
国服的DNF非常非常得卡,内存占用爆高,从现在的DNF版本看,2G以下内存基本没得玩。与此同时,很多人发现了韩服的DNF并没有那么卡,既然Nexon没有问题,那自然就是腾讯的问题。很多人就想当然的认为是TP优化做的差。殊不知TP是故意加高内存占用的。游戏公司故意加大内存占用率的现象不多见,但如果你足够敏锐,就能够发现,这么做的都是热门游戏。因为,有热门游戏的地方就有工作室,工作室往往一台机器多开用着外挂狂刷资源,占用游戏公司的服务器不说,还一分钱都不冲,&b&加高游戏的内存占用可以提高工作室的硬件成本,一定程度上提高了工作室的门槛,限制了工作室的数目,但副作用也很明显,客户端稳定性变差,就是大家俗称的『闪退』&/b&。工作室对于任何一个经济系统较为开放的游戏的打击都是致命的(所以现在的手游、页游的经济系统都很封闭,都喜欢搞什么绑定钻石),会严重破坏游戏的经济系统,导致大范围货币贬值,间接造成玩家的虚拟资产贬值,会让玩家感觉之前奋斗的成果变得毫无意义(这是最容易让玩家弃坑的情绪)。工作室对于网游来说是个大祸患,任何一个游戏公司都不希望看到工作室猖獗。然而尽管公司高层是这么希望的,一线工作人员却并不会照做,为什么?因为国内的top游戏公司腾讯网易完美畅游都有严格的绩效考核机制,怎么个考核法呢?看数据。如果你的游戏中,玩家7日留存率低,或者你的任期内,玩家在线率比前任策划要低,那你今年估计年终奖是没有了,而且搞不好还要滚蛋。所以游戏行业有个劣币淘汰良币的问题,这也是目前国产游戏越做越烂的原因,不造假数据,不重视绩效,认认真真做游戏的策划都被老板炒了。&b&那么现在你是一个策划,在游戏质量不能短时间内大幅度提升的情况下,怎样提高在线率呢?当然是放任工作室!&/b&因为工作室会乐此不疲的每天在线,让你的绩效更好看,升职加薪出任CEO迎娶白富美走向人生巅峰。游戏质量什么的没人care,so I quit.
作为一个DNF7年玩家以及前游戏策划,我说几点吧,重要性依次递增: 1.难度 跟前面答案的观点不同,我认为目前版本的DNF难度并不高,恰恰相反,现在DNF大部分地下城的难度太低了,我本来已经准备好连100hit打死BOSS,结果才3hit它就倒下了。你可能要反对,你…
那年我研究生复试,被师兄拉去他们实验室通宵。&br&就在那一晚,打了此生难忘的一把dota。&br&&br&事情是这样的,复试前我和老师用邮件聊过几次。&br&老师对我挺满意,同意让我到他们课题组。&br&就让师姐带我去实验室参观下,再去休息室占个位置。&br&&br&一进休息室,我就傻了,这地方有点高端啊。&br&老师配的电脑闪闪发亮,两台落地空调呜呜的吹着,还有50M的光纤。&br&休息室这么舒服,谁还去做实验啊!&br&&br&师姐把她旁边座位上放的零食、化妆品、姨妈巾都装到盒子里,对我昂昂头。&br&“现在没有好位置,你先坐我旁边吧,等研三的师兄师姐走了你再坐过去哈!”&br&“好的好的,谢谢师姐!”&br&&br&这时,我发现身后两哥们在打dota,就搬了把凳子过去看。&br&这两货打的那叫一个水啊!没人对线都补不到刀!可把我看的急死了!&br&这时一位师兄发现我在看他操作,就回过头问我会不会玩。&br&我含蓄的说一年多没玩了,以前玩的还凑合。&br&&br&“还凑合?天梯分多少啊!有1500吗?”另一个师兄也歪过头看着我。&br&&br&“天梯2024吧,比1500高点儿!不过现在都玩dota2了!”&br&“可以啊,师弟,要不一起来玩两把,让我们看看你的技术”&br&“现在没时间,要不晚上去网吧?”&br&“去毛线网吧啊!我们都在休息室通宵,你看这环境,不比网吧强多了!”&br&&br&晚上十点钟过后,休息室的人陆陆续续开始走了。&br&我们三个并排坐着,登陆11,启动魔兽,一年没玩的我,看着那些界面,唏嘘不已。&br&那些一起通宵,网吧五连坐的少年们,一去不复返。&br&&br&长话短说,那把我玩的蓝猫,两个师兄玩的英雄我忘了。&br&我方两个路人,其中一个玩的大鱼,这货不仅打得好,而且是个开挂的。&br&自古以来,大神开全图,就好比流氓戴透视一般,大杀四方,神魔难挡。&br&&br&我在中路对线一只Puck,感觉操作挺细腻的,但是补刀也不太

我要回帖

更多关于 地下城寻求邂逅 的文章

 

随机推荐