Hướng dẫn viết auto cho game
Tổng quát
AutoPlay nhìn chung được chia làm 2 loại:
- Là các macro thay thế thao tác người chơi, phân
tích dữ liệu đồ họa
- Thực thi lệnh game bằng cách thay đổi dữ liệu
game ( mem cheat, packet editor )
Việc phân loại trên chỉ là tương đối do có thể kết hợp
2 loại trên
Loại Macro:
- Chạy dễ dàng với mọi phiên bản, hơi chậm nhưng ổn
định, dễ có sai sót do hình ảnh khuất, không chạy
được ở chế độ FULL screen và 3D ( 2 chế độ này
không bắt được hình ). Người viết cần kiến thức đồ
họa cao
Loại Cheat, hook:
- Chạy riêng từng phiên bản, nhanh nhưng có phần
bất ổn, ít khi sai sót khi xử lý, chạy được ở mọi chế độ
hình ảnh
Ở đây tôi chỉ nói đến loại 2 do loại này chỉ yêu cầu
kiến thức lập trình, không yêu cầu kiến thức đồ họa
Cách Viết AutoPlay loại Hook, mem cheat:
Yêu cầu: - Có các công cụ Game Cheat như Tsearch,
MemFinder
- Biết assembler
- Nắm rõ kỹ thuật hook, packet editor
Các thông tin mà AutoPlay có được là do đọc dữ liệu
trong bộ nhớ game, địa chỉ có thể là DMA hay Static
nhưng đều có thể tìm ra bằng các tool trên.
Tôi chỉ có thể hướng dẫn các bạn sử dụng Mem Cheat
Tool, và hiểu rõ về Hook, các bạn phải tự học ASM
Về Game Hook: Thực chất file hook.dll là dùng để
thay đổi dữ liệu trong game
các bạn tham khảo về Hook tại:
http://msdn.microsoft.com/library/de...dn_
hooks32.asp (http://msdn.microsoft.com/library/
default....sdn_hooks32.asp)
Cách thức Hook họat động:
- Khi không có Hook
Windows Message -> Game Windows -> Game
Message Patch
- Khi có Hook:
Windows Message -> Game Windows -> Hook.dll ->
Game Message Patch
**Lưu ý: Game sẽ thực thi mã trong hook.dll chú
không phải AutoPlay thực thi mã trong hook.dll,
AutoPlay chỉ gửi các thông điệp đặc biệt để hook.dll
biết đó là lệnh của AutoPlay
Hướng dẫn chi tiết:
Bài 1 – Lấy các thông tin cơ bản về nhân vật và tự
BUFF máu, mana
Bài 2 – Lấy thông tin về tọa độ nhân vật, tự tìm quái
đánh, tự nhặt đồ
Bài 3 – Điều khiển nhân vật chạy
Ở đây không bàn đến việc dùng kỹ thuật đồ họa và
chiếm chuột để điều khiển nhân vật. Các phần mềm
hiện nay thường dùng chương trình chính Autoplay
thực hiện việc đọc bộ nhớ Game lấy thông tin và
dùng cơ chế Hook để ghi thông tin cần thay đổi vào
bộ nhớ Game. Một điểm lưu ý là khi Hook sẽ chiếm
tài nguyên, nên ta có thể dùng một mẹo nhỏ, sau khi
Hook ta Unhook ngay lập tức và dùng LoadLibrary để
nạp hook.dll vào bộ nhớ game, thay đổi địa chỉ
WndProc để thực hiện nhiều ý đồ khác.
(Các bạn có thể tham khảo bài viêt sau để biết cách
dùng Hook và mẹo này: http://
www.codeproject.com/threads/winspy.asp). Ngoài
ra, để chương trình có thêm nhiều chức năng, có thể
ta sẽ phải gọi các hàm trong game_y.exe và khi đó ta
phải mở rộng cái Hook.dll để có thể hook + inject
code vào Game process (sẽ nói trong bài 3).
Bài 1 - Lấy các thông tin cơ bản về nhân vật và tự
BUFF máu, mana
Tất cả các nhân vật (người chơi, quái, Npc...) được lưu
thông tin trong mảng gồm 256 đối tượng, mỗi đối
tượng kích thước 0x7E4C, địa chỉ lưu địa chỉ của mảng
trên là 0x00D3A570. Đối tượng 0 để trống, đối tượng
1 là người chơi, còn lại là quái & Npc.
Khi chưa dùng cơ chế inject code nói trên ta có thể
đọc bộ nhớ của Game bằng hàm
ReadProcessMemory. Dưới đây là minh họa lớp đối
tượng Npc và một
Cùng Chuyên Mục:
Hướng dẫn viết auto cho game
? 2013-01-10 / 07:34:22
» Ads:
» Liên kết
Thống kê site Thời gian load trang: 0.002




Facebook
Twitter