遊戲輔助外gua篇 如何Dump記憶體獲得遊戲的輔助

2022-08-19 06:42:10 字數 1911 閱讀 1966

本文出自:【奧特曼超人的部落格】

最近女朋友都在玩遊戲,晚上還不理人,剛好近期對遊戲輔助製作很感興趣,打算搞個輔助讓她失去玩遊戲的信心,所以在接下來的幾天裡逛了一些論壇、教程 ( 在此膜拜下輔助大神 )。 大致了解到輔助的種類,作為入門新兵,先從動作式 ( 所謂動作式,就是指用api發命令給視窗或api控制滑鼠、鍵盤等 ) 輔助學起吧,那麼就需要找一款合適的簡單網路小遊戲 ( 很多網路遊戲有各種保護什麼的 ) 作為入門學習了。

先來看下最終的效果圖:有人可能會說入門為什麼不擼單機的?

let』s go!!!

前期準備:

遊戲:xx連連看

工具:vs2019,ce,spy++

環境:win10

玩法機制,只要將相同的兩張牌用三根以內的直線連在一起消除即可。

遊戲可能是乙個11*19的二維位元組陣列。

每個陣列下標對應乙個值,值相同,那麼牌型就相同。

空著的位置值可能是0。

每個棋子的寬高一致,如果能確定a,b下標可消除,那麼滑鼠怎麼定位到a,b下標的位置,然後點選呢?

有人很好奇,為什麼是1119的二維位元組陣列,因為只是猜想,你也可以2020,只是要明白是個二維位元組陣列就好。

其它的一頓想當然的腦補... (還好已經驗證,不然絕對翻車..)

那麼核心就是能找到第乙個下標的記憶體基址,推出整個棋盤的資料,然後通過演算法找到相同的資料,模擬點選消除即可。

怎麼檢視記憶體區域呢,大家看下面的圖:

可以看出,前面的分析是正確的,相同的牌型,對應的值是一樣的,空著的地方對應的值為0。棋牌確實是11*19的位元組陣列。

記憶體位址找到了,那麼開始編寫輔助,**方面就不詳細貼了,畢竟寫的也不好。

首先我們需要乙個11*19二維陣列棋盤,還有每個棋子的屬性,那麼,我們就需要定義乙個棋子類,棋子類屬性包含 x座標,y座標,指標,行,列。

通過spy++定位出第乙個下標的x值, y值, 和之前已經拿到第乙個棋子的記憶體位址去比較,棋子大小不變,是固定的,那麼我們通過第乙個棋子的資料,可以推斷出整個二維陣列棋盤資料,當然前提是得匹配得上啦。

通過遍歷整個棋盤,找到相同的兩個值,通過尋路演算法檢視是否可以消除,如果可以消除

模擬點選兩個棋子的x,y座標,實現消除

tips:這幾個小按鈕,都是控制的消除速度index,這裡我們需要用sleep(index) 函式去控速,不然會有點危險,如果是0的話大概就能秒消了。

小插曲:本著不想太奔放的緣故,之前預設是一秒消除一對,測試一段時間後發現,大概率拿不到第一,連連看大神們是能幹過每秒消除一對的輔助的 (大神的手眼速度讓萌新瑟瑟發抖~~), 這樣就造成刷分的緩慢,最後只能修改成只要對手中有人剩餘棋子數小於10,那麼這邊index設定0,實現秒消,拿第一。

當然,這裡不是為了刷分啊,我們只是為了學習如何dump記憶體而已…

自動測試掛了幾天後,勝率從25%刷到了81%,積分從幾千到幾十萬,默默的解除安裝了此遊戲,基本穩定,自此連連看輔助就告一段落了。

值得一提的是, 後來女友再也沒玩過這個遊戲了(呵呵噠)。

然鵝...也再也沒有理我了 …

原文:dujinyang.blog.csdn.net/

遊戲輔助函式

游標的控制 移動游標到指定位置 移動游標到指定位置 void gotoxy int x,int y 隱藏游標 隱藏游標 void hide 第乙個指游標高度 1 100 第二個指是否可見光標 0 1 setconsolecursorinfo hout,cursor info 設定控制台游標大小和可見...

c 遊戲輔助指令碼教程 listbox控制項

c 遊戲輔助指令碼學習記錄 2017年9月3日 用 listbox 控制項來顯示我的所有任務和我選擇的任務。左邊是listbox 已選任務,右邊是listbox 任務列表 用到listbox的雙擊事件,雙擊事件有2個,doubleclick 和 mousedoubleclick 我暫時也不知道有什麼...

jqgrid之路初始篇外一

formatter的引數,jqgrid中預定義了常見的格式及其options integer thousandsseparator 千分位分隔符,defaulvalue number decimalseparator,小數分隔符,如 thousandsseparator,千分位分隔符,如 decim...