|
You last visited: Today at 17:23
Advertisement
Rus. server
Discussion on Rus. server within the Perfect World forum part of the MMORPGs category.
12/27/2009, 12:37
|
#1171
|
elite*gold: 0
Join Date: Nov 2009
Posts: 96
Received Thanks: 31
|
Quote:
Originally Posted by dwar
popad = pop EDI, ESI, EBP, ESP, EBX, EDX, ECX, EAX
т.е., достаточно оставить popad (если здесь под POPAD() подразумевается аналог команды ассемблера)
|
а равновесие не нарушится - мы ведь в стек получается 2 раза EDI прячем PUSHAD и PUSH EDI, а вынимаем один POPAD .. ??
|
|
|
12/27/2009, 12:44
|
#1172
|
elite*gold: 0
Join Date: Nov 2009
Posts: 96
Received Thanks: 31
|
Quote:
Originally Posted by dj_al
подумай ...
|
Не ID прячется а куазатель на ID
static DWORD WINAPI SelectMonster( LPCVOID lpParam )
{ DWORD BaseAddress = 0x0098ADDC;
DWORD CallAddress = 0x005B7B70;
DWORD MonsterID = (DWORD)lpParam;
|
|
|
12/27/2009, 13:10
|
#1173
|
elite*gold: 0
Join Date: Oct 2009
Posts: 20
Received Thanks: 2
|
Функция  и из AutoGeo совпадают. Проверил опкоды - всё правильно.
|
|
|
12/27/2009, 13:11
|
#1174
|
elite*gold: 0
Join Date: Nov 2009
Posts: 96
Received Thanks: 31
|
Quote:
Originally Posted by dj_al
Вах ...
|
MonsterID - это указатель на ID (в этой именно реализации на VC++)
mov edi, MonsterID; // записывается в регистр
mov edi, [edi]; // из адресса, который и представляет собой этот указатель (по нем и лежит ID) - читаются данные в опять-же в этот регистр - то-есть сам ID
push edi; // и прячется ..
сам ID подготавливается функцией распределения памяти под данные функции потока, записью туда ID-а и открытием потока, а в эту функцию ID передается из основной программы ..
... это не я "Молодца" - это тот кто так догадался сделать на VC++
.. вообще-то работает ..
|
|
|
12/27/2009, 14:32
|
#1175
|
elite*gold: 0
Join Date: Nov 2007
Posts: 160
Received Thanks: 28
|
У меня сделано как FSM. Но если ты хочешь
Quote:
Originally Posted by silkytail
... формализовать планы и цели так, чтобы это не было зашито только в коде и можно было это настраивать? ...
|
То надо ичпользовать Lua или Python. А для любителей дельфи - FastScript.
|
|
|
12/27/2009, 14:37
|
#1176
|
elite*gold: 0
Join Date: Nov 2009
Posts: 96
Received Thanks: 31
|
Novohyd
процесс можно не трогать пусть он открыт всегда .. там одна строчка в функции
CallRemoteFunction(...) перед return стоит CloseHandle(hProcess); - убери и все ОК!
теперь логику надо отштудировать - там в цикле DO не так как-то определение занятости моба (с инжектом полного выделения) стало работать .. подумай или закоменть все что с ней связано и сам цикл DO .. один FOR оставь пока.. (потом с занятостью разберемся)
|
|
|
12/27/2009, 14:59
|
#1177
|
elite*gold: 0
Join Date: Sep 2009
Posts: 85
Received Thanks: 27
|
Quote:
|
... формализовать планы и цели так, чтобы это не было зашито только в коде и можно было это настраивать? ...
|
Чтобы формализовать цели, даже пусть самые навороченные, хватит обычного XML.
Но кроме формализации целей, придется формализовать также и методы их достижения, по хорошему. А это имхо сложнее- предоставить человеку возможность писать свои скрипты.. кто это будет делать? если даже нескриптовые варианты ботов отлаживаются с трудом, то потом мы получим очень сложного бота (в плане настройки).
Лично я усвоил правило:
За универсальность приходится платить. Или производительностью или излишней сложностью интерфейса.
Ведь потом все равно придется делать для пользователя удобный и доступный интерфейс- то есть дедукция - от общего к частному.
Лично я поставлю себе на форму галочку "Улетать при критическом здоровье"- для меня этого достаточно.
Выходит, игра не стоит свеч. Зачем напрягаться, делать супер навороченного бота, которым потом будет также трудно пользоваться?
Мой вердикт: я за универсальность, но в меру.
ЗЫ: про автоматы и FSM: мы проходили теорию автоматизации весьма поверхностно, так что возможно с терминологией я ошибся. Извиняйте. Главное, вы поняли идею))
|
|
|
12/27/2009, 16:35
|
#1178
|
elite*gold: 0
Join Date: Nov 2007
Posts: 160
Received Thanks: 28
|
Кстати, кто-нибудь обнаружил в клиенте список активных и доступных квестов ??
Поделитесь смещениями... А то начал тут делать авто-гео и застрял на этом моменте.
|
|
|
12/27/2009, 16:59
|
#1179
|
elite*gold: 0
Join Date: Nov 2009
Posts: 69
Received Thanks: 5
|
Quote:
Originally Posted by origmas
Ну че Novohyd - прививается зараза - Али как ?
-- беги за Клинским ..))
|
Заменил - 19 ошибок компилятор выдал. Сижу-разбираюсь
|
|
|
12/27/2009, 17:09
|
#1180
|
elite*gold: 0
Join Date: Nov 2009
Posts: 69
Received Thanks: 5
|
Все поправил - пробелы откуда-то взялись при копировании с форума.
Запустил - моба не выделяет. При нескольких нажатиях на кнопу Цель вместо в строке где показывает выбранного моба пишет Диапозон от 147 до 187 и в зависание бота.
Чтоб проверить раскомментировал WriteProcessMemory(Proc,(LPVOID)(Pers+_CharTID),&P riorID,4,0); - прописывает моба неполным выделением. Знач моба находит нормально и ид пересылает.
|
|
|
12/27/2009, 17:20
|
#1181
|
elite*gold: 0
Join Date: Sep 2009
Posts: 85
Received Thanks: 27
|

Почитай, мож поможет)) заодно спроси чела, может он пояснит.
|
|
|
12/27/2009, 17:51
|
#1182
|
elite*gold: 0
Join Date: Jul 2008
Posts: 43
Received Thanks: 16
|
Quote:
Originally Posted by origmas
MonsterID - это указатель на ID (в этой именно реализации на VC++)
mov edi, MonsterID; // записывается в регистр
mov edi, [edi]; // из адресса, который и представляет собой этот указатель (по нем и лежит ID) - читаются данные в опять-же в этот регистр - то-есть сам ID
push edi; // и прячется ..
сам ID подготавливается функцией распределения памяти под данные функции потока, записью туда ID-а и открытием потока, а в эту функцию ID передается из основной программы ..
... это не я "Молодца" - это тот кто так догадался сделать на VC++
.. вообще-то работает ..
|
В данной реализации сишника то работает. А вот человек спрашивал про Автоит.А ты ему там советуешь выполнять данную операцию. А для него она НЕ ПРИМЕНИМА. Поэтому в его реализации данная вещь приводит к 100% лаже.
Заметь в его примере:
Code:
MOV_EDI(Dec("801050D6"))
MOV_EDI_DWORD_PTR_EDI()
PUSH_EDI()
Он запихивает само ID в регистр EDI, а не указатель на него. Поэтому операция MOV_EDI_DWORD_PTR_EDI() для него идиотична. К тому же, чтобы использовать пример из твоего сишника, ты сначала должен этот ID писать в адресное пространство клиента, а потом только передавать параметром своей функции (кстати что абсолютно бессмысленно, т.к. по сути при вызове CreateRemoteThread ты передаёшь 1 параметр - в 4 байта, который всего лишь является указателем на число в 4 байта, поэтому в данной конкретной ситуации проще не через указатель передавать, а само ID вместо указателя. Но такой частный случай может привести к тому, что не подойдёт общий код инъекции, расчитанный на большую структуру параметров).
На автоите ID передаётся совсем по другому. Там не делается передача по указателю. Вместо этого динамически формируется исполняемый код, который именно записывает этот ID по самому значению в регистр EDI, и передача параметров просто не осуществляется.
Т.е. в его случае команда:
MOV_EDI(Dec("801050D6"))
должна сформировать исполняемый ассемблерный код команды:
mov edi, 0x801050D6
Как видишь тут передачи параметров, а тем более извлечение их значений по указателям просто нету.
А причина проблем у человека: либо некорректное формирование исполняемого кода инъекции, либо неправильно осуществление самой инъекции.
|
|
|
12/27/2009, 18:12
|
#1183
|
elite*gold: 0
Join Date: Sep 2009
Posts: 85
Received Thanks: 27
|
Как узнать, чей лут? Отличить свой лут/ничей и чужой.
Чтобы не стоять тупо около монетки не своей- палевно очень.
Да и когда чел рес копает, у него над душой стоять в ожидании копания тоже как то некрасиво....
|
|
|
12/27/2009, 18:17
|
#1184
|
elite*gold: 0
Join Date: Oct 2009
Posts: 20
Received Thanks: 2
|
Ребят, нашёл ошибку)
В Autogeo неправильно переводится add ecx,... в машинные коды)
Теперь работает)
Спасибо вам огромное!
|
|
|
12/27/2009, 18:53
|
#1185
|
elite*gold: 0
Join Date: Nov 2009
Posts: 69
Received Thanks: 5
|
Quote:
Originally Posted by Shamanpovt
Ребят, нашёл ошибку)
В Autogeo неправильно переводится add ecx,... в машинные коды)
Теперь работает)
Спасибо вам огромное!
|
Если не секрет, как правильно?
|
|
|
All times are GMT +1. The time now is 17:23.
|
|