Xem thêm Sử dụng Detours để tìm lua_State cho AutoPlay
Có nhiều bạn hỏi mình cách viết auto. Source code và demo thì cũng đã có nhiều rồi. Nhưng sau cái vụ Tru Tiên đổi address trong version 24 thì nhiều bạn muốn tự mình chỉnh lại address cho nhanh chóng thì gặp khó khăn khi tìm lại các địa chỉ này dù rằng ai cũng biết sẽ cần dùng Cheat Engine.
Mình cũng chỉ giới thiệu sơ qua cách dùng Cheat Engine mà mình đã thực hiện cho cả những ai chưa quen cũng có thể thử được. Cách thực hiện cũng chỉ mấy bước và cũng không khó khăn gì.
Pic 1 thông tin HP 5111
Có nhiều bạn hỏi mình cách viết auto. Source code và demo thì cũng đã có nhiều rồi. Nhưng sau cái vụ Tru Tiên đổi address trong version 24 thì nhiều bạn muốn tự mình chỉnh lại address cho nhanh chóng thì gặp khó khăn khi tìm lại các địa chỉ này dù rằng ai cũng biết sẽ cần dùng Cheat Engine.
Mình cũng chỉ giới thiệu sơ qua cách dùng Cheat Engine mà mình đã thực hiện cho cả những ai chưa quen cũng có thể thử được. Cách thực hiện cũng chỉ mấy bước và cũng không khó khăn gì.
Bước 1
Ví dụ bạn muốn search địa chỉ của HP, chúng ta đọc thông tin HP của nhân vật giá trị là 5111Bước 2
Dùng cheat Engine chọn process và search giá trị này, là search lần đầu tiên "New Scan", giá trị là decimal ứng với HP, nên không check HexaBước 3
Mình có rất nhiều kết quả search và thực hiện filter. Vào game tháo bớt đồ hay làm cách nào thay đổi lượng HP, ở đây mình còn 4715 máu nên bước filter mình chọn "Next Scan" với scan type là chính xác giá trị 4715 (tất nhiên có thể chọn scan type khác ví dụ bạn làm cách sao bị mất HP và chỉ cần chọn decrease tức giá trị HP giảm, nhưng nó lâu hơn)Bước 4
Sau bước 3 mình còn 4 địa chỉ. Những địa chỉ này chỉ đúng trong game hiện tại đang chạy nên chúng ta không sử dụng được. Nhưng những địa chỉ này sẽ tham chiếu 1 địa chỉ không đổi theo 1 cách nào đó, gọi là base address cần tìm. Kinh nghiệm thì chúng ta nên để ý 2 địa chỉ gần nhau ở vùng chừng 0x09xxxxxx, vì mình biết 1 cái là HP và 1 cái là max HP cùng giá trị. Trước tiên 2 cái này vào khung kết quả bên dưới bằng cách double click hoặc select rồi nhấn button mũi tên nhỏ như trong hình. Nếu mang lại đồ thì max HP đổi còn HP thường ko đổi (trừ khi tự tăng HP).Bước 5
Chọn một địa chỉ, giả sử mình chọn cái trên là HP (theo suy nghĩ thì cái dưới thường là max HP) rồi thực hiện "Find out what accesses this address" (những các gì truy cập tới địa chỉ này). Chỉ cần scan 1 cái thì cái kia tính theo offset, ở trên là 09xxxxBC tới 09xxxxD4.Bước 6
Search địa chỉ kế tiếp. Mình sẽ check và hexa (đây là giá trị địa chỉ), và thực hiện "New Scan". Sau khi ra kết quả cũng có nhiều, mình sẽ lần lượt tìm kiếm vận may từ trên xuống, bắt đầu là 0x02DFFAC8. Sau khi lưu kết quả vào khung results thì mình lưu dạng pointer để có thể nhớ thêm thông tin offset 0x24C.Bước 8
Tạo một pointer lưu nguyên path của HP từ base address > 1C > 28 > 24C, max HP chúng ta có thể thấy trong lần search đầu 0x09A671D4 hơn HP là 0x09A671BC nên dễ dàng suy ra từ HP base address> 1C > 28 > 264.Các trường hợp đặc biệt khác
Bước 9
Tọa độ x, y, z thông thường kiểu int 4 bytes nhưng search hoài không ra nên mình thử search float và cũng ra kết quả khá đơn giản x = 0x00A45EB4 trong 1 bước.Bước 10
Search những giá trị boolean. Trong auto play mình cần một giá trị gọi là current target, địa chỉ của monster. Mình có thể suy ra khi không có monster giá trị này có lẽ là 0, do đó không focus monster nào search giá trị 0, lần đầu search tất nhiên ra vài trăm ngàn đến vài trăm triệu kết quả.Ngoại lệ
Ngoại lệ khi thực hiện như trên mà vẫn không ra, rất là xui ??? Vậy có một cách khác hơi lâu nhưng đỡ bực bội hơi. Sau khi search lần đầu tiên và filter (bước 4 như trên), mình sẽ thực hiện "Pointer scan for this address", nên chọn default để tránh game process bị die giữa chừng.Bước quan trọng tiếp là save lại kết quả 1 đêm này.
Sau đó tắt game, lặp lại bước 1-4 để tìm address thể hiện HP mới, giá trị này không còn như cũ nữa. Rồi chúng ta sẽ lọc trong đám static base chọn rescan đến address mới có thì kết quả sẽ được filter lại.Còn một phần nữa sẽ nói để hoàn thiện nhưng phải debug và cũng không dùng Cheat Engine nên sẽ nói sau (trường hợp search base address của lua state, cái này thằng nhóc em search bằng VS với mode debug nhưng giờ thì không dùng cách đó được nữa). Dù gì giờ cũng khuya rồi, chúc mọi người ngủ ngon.
tìm hoài ko được nản thật ( game Priston Tale )
ReplyDelete