零点看书 - 都市小说 - 黑客精神在线阅读 - 第十章 外挂的编写【求收藏】

第十章 外挂的编写【求收藏】

    进入到游戏界面,时隔七八年的时间他又再一次听到那熟悉的游戏背景音效,看着自己号里那些如今已经绝版了的装备,突然觉得过去的生活是那么的轻松自在,一时间竟觉得有些累了,他缓缓闭上了眼睛,脑海中回想起了曾经的生活,就在这时!父亲的身影在脑海中慢慢浮现又慢慢消失,刘毅猛地睁开了闭上的眼睛。

    “干正事儿要紧!”刘毅揉了揉自己的眼睛想让自己清醒一点。

    “噔噔噔”电脑传出一阵敲门的提示声,是飞扬雪发来了一条消息,“天哥,有什么事儿和我说,需要什么工具我这儿都有。”

    刘毅的网名叫做天赐,因为他的计算机技术比飞扬雪能高一点,所以也不管年龄的大小飞扬雪天哥天哥的叫了他很多年。

    看着发来的消息,刘毅紧跟着回了一条消息,“老板,今晚儿八点之前交货!”

    “啪!”一个回车键信息发送出去,也没看飞扬雪回的信息,抓紧时间开始工作了。

    对于地上城这款游戏,刘毅也没有全面研究过,据他所掌握,游戏外挂的大致可以分为两类,一类是内存形式的外挂,也就是通过修改游戏进程内所执行的代码,修改游戏内技能,物品等等一些东西,另一种也就是脱机外挂,脱机顾名思义就是脱离客户端程序,一个外挂程序模拟官方客户端进行登录,游戏,从而进行,自动打怪,自动捡物,交易等等,这种模式的外挂制作起来是比较困难的,因为这需要了解很多游戏的内部技术资料,这些资料也都是属于商业机密范畴,一般人很难能够得到,对于这种以格斗为主的游戏,只能通过第一类,内存进程作为切入点。

    内存外挂?首先必须得想办法将我现在所用的工具注入到游戏进程当中,exe程序显然不行,这是这是属于应用程序范畴不能直接执行内存cao作,只剩下dll动态链接库,动态链接库还不能直接执行代码。

    一时间各样的问题出现而来,刘毅找了纸笔,打算将自己的计划写在上边儿,这是他多年留下的习惯,凡是写一个程序,所有的步骤全部仔细记录下来,一是为了方便之后的调试,二是为了让自己的思路更开阔。

    刘毅cao控着游戏当中的人物进了打怪的图,进去之后,刘毅没有让自己cao作的人物站在那不动,看着怪打自己的方式,随后刘毅将游戏界面切出,来到了桌面,找到EE聊天软件,开始联系飞扬雪,因为屏幕的切换,使得输入法打成了字母,见此,刘毅开始切换输入法想要切换成拼音输入法。

    “这个输入法?”

    刘毅看着屏幕又下角,键盘shift ctrl一直换着换着换着,大脑飞速思考起来。

    “哈哈,我知道了!”

    输入法!就是输入法!输入法就是用user32。dllcao作的,同样都是DLL,输入法在系统目录上是以ime为拓展文件,切换输入法的同时,就是在加载对应的ime拓展文件,而就因为这个原因,输入法才可以在任意一个可以输入文字的程序执行文字输入cao作,若是我把我写的dll转变成一个空的输入法目录,那么再制作一个类似于注入器的程序将DLL注入到那个空的输入法目录,然后通过切换输入法到这个空目录,不就可以进行内存cao作了吗!

    有了思路,刘毅也没联系飞扬雪,将自己的思路写在了纸上,开始分析下一个问题,这样已经打开了游戏的内存,要想在这当中修改什么还需要提升自己权限,毕竟那里边儿不是自己的家,总不能自己想干什么就干什么,提权这种事儿对于刘毅来说那是再简单不过,因为他的特长就是破解程序以及网站渗透,最基本的东西已经差不多了,现在最终要的还需要各类基址,和程序设计,基址飞扬雪应该会有,毕竟他是做这一行的,这些东西若是没有,那他算是白干了。

    基址就是游戏中内存所在地址,通过基址可以找到一个基本点再加上偏移值来确定绝对位置,确定位置之后通过修改基址,外挂所修改的功能就会展现出来。

    “飞扬雪,把基址都发给我。”刘毅在EE上键入消息发送过去,一眨眼的功夫,聊天窗口就出现了十几行基址以及各类技能代码,刘毅看着几十行代码,有些高兴,因为这些正是他自己想要的。

    基址以及技能代码已经有了,他打开了一款名叫,Y语言的全华夏语程序编辑软件,很久之前,他是通过飞扬雪了解到了这个软件,自己学习了几天觉得整体上的感觉还是不错,毕竟编辑这种小的软件,最主要的还是自己用的舒服,技术方面他认为,除了那些汉化的编程软件,这款Y语言的整个程序框架最为清晰,最主要的是整个编程模式都是按照华夏人的习惯进行的,其中它的数据库比较庞大与公众所周知的c语言没什么特别大的差距。

    打开了Y语言,刘毅首先开始的是输入法注入的编写,其次是程序框的构造,整个程序界面他不想设计的太过复杂,因为他知道使用外挂的网友不一定都是电脑通,所以整个程序界面只添加一个名叫注入按钮放在程序中间,随后单击注入按钮正式进入到代码编写界面。

    注入器的原理就是将编辑好的DLL文件保存到注入器中,然后通过注入器创建输入法空目录,这个时候登录游戏,切换输入法到了空目录这一栏,DLL文件就会注入到当前进程当中,随后通过进程就可以执行内存cao作。

    刘毅按着思路眼睛紧盯着屏幕代码一排排出现在屏幕之中,大约过了半个小时的时间,注入器穿件输入法空目录制作完成就差将DLL加载到程序当中,随后他将注入器放到一边,开始最重要的DLL的编写工作,DLL编写需要格外的严谨,一旦中间环节有一点儿的出人,程序执行之后都会面临无法执行的效果。

    刘毅看了看项目单上所需要的功能。

    极速过图,这个简单,只要测试出来人物从第入口到出口的坐标系数就可以,远程修理买卖,这个只要知道修理基址,买卖基址就可以解决,这个攻击的方式可以通过人偶响应,刘毅知道地上城有一种叫做人偶的道具,只要消耗一个,就会出现一个游戏NPC通过这个NPC的基址出发技能,修改技能伤害,和伤害范围,如此,主要功能已经差不多了,看了看电脑上的时间,此时已经到了下午三点,看着时间已经不早了,很快,他进入状态聚精会神的开始编写程序代码。

    经过了不到一个多小时的编写,程序主要功能修改的差不多了,代码行数达到了三百多行,看着这庞大的工程量,他比较自恋的佩服起自己的手速,一切准备完成,按起Y语言最上边一个绿色的调试键,程序代码迅速进行调试,三百多行代码没有一处错误,他比较兴奋,因为距离成功又近了一步,刘毅保存dll到桌面,一个齿轮状的文件出现在桌面上,之后刘毅切换到编写注入器的界面,将编译成功的DLL文件以图片的形式保存到注入器程序中,只见刚刚保存到桌面的dll文件消失了,进入到注入器那个程序当中。

    见dll文件成功加载进注入器里边,刘毅开始编译注入器为可执行程序,随着注入器的打包生成,接下来,进入到激动人心的外挂测试阶段。