89

C#又能出来装个B了。一步一步微信跳一跳自动外挂 - LGGGGG

 6 years ago
source link: https://www.cnblogs.com/lggggg/p/8176033.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

PS:语言只是载体。思维逻辑才是王道

  前天看见了个python的脚本。于是装python。配置环境变量。装pip。折腾了一上午,最终装逼失败。

于是进入博客园,顶部有篇文章吸引了我 .NET开发一个微信跳一跳辅助程序。于是download下来测试一把。

  

751127-20180102090619471-1846278072.png

  不过博主的是半自动外挂。需要左键点击小人,右键点击需要跳的点。点了几十次之后不耐烦了。

  那又怎样?又不开车?又不会装逼?食屎啦你!

  手动玩到了2018。。。

    原来还可以通过C#连接安卓发送shell命令进行操控。新姿势!新姿势!

    通过42楼发现,从图片中搜索小人。咦?这怎么实现呢?

    百度百度百度。。好吧很少用google。。可能我是菜鸟程序员吧

    喜出望外。

    “图片像素遍历”

    

751127-20180102093130956-313408225.png

    一、找到小人坐标

    二、找到要跳的坐标

    哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈。。。。。没毛病

   如何找到小人坐标?

       --  小人颜色固定,取底部rgb扫描像素对比

       --  没毛病

    

751127-20180102094430346-832800520.png

    

751127-20180102094310471-179857247.png
751127-20180102094319956-947591011.png

    完美?完美!!

    弱水三千只取一瓢。我要最底下那个!!

    

751127-20180102094750331-507493992.png

    到此,小人底部坐标取到。是不是很简单粗暴??

   如何找到要跳的坐标?

    

751127-20180102095657846-1111914007.png
751127-20180102095916003-1388092212.png

      -- 取到要跳的顶点和最右边。取顶点的 x 和右边点的 y 作为要跳的点

      -- 怎么取顶点?

      -- 从上到下,从左到右,与背景对比,第一个碰到的颜色不一样的为顶点

      -- 不行 背景是渐变的

      -- 噗。。。  那把r g b 设置相差10 以上为准吧

        if (bpixel.R - pixel.R > 10 || bpixel.R - pixel.R < -10 || bpixel.G - pixel.G > 10 || bpixel.G - pixel.G < -10 || bpixel.B - pixel.B > 10 || bpixel.B - pixel.B < -10)

      -- 第一点是右上角那个 751127-20180102100606159-1478986387.png

      -- 像素遍历从高度*30%的坐标点开始

      -- 行是行,有时候与背景色相近识别不到

      -- 把 bpixel 设置成当前像素的 y-1 位置的像素  bpixel = MyBitmap.GetPixel(x, y - 1);

      -- 嗯 上下对比,背景渐变差异不大,第一个差异大的点就是要跳的顶部,完美

      -- 怎么取右边点呢?

      -- 遍历到顶部以后像素的时候与顶部颜色对比,颜色一致设置红色,取 x 最大的为最右边

        

751127-20180102101011706-1434023412.png

        

751127-20180102101130784-1153258794.png

      -- 成功啦  有时候会有bug,多个块颜色一致的时候,最右边不是最后要跳的块

        

751127-20180102101405456-18257141.png

      --  对比右坐标的时候,如果大于150像素 就放弃。

        

751127-20180102101505487-392918401.png

      --  顶部也会有bug,有时候小人头超过要跳的小方块,导致计算顶部位置会是小人头

      --  那就在小人坐标 x 左右30不计入顶部识别

        

751127-20180102101905659-894204420.png

      --  哇塞  !好像没有什么bug了 ,再加上定时器,或者死循环,或者递归就可以实现自动跳转啦。一会儿就两千多分啦!

        

751127-20180102102014581-966187466.png

      --   其实取到顶点之后,扫描 y 值相等 颜色一样的。然后取中间值,会更精准

        

751127-20180102102205471-849761024.png

      --  艹 ! 刚才想啥去了?

      --  慢慢试嘛 。其实别人还有更好的算法。颜色相似的,点集合取平均坐标值, 没经历过,总要经历笨方法。起码源于自己的思维

    

751127-20180102103003174-890051925.png

      祝大家新年快乐

       2018  888 !!!

没想到这么多人看。加个群交流下吧? 企鹅群:170501545。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK