遊戲輔助外gua篇:如何Dump內存得到遊戲的輔助

轉載請標明出處:
https://dujinyang.blog.csdn.net/article/category/9267855
本文出自:【奧特曼超人的博客】python

本篇邀請了 「阿七」 作個 外掛輔助入門篇 分享,以前公衆號也分享過了。算法


最近女友都在玩遊戲,晚上還不理人,恰好近期對遊戲輔助製做很感興趣,打算搞個輔助讓她失去玩遊戲的信心,因此在接下來的幾天裏逛了一些論壇、教程 ( 在此膜拜下輔助大神 )。 大體瞭解到輔助的種類,做爲入門新兵,先從動做式 ( 所謂動做式,就是指用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/

相關文章
相關標籤/搜索