Перейти к содержанию

Рекомендуемые сообщения

Доброго времени суток!

На днях внимательно прочитал ЛУРК и решил не теряя времени заполнить не прожитые минуты своей жизни чем-то интересным на базе чего-то знакомого, собственно, поэтому и выбрал питон (знаю, что правильно будет "пайтон", но больше мне почему-то нравится, -питон). Скажу честно, по-мимо природной лени, на данный форум меня привлекли труды замечательного автора GameHackLab[RU] (здоровья ему!) . Свои силы в программировании решил опробовать на пиратских серверах WoW 1.12.1 (http://www.kronos-wow.com/), т.к. грабить награбленное -двойное удовольствие :)) Вообщем, решил написать свой трейнер на Python, ибо античит система "Warden" безжалостно уничтожает все известные читы (блокирует аккаунт), в том числе, БАН настигает сразу при попытке использовать SpeedHack в Cheat Engine 6.5.1. Бабло и шмот в первую очередь не интересуют, т.к. именно ради их достижения и есть охота побегать, поиграть. Задача для профи -минималистичная, задача для новичка -амбициозная! :))

Подскажите, пожалуйста, как перехватить адреса, оффсеты, опкоды для использования:

 

1. SpeeHack

2. Teleport

3. Invisible mode (без лимита по времени)

 

Для хуков и инжектов использую модуль PyDBG, пока что удалось получить только имя героя:

Скрытый текст

from pydbg import *
from pydbg.defines import *
import utils
import sys
import struct
import win32api
import re
import ctypes

dbg = pydbg()
found_program = False

#valid_str = "Something to write"

def handler_breakpoint(dbg):
	data = dbg.read_process_memory(relative_address,14)
	print "%s" % data
#	print "%s" % data.encode("hex")
#	wdata = ctypes.create_string_buffer(valid_str)
#	dbg.write(address, wdata, len(valid_str))
	return DBG_CONTINUE


for (pid, name) in dbg.enumerate_processes():
	if name.lower() == "wow.exe":
		found_program = True
		hooks = utils.hook_container()
		dbg.attach(pid)
		print "Attaching with PID: %d" % pid

for modules in dbg.enumerate_modules():
	if str(modules)[2:6] == "WoW.":
		base_address = int((re.split(r', ', str(modules))[1])[0:-2])
		print "Base address: 0x%08x" % base_address
		relative_address = base_address + 8551816

		print "Relative address: 0x%08x" % relative_address
		dbg.set_callback(EXCEPTION_BREAKPOINT,handler_breakpoint)

if found_program:
	print "-------------------------------"
	dbg.run()
else:	
	print "Error: Couldn't find process."
	sys.exit(-1)

 

 

Ссылка на комментарий
Поделиться на другие сайты

Для:

1. SpeeHack

2. Teleport

 

Нужно будет отыскать функцию которая создает движение(CreateMove) и функцию которая подтверждает значения и "говорит" серверу, что все значения в том числе измененные тобой нормальные, подтверждение данных прошло успешно и сервер будет думать что все хорошо, даже если будешь бегать со скоростью света. В функции создающей движение обычно указывается время выборки кадров, его и надо изменять

 

На счет 3. Invisible mode (без лимита по времени), не играл в wow, так что тут догадка, ищешь таймер, выходишь на главную функцию,дальше либо хукаешь функцию, либо изменяешь значения и так же подтверждаешь изменение той функцией которая "говорит" серверу, что все хорошо. 

 

Без функции подтверждения, тебя будет откидывать назад когда изменяешь значения координат к примеру. на питоне делать хук функции это извращение как по мне, на C++ есть уже готовые библиотеки для этого.

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Действительно, замучился писать на питоне, перешёл на C++, написал подмену координат и столкнулся с этим:

В 28.07.2016в11:50, partoftheworlD сказал:

Без функции подтверждения, тебя будет откидывать назад когда изменяешь значения координат к примеру

Подскажите, пожалуйста, способ, как можно отловить функцию подтверждения?

Ссылка на комментарий
Поделиться на другие сайты

Трассировать код в отладчике. Не знаю как в WoW,но в кс генерировался CRC хеш. Где-то в конце главной функции будет вызов на подтверждение её значений.

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.