[零基礎][03] vb6寫楓之谷外掛 – 讀取及寫入Pointer篇

許多時候當我們要修改或讀取一個Address的Value時,會碰到浮動位址的問題,也許當下找到的位址是正確的,修改後也有效果,但重新開啟遊戲或進程後,位址就跑掉了。這時我們就需要找到他的基址啦,不過本篇的重點不在這裡,而是在於「使用vb6讀取或寫入進程的Pointer」。閱讀本篇文章前,請先閱讀[零基礎][01] vb6寫楓之谷外掛 – Hack.cls 類模組篇


第一步 加入clsHack的宣告:
Dim HACK As New clsHack
第二步 在表單中加入一個Timer、一個Label,並命名為tmrPointer、lblHpMp。

第三步 雙擊tmrPointer,加入以下程式碼。
Dim Hp,Mp As Long
Call HACK.WritePointer("MP警告基址", "MP警告偏移 - 4", &H20): Call HACK.WritePointer("MP警告基址", "MP警告偏移", &H20)
Hp = HACK.ReadPointer("HP基址", "HP偏移")
Mp = HACK.ReadPointer("HP基址", "HP偏移" + 4)'HP偏移+4=MP偏移
lblHpMp = "Hp:" & Hp & " Mp:" & Mp

Call HACK.WritePointer("MP警告基址", "MP警告偏移 - 4", &H20): Call HACK.WritePointer("MP警告基址", "MP警告偏移", &H20)
這一句的目的是將HP及MP的警告值調到100%,由於未知原因,不進行此動作的話會無法讀到正確的HP、MP Value。此動作在取得進程時就可以執行,添加在此處只是再一次強調並說明其功用,可以刪除。