重要啟示

重要啟示

本人正遠門深造,估計一段時間不便更新,請多見諒

2011年12月31日 星期六

找記憶體地址備忘

1.開啟Cheat Engine,變動數值找出現時耐力值的動態位置

2.變動耐力值查看閱讀該記憶體的位置
3.記下ESI的值,已知EBX固定,並得出耐力值的偏移值2*4+16C
4.尋找ESI的位置
5.需要抓下多個嘗試, 變動耐力值查看閱讀該記憶體的位置
6.找到其中一個有可能的位置
7. 記下ESI的值,並得出二級位置的偏移值50
8.再尋找ESI的位置
9.綠色顯示的就是可能的基址,(G15S2版本兩個都正確)
10.利用指針測試是否正確


---------------------------------

瑪奇各數值內存基址
G13S2一級基址:63FC1FC8
G15S2一級基址:6413b094或6413c6e4
G15S3一級基址: 6413c0e4 或6413d734

一級基址+偏移值50=二級位址

生命值:二級位址+偏移值16C
最大生命值:二級位址+偏移值178

魔力值:二級位址+偏移值170
最大魔力值:二級位址+偏移值17C

耐力值:二級位址+偏移值174
最大耐力值:二級位址+偏移值180

---------------------------------

腳本使用例子

//瑪奇G15S2 血魔耐的記憶體基址
base = &h6413b094

//一級基址+偏移值50=二級基址
Call ReadMemory (base,2,base2)
base2 = base2+&H50
Call ReadMemory (base2,2,addr)

//各項數值的偏移值
//二級基址+偏移值=各數值的位址
curentHPaddr=addr+&H16C
maxHPaddr=addr+&H178
curentMPaddr=addr+&H170
maxMPaddr=addr+&H17C
curentSPaddr=addr+&H174
maxSPaddr=addr+&H180

//調用子程序
Call check
//輸出數值
MessageBox "curentHP: "&curentHP&" "&"MaxHP: "&MaxHP&" "&"curentMP: "&curentMP&" "&"MaxMP: "&MaxMP&" "&"curentSP: "&curentSP&" "&"MaxSP: " & MaxSP
EndScript

//檢查數值的子程序
Sub check
Call ReadMemory (curentHPaddr,2,curentHP)
Call ReadMemory (maxHPaddr,2,MaxHP)
Call ReadMemory (curentMPaddr,2,curentMP)
Call ReadMemory (maxMPaddr,2,MaxMP)
Call ReadMemory (curentSPaddr,2,curentSP)
Call ReadMemory (maxSPaddr,2,MaxSP)
End Sub

6 則留言:

  1. 您好,
    抱歉,打擾了,
    請問要學什麼才能看的懂這些?
    感恩。

    回覆刪除
  2. 首先是組合語言,指示如 MOV,LEA 等,不用學太多,看得懂就好

    其次是記憶體的位址,另外 ESI,ECX 等都是寄存器的名稱,裡面放了不同的16進數數值,加上一些運算就能找到相關的記憶體位址

    最後,上面的看不懂也沒關係,只要知道了正確的記憶體位址就可以利用腳本進行不同的動作,最簡單實用的程式就是按鍵精靈,文中的"腳本使用例子"就是按鍵精靈的語句。


    參考資料在這裡:http://www.yydzh.com/read.php?tid=575342
    因為本來想說只做個備忘,沒做甚麼特別的說明抱歉嚕。
    最後說明一下,這主要是用於按鍵精靈寫腳本時,透過查找記憶體的位址得知角色現在的數值,例如把腳本設定為 當 現有生命值/最大生命值 < 0.5 則 按H鍵,那麼當找到血量是49/100或以下的時候腳本就會自動喝紅水。

    回覆刪除
  3. 雖然還是不太懂,謝謝您提供的參考資料。
    其實真正想知道的是...要做出您另外兩篇那類的東西,要學什麼... orz
    只是不知道那個能不能問 (搔頭)

    回覆刪除
    回覆
    1. 呃,另外兩篇嗎?那怎麼來了這篇說啦囧

      硬要說就是自學精神吧,那些PACK補丁是沒甚麼特別要學的,多去補丁區逛逛自然會懂,想入門給你看看這次文章吧:https://sites.google.com/a/wingkwong.edu.hk/test_page/

      刪除
  4. 因為有人不愛人家問補丁的問題,也可能是自己太敏感了...
    再者雖然一開始是想問關於補丁的,可是看到這篇突然很好奇了...
    抱歉造成麻煩了,感恩。

    入門文章沒有權限不能觀看,多謝撥空回覆 ^ ^

    回覆刪除
    回覆
    1. 也沒甚麼麻不麻煩的,大家可能都是靠前人幫助成長的嘛
      我相信有禮貌地問大家都應該很樂意回答的

      啊~!實在不好意思了,那個是新弄的平台我真的忘了調權限,對不起啦(巴

      刪除