逆向知識之CS輔助/外掛專題.1.實現CS主武器副武器無限子彈
PS: 相信大家CS1.6這類的FPS應該玩過.現在我們通過外掛手法.講解逆向的本質.以及應用.
關於CS1.6的下載.網絡百度下載即可.
一丶主武器無限子彈尋找方法.
首先我們知道.在CS中主武器有子彈個數.那么我們可以通過CE尋找子彈的個數增加或者減少來進行尋找我們的數據. 關於CE的使用.可以參考網絡教程.很簡單.主需要來回掃描即可.
尋找思路:
1.首次掃描子彈個數
2.變化子彈繼續掃描.
3.重復2步驟.直到地址很少.
4.過濾數據. 可以下拉到地址框中.鎖定數據.然后更改游戲中子彈個數看看是否更改.如果沒有更改則找到數據.(當然要不斷過濾)
5.找到基址.如果是動態地址.找訪問地址一層一層尋找動態基址.如果是寫入.那么找寫入.一層一層訪問找到動態基址.
通過掃描我們可以得到動態地址.
可以看看誰訪問了.
通過代碼得知. 一級偏移是CC. 繼續尋找esi
CE搜索ESI的值.以16進制搜索.則尋找到動態地址,繼續查看誰訪問.得出下面CE的數值
通過上圖的值. 得到二級偏移5EC 繼續尋找esi的值.
通過上圖得知 +7c,那么三級偏移是0x7c 我們隨便點開一個.例如上圖.是eax + 0x7c那么尋找eax
繼續搜索CE之后發現.有兩個綠色的基址. 我們都下來下來看看. 加上我們的偏移. 看看是否是當前的子彈個數.
發現添加之后兩個地址都是91也就是我們現在子彈的個數.不能確定是哪個.所以過濾一下.
1.鎖定查看. 在CE中鎖定地址.看看子彈是否減少. PS: 自己鎖定過了.發現兩種都可以.不排除兩個都是地址.
2.大退游戲重新開始. 這種方法試一試. PS: 發現大退之后兩種都可以. 所以基址可能是兩個.都可以使用.
至此我們已經找到了主武器無限子彈的基址+ 偏移了.
[[[[基址] + 0x7c] + 0x5ec] + 0xcc] = 主武器子彈無限地址
那么副武器也是類似的找的辦法. 可以使用上面尋找.
但是現在我們知道人物基址了.那么可以使用工具遍歷一下.
首先填入我們已知的
這款工具的使用.
1.選擇自己的進程
2.填入基址 + 你想遍歷的偏移.
3.跟你你的偏移層級.選擇你要遍歷的 層級.比如一級遍歷. 選中.然后我們選的三級偏移. 當然我們可以二級偏移給0.那么遍歷二級偏移.這樣的話那么偏移是基址 + 遍歷偏移 + 固定偏移的形式來展示.
什么意思:
比如是我們的基址是0xxxxxxx 一級偏移是 0x1 二級偏移是0x2 三級偏移是0x3 那么我們只想遍歷 二級偏移 + 三級偏移.但是我要讓二級偏移可變怎么辦.那么我們可以這樣設置.
基址 0xxxxx 一級偏移 0x1 二級偏移 0x0 三級偏移0x3 那么遍歷出來的數據則是 基址 + 0x + 遍歷的值 + 0x3
如果還不會使用沒看明白.可以網絡百度教程. 可以使用我們的笨方法來查找.
根據上圖我們得知. 我們主武器的基址加偏移已經填入了.那么直接遍歷得出了72 (當前子彈個數)
那么我們可以這樣想.既然0xCC是子彈的地址. 那么 二級偏移 0x5ec有可能就是主武器對象了. 也就是說0x5ec存儲的是主武器的屬性值. 那么我們使用工具.遍歷一下二級偏移 +0xCc看看有沒有發現.
如上圖我們的操作步驟.
1.將二級偏移改為0
2.遍歷方式改成2級偏移遍歷的方式.每次增長4個字節.遍歷1000次.循環累加.
3.點擊開始遍歷按鈕.
4.填入12.也就是我們當前的副武器子彈個數.
5.點擊篩選結果.
操作完之后會得到上圖所示.我們可以看到二級偏移0x5dc那么我們添加CE進去看看.
添加之后我們鎖定.發現子彈確實不減少.然后大退游戲重新打開.發現也不改變.所以這就是我們副武器的子彈無限了.
二丶編寫代碼.
編寫代碼就簡單了.只需要 基址 + 偏移讀出然后進行一直寫入即可.
主武器無限子彈基址: [[[[0x25069bc] + 0x7c] + 0x5ec] + 0xcc]
副武器子彈無限基址: [[[[0x25069bc] + 0x7c] + 0x5dc] + 0xcc]
代碼實現可以是易語言可以是VC++. 因為屬於外掛技術.所以給大家看看成品.但是不會公布寫法.