外挂HackerVirus

记得小学的时候玩页游把家里电脑弄坏了(怎么回事,页游还能弄坏电脑),然后我爸拿去重新装了系统,回来之后电脑里有了两个新的单机游戏,植物大战僵尸和大鱼吃小鱼。

那个年代周围的小学生都是赛尔号/奥比岛/洛克王国/天书奇谭/龙之刃/梦幻西游,玩摩尔庄园的小学生说出来都不是九年义务教育的。植物大战僵尸虽然现在看来比较久远,但他的游戏元素却是推生出许多游戏音乐文化,比如BillieEilish的《badguy》,节奏简直就是植物大战僵尸的灯灯灯灯灯灯~了。

当时因为生存模式被虐,在网上找了修改器,可以修改阳光点数,那时候虽然没学计算机专业,但对修改器的运行机制还是有所猜测的,当时小学因为不知道内存这回事,所以是觉得修改的文件中的数据。

这个猜测如今看起来很搞笑,但也不失道理(要开始狡辩了),有些游戏的数据可能是先放在文件中的,在游戏启动之后把文件中的数据读取到游戏的内存区域,所以我们需要先修改数据所在的文件内容,然后启动游戏,但是很多游戏的数据文件是加密的(出大问题,骑马与砍杀就没有加密),我们没办法从文件进行修改,所以需要让游戏进程先把它读到内存,然后从内存修改,然后再退出游戏的时候游戏进程自动把它保存下来,之后也就是这个数据了。

所以综上可以发现有这几类修改对象:

游戏数据在本地未加密文件,直接修改它来修改游戏数据

数据封装,通过修改内存来修改游戏数据

网络游戏,数据在对方服务器,无法直接修改,通过模拟网络请求表单来模拟自己获得游戏物品(看对方服务器逻辑严密程度了)

下面开始实战部分,因为不想再下载骑砍,而且这种修改文件的教程在骑砍官网很多,所以我就跳过啦。

游戏作为进程运行在我们的电脑中,所以要修改它的数据我们可以在内存进行搜索修改。

拿植物大战僵尸为例,我们要修改的是他的阳光数量。假如我们现在的阳光值是75,我们需要在内存中查找75的数字。

先用内存工具打开植物大战僵尸的进程。

然后查找25这个数字,下图只找到一个,所以阳光的数据就存储在21BF10C8这个地址了,但很多游戏搜索出来可能不止这一个地址,我们需要将查询的那个道具(阳光)花费掉一点,变成另一个值再次扫描一次才能精准定位。

修改这个地址的数值。

在游戏中查看阳光数量。

是不是太简单了!这是因为这个游戏本身设计已经和这个时代脱轨了,如今的游戏制造商不仅要考虑内容,还需要在安全上和高玩斗智斗勇。

接下来再拿一个游戏练练手,就是最近非常火的宫崎英高老贼作品只狼。

作为一个九周目下忍,这款游戏真的让我知道了死字怎么写。

先来看看我当前的金币,2323。

然后按照惯例选择只狼的进程,搜索2323这个数据,可以发现出现了很多。

我去杀了一个小怪,把金币加到了2360。

再次搜索发现还有5个地址存在,直接修改会发现不会改变,有一种猜测是它用了一种类似于病毒中多进程相互守护一样的方法,会让数据保持一致,所以我们可以直接全部选中同事修改,会发现第三个没有修改成功,因为这个值不是背包中金币数量,而是战斗界面的数量,你可以自己试试。

金币顺利添加了两万,其它数据在本地的都是如此,可以自己尝试,但这种方法效率总是不高,我们可以使用代码的形式来把这个修改过程自动化。

这里多说一句,代码的方式是把数据的地址编码到代码中,如果游戏的更新导致这个地址改变话,代码里面也要同步修改,所以需要频繁更新的游戏其实修改器很多会失效。

先来了解几个Windows的API。

HWNDFindWindow(LPCTSTRIpClassName,LPCTSTRIpWindowName);通过类名或窗口名查找,返回窗口句柄DWORDGetWindowThreadProcessId(HWNDhWnd,LPDWORDlpdwProcessId);得到窗口句柄后通过GetWindowThreadProcessId这个函数来获得窗口所属进程ID和线程IDHANDLEOpenProcess(DWORDdwDesiredAccess,BOOLbInheritHandle,DWORDdwProcessId)打开一个已存在的进程对象,并返回进程的句柄boolWriteProcessMemory(HANDLEhProcess,LPVOIDlpBaseAddress,LPVOIDlpBuffer,DWORDnSize,LPDWORDlpNumberOfBytesWritten);能写入某一进程的内存区域。入口区必须可以访问,否则操作将失败附上代码:

这样一个代码,可以让我们随时调用,把阳光修改为2000,这个程序没有做图形化界面,因为太简单了,所以当做入门Demo吧。

我们修改了通过地址直接游戏的数据,那么能不能说做一个游戏助手,读出游戏的某些数据来辅助玩家呢?CE工具虽然可以搜索读取,但是效率太差,接下来介绍一个新的API,来读取固定地址的数据。

HWNDReadProcessMemory(HANDLEhProcess,LPCVOIDlpBaseAddress,LPVOIDlpBuffer,DWORDnSize,LPDWORDlpNumberOfBytesRead);根据进程句柄读入该进程的某个内存空间lpBaseAddress的nSize字节,并写入缓冲区lpBuffer,多次计算基址和偏移即可尝试读取:

附上代码实现:

#include#includeintmain(){HWNDh=::FindWindow(NULL,"植物大战僵尸中文版");//寻找并打开进程DWORDprocessid;GetWindowThreadProcessId(h,&processid);HANDLEprocessh=0;processh=OpenProcess(PROCESS_ALL_ACCESS,FALSE,processid);if(processh==0){//对应处理printf("打开进程失败!\n");return1;}else{printf("打开进程成功!\n");intsun;//用于存放阳光数据LPCVOIDmbase=(LPCVOID)0x1E0CF020;LPVOIDmbuffer=(LPVOID)&sun;::ReadProcessMemory(processh,mbase,mbuffer,4,0);printf("您有阳光:%d\n",sun);return0;}三.挂机自动外挂上述都是一些修改数据的外挂,此外还有一种是自动操作类的修改器,比如自动玩连连看(雾),自动下棋(雾),自动拼图(笑)。

例如下面这样的连连看,当你用CE观察内存时,会发现它的数据奇妙在于这是一个二维数组,在内存中不同牌有不同数值,此处参考网上lgx大佬给出的方案。

想要自动消除连连看,肯定需要先模拟鼠标的操作,介绍一个API,它可以模拟鼠标操作,但不会移动我们的物理鼠标(虚无点击?)。

LRESULTSendMessage(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMIParam);其中Msg为WM_LBUTTONDOWN,WM_LBUTTONUP,表示对鼠标的软件模拟操作(虽然兼容性和安全性不如硬件模拟的mouse_event,但不改变移动鼠标指针)除此之外,对一个二维数组寻找可以消除的两幅牌,可以使用BFS算法实现。

抓到了一条表单。

初步分析,经验数据不是直接明文规定的,而是从了其他数值代替,并且获取经验这一类型也是有其他数字代替,这里初步猜测为age。

好吧,可能种类太多,抓不出来相同的Age。

但是我换了一种方式,对宠物使用了两次经验包,抓下来的两次包,都是叫fcode1f3....的这个包。

其中Age类型也是一样。

现在过了几分钟,我们把第三个包也使用掉。

囊达?难道,这个Age真的是...(小声bb)

还是不确定,让我们用爬虫来模拟这次表单吧,刷爆(封号)!!!

测试N次过后...

成功啦!!!

需要注意的是,这个游戏服务器以及几年没更新了,上一条公告还是十年前的。

下面贴出代码(我的cookie肯定要删除掉啦)

篇幅有限,所以暂时就写这么多。之后可能会继续更新其他的修改教程,steam挂卡这个我是一定要写的。

THE END
1.游戏平台下载游戏平台合集下载疯趣手机游戏平台 中文 更新时间:2017-05-06 疯趣游戏app是一款专为玩家打造的手机游戏中心,疯趣游戏中心网络手机好网游,不仅为玩家提供了手游礼包,还有趣味任务赚零钱,实在是high,运气好还可以抽大奖,小伙伴么赶紧下载吧。疯趣游戏推荐:《问道》《梦幻西游》《阴阳师》《万剑江湖》《永恒纪元戒》 点击下载 白山...http://www.downcc.com/p/h1_K10750_P6.html
2.4399《飞天西游》与《梦幻西游》的仙履奇缘页游快讯4399《飞天西游》与《梦幻西游》的仙履奇缘 第一眼看到4399《飞天西游》,就觉得它跟网络游戏《梦幻西游》和网页游戏《天书奇谈》的风格像,很像,非常像。 刚进入游戏,就看到一群人在踩着扇子飞来飞去,一片车水马龙的景象。不过有点卡卡的感觉,我就在想:可能只有一个区,人太多吧。https://news.4399.com/news/20091224-59281.html
3.梦幻西游:又是新限量祥瑞来袭,页游的画面感觉,令人太失望开明神兽就不多介绍了,是现在非常主流的一个飞行坐骑,也是狮子的模样,张开翅膀特别的威武和霸气 这只新祥瑞从整个质感来看,有一种页游的画面感,并没有特别霸气的味道。翅膀张开的幅度甚至不如开明神兽 很多玩家都表达了自己的看法,大部分都认为这只祥瑞很令人失望,和120块的祥瑞差距不大,大家觉得呢...https://www.sohu.com/a/313797351_120099886
1.《梦幻西游》电脑版官方网站《梦幻西游》电脑版,网易回合制网游旗舰,西游题材扛鼎之作;3.6亿注册用户,272万玩家最高在线,每月有新服开放。人物和画面超可爱、轻轻松松交朋友!https://xyq.163.com/mobi/hdzt/
2.梦幻西游端游脚本制作教程端游梦幻sf挂机脚本本教程详细讲解了从易语言脚本基础到大漠插件的运用,再到多线程控制台的实现,以及梦幻西游端游脚本实战,最后涵盖了脚本验证系统的构建,全方位覆盖脚本制作过程。 摘要由CSDN通过智能技术生成 ?第一章易语言脚本编程基础 共6课时 1:易语言简介、初步认识开发脚本常用易语言组件 ...https://blog.csdn.net/weixin_bjzkc/article/details/107250462
3.梦幻西游实用工具箱叶子猪梦幻西游工具箱下载5.04官方最新版...梦幻西游工具箱是叶子猪制作的一款梦幻西游免费辅助工具,支持升级经验查询,比如说你想知道自己现在的经验能升到多少级,技能能点到多少,这些在工具箱上只要输入当前经验,一点计算,很轻松就算出来了!工具箱还包括跑商助手、钓鱼辅助工具、计算器和跑商器,功能强大,绝对是梦幻西游玩家的必备工具。 关于Win7 64位操作系统...https://m.qqtn.com/q/43166
4.codecollecter/README.mdatmaster·kinqsley/codecollecter...[页游] 链接:http://pan.baidu.com/s/1mgmzQas 密码:90vz 梦幻西游 链接:http://pan.baidu.com/s/1c0uNAjI 密码:pvuf 论剑天下 链接:http://pan.baidu.com/s/1jGxtn86 密码:kylm 问天 链接:http://pan.baidu.com/s/1i3967qd 密码:ug37 魔兽世界5.40 链接:http://pan.baidu.com/s/1eQlqgEm...https://github.com/kinqsley/codecollecter/blob/master/README.md
5.手游新政即将实施门槛提高未经批准不得上网运营——人民政协网早早地进入手游市场,作为转型先驱者的是一批稳定运营10年之久、年收益过10亿元、总收益过百亿的游戏产品,它们被游戏圈内称作“百亿俱乐部成员”。其中包括《梦幻西游》《大话西游》《剑侠系列》《传奇》以及《魔域》等几款产品。 《梦幻西游》《大话西游》由网易亲自操刀代理,市场反响不凡。而《剑侠情缘》和《传奇...https://www.rmzxb.com.cn/c/2016-06-15/867818.shtml
6.QQ倚天登录器QQ倚天微端v1.0.8.0官方安装版下载多人策略回合制《倚天》的推出,将使众多玩家体验到网页版梦幻西游的休闲玩法,解决ARPG长时间的疲劳操作。 而页游《倚天》更是在休闲玩法中创新,在多人回合制战斗中,带上了阵法策略的玩法,在游戏界又一次革新 QQ倚天微端 下载地址 下载错误?【投诉报错】 ...https://www.jb51.net/game/303287.html