zoukankan      html  css  js  c++  java
  • 游戏辅助外gua篇:如何Dump内存获得游戏的辅助

    转载请标明出处:
    https://dujinyang.blog.csdn.net/article/category/9267855
    本文出自:【奥特曼超人的博客】

    本篇邀请了 “阿七” 做个 外挂辅助入门篇 分享,之前公众号也分享过了。


    最近女朋友都在玩游戏,晚上还不理人,刚好近期对游戏辅助制作很感兴趣,打算搞个辅助让她失去玩游戏的信心,所以在接下来的几天里逛了一些论坛、教程 ( 在此膜拜下辅助大神 )。 大致了解到辅助的种类,作为入门新兵,先从动作式 ( 所谓动作式,就是指用API发命令给窗口或API控制鼠标、键盘等 ) 辅助学起吧,那么就需要找一款合适的简单网络小游戏 ( 很多网络游戏有各种保护什么的 ) 作为入门学习了。

    先来看下最终的效果图:
    外挂公众号python2048效果图

    有人可能会说入门为什么不撸单机的?

    外挂公众号python2048
    呃... 单机的撸出来怎么在玩家面前装X !!! 用辅助不就是为了在对局中轻松获胜的那种舒爽嘛!!! 不就是为了 “你确实很厉害,但我永远不会输” 的畅快嘛!!! (灵魂三连)

    好吧,其实只是我女朋友不玩单机游戏……
    外挂黑客python2048公众号
    都说辅助毁游戏,那么目标 :女友的Xx连连看

    Let’s Go!!!

    前期准备:
    游戏:xx连连看
    工具:VS2019,CE,spy++
    环境:win10

    本文只是把xx连连看拿来练手学习下如何从内存中dump些东西, 所以我们要明白步骤是怎么玩的,下面我们就来拆解下:

    玩法机制,只要将相同的两张牌用三根以内的直线连在一起消除即可。
    游戏可能是一个11*19的二维字节数组。
    每个数组下标对应一个值,值相同,那么牌型就相同。

    空着的位置值可能是0。

    每个棋子的宽高一致 ,如果能确定A,B下标可消除,那么鼠标怎么定位到A,B下标的位置,然后点击呢?

    有人很好奇,为什么是1119的二维字节数组,因为只是猜想,你也可以2020,只是要明白是个二维字节数组就好。

    其它的一顿想当然的脑补... (还好已经验证,不然绝对翻车..)

    那么核心就是能找到第一个下标的内存基址,推出整个棋盘的数据,然后通过算法找到相同的数据,模拟点击消除即可。

    首先,创建房间进入练习模式,前期可能会翻车,大家先打开CE工具,附加到游戏进程,这一步慢慢来,通过不停的搜变化的值、为0的值、大于0的值 (CE搜索教程请自行百度,这里就不叙述了),最终找到第一个下标的内存地址。

    怎么查看内存区域呢,大家看下面的图:
    连连看外挂python2048

    Push、Mov、sub这些不懂的下一篇会出个简单的知识图谱。

    可以看出,前面的分析是正确的,相同的牌型,对应的值是一样的,空着的地方对应的值为0。棋牌确实是11*19的字节数组。

    内存地址找到了,那么开始编写辅助,代码方面就不详细贴了,毕竟写的也不好。

    首先我们需要一个11*19二维数组棋盘,还有每个棋子的属性,那么,我们就需要定义一个棋子类,棋子类属性包含 x坐标,y坐标,指针,行,列。

    通过spy++定位出第一个下标的x值, y值, 和之前已经拿到第一个棋子的内存地址去比较,棋子大小不变,是固定的,那么我们通过第一个棋子的数据,可以推断出整个二维数组棋盘数据,当然前提是得匹配得上啦。

    话不多说,看代码:
    外挂公众号python2048

    通过遍历整个棋盘,找到相同的两个值,通过寻路算法查看是否可以消除,如果可以消除

    黑客公众号python2048

    模拟点击两个棋子的x,y坐标,实现消除

    python2048公众号外挂

    这里的鼠标点击是模拟发送,其实和辅助性能类的差不多,大致做了个界面出来,效果图如下:
    游戏外挂python2048公众号

    Tips: 这几个小按钮,都是控制的消除速度index,这里我们需要用Sleep(index) 函数去控速,不然会有点危险,如果是0的话大概就能秒消了。

    小插曲: 本着不想太奔放的缘故,之前默认是一秒消除一对,测试一段时间后发现,大概率拿不到第一,连连看大神们是能干过每秒消除一对的辅助的 (大神的手眼速度让萌新瑟瑟发抖~~), 这样就造成刷分的缓慢,最后只能修改成只要对手中有人剩余棋子数小于10,那么这边index设置0,实现秒消,拿第一。

    当然,这里不是为了刷分啊,我们只是为了学习如何dump内存而已…
    游戏dump内存数据
    自动测试挂了几天后,胜率从25%刷到了81%,积分从几千到几十万,默默的卸载了此游戏,基本稳定,自此连连看辅助就告一段落了。

    值得一提的是, 后来女友再也没玩过这个游戏了(呵呵哒)。

    然鹅...也再也没有理我了 …

    游戏外挂女朋友不理我了

    本文申明:本文仅供学习与参考之用,请勿用作商业用途,转载请联系作者。

    python2048微信公众号

    作者:奥特曼超人Dujinyang

    来源:CSDN

    原文:dujinyang.blog.csdn.net/

    版权声明:本文为博主杜锦阳原创文章,转载请附上博文链接!

  • 相关阅读:
    又开始写代码了
    C# 调用office 2007 及 SaveAsPDFandXPS.exe 将Word、Excel、PPT转换为PDF文件
    64位机子上未能加载集
    在 vs 2003 转 2008 时WEB项目不能转换
    【第一弹】测试小学生,终于有博客了
    RobotFramwork + Appium+ Andriod 环境搭建
    写webpart
    backup
    获取MOSS当前登录用户信息
    rotate with different image(轮换显示图片)
  • 原文地址:https://www.cnblogs.com/python2048/p/11842484.html
Copyright © 2011-2022 走看看