置頂精華區

一、打開遊戲和CE(或是其他UCE都可以),用CE載入遊戲
二、讓你的血量回到最滿狀態,記住血量值
        假設我的血量是1312,用CE找"1312",用"Exact value"方式,4字節


三、搜到N個址

四、再回到遊戲裡,我們讓人物掉點血(打怪什麼的,最好多掉點,這樣方便後面來找血量),再用"Decreased value"(減少的數值)來找,這樣掉點血,找一次,幾次下來,找到的位址就只剩四個了,記下第一個位址(為什麼用第一個位址。CE的教程裡說,一般如果找到少量的位址後,正確的一般在第一個,如果你不確定,你可以讓人物自動回血,就可以看到,第一個位址的數也在跟著增加~ 

五、把第一個位址雙擊,加入下面的欄裡,再在位址上單擊右鍵,彈出選單中選 "Find out what writes to this address"(找尋改定這個位址的命令),調出監視窗口,再回到遊戲,掉點血,就可以看到監視窗口裡己經有改寫該位址的命令了,如下圖。


六、選擇該命令,點"More information",得到如下圖。mov [esi+00000254],ecx 紅色加亮的這句,(+00000254也就是血量的偏移量了)可以看到,是把ECX的值寫入ESI+00000254這個內存位址中,所以我們記住下面的ESI位址:ESI=05C0B548,再回到CE主界面,找"05C0B548"這個數(選擇HEX,用十六進制四字節方式找)



七、得到26個地址都含有這個數,好的把最前面的三個數保存到下欄裡,然後小退一下(回到人物選擇界面,再進入遊戲),就可以看到三個位址的數值都有變化了。

八、再重新找血量地址,然後再"Find out what writes to this address"這個位址,得到ESI的值,記下來,對比剛儲存下來的三個位址內的數。我們發現010AEAE4裡的值剛好等於ESI,這就可以肯定,010AEAE4一定是二級基址了。

九、然後我們監視010AEAE4,"Find out what writes to this address"。再次小退一下,再進入遊戲,這時監視窗口有東西了,如下圖


十、得到:mov [esi+24],0000000,記下ESI的值,010AEAC0,再回到CE主界面,用十六進制的方法找010AEACO,得到N個數,反覆找幾次,得到下圖


十一、按CE教程說的,一般是位址最小的就是正確的
選第一個008BE594,加到下面的欄裡,完全退出遊戲,再進入遊戲
重複,最後還是得到008BE594,這樣就可以肯定,008BE594就是一級基址了

十二、得出公式如下
一級基址:008BE594
008BE594地址裡面保存的數值+24的偏移=二級基址
二級基址裡面保存的地址數+254的偏移得到血量的地址

十三、下面開始搜索數據!
1.用CE打開遊戲,運行CE,並按照下圖次序開啟程序


2.我們要在CE中顯示人物的生命值。同樣按照圖中順序打開「添加位址」對話框,在數據框中添加我們已知的內存位址。

當然,我們要用指針的方式,因為儲存這些數據的位址是不固定的,我們可以用8C6A54這個固定的基址以及相關的偏移位址找到我們需要的數據。我們就來看看生命的值,完成圖上的項目點「確定」來看看結果。


3.怎麼樣?是不是角色的生命值呢,使自己失去一些血量看看這個值是不是也在跟著變化。


4.根據已知的人物位址,我們還可以顯示其它數據。




翻譯自jiaxinwb的零基礎製作【武林外傳】輔助工具(一)  ,並略作修改


Maplefree 發表在 PIXNET 痞客邦 迴響(1) 引用(0) 人氣(12314)

open trackbacks list 引用列表 (0)

迴響列表 (1)

發表留言
  • 我想問你一下
    第5步驟保留前3個數值
    那3個的value會變動嗎?
  • Maplefree 於 2008/05/04 19:29 回覆

發表留言