Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Ткните носом пожалуйста

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 18.05.2013, 18:01   #16
-= Мастер Света =-
 Рыцарь-капитан
Аватар для Ginrey
 
Ginrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака Норриса
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
 
По умолчанию Re: Ткните носом пожалуйста

Цитата:
Сообщение от Xantrax2150198Посмотреть сообщение
Эту фразу вообще не понял, что вы понимаете по системными ресурсами?

короче попробуй ту же DWORD. А вообще если у тебя инжект взятия в таргет есть то там и посмотри, как не крути это переменная используется
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо"

Делаю программы на заказ, по всем вопросам в скайп: Ginrey2

Последний раз редактировалось Ginrey; 18.05.2013 в 18:04.
  Ответить с цитированием
Старый 20.05.2013, 16:52   #17
 Разведчик
Аватар для Xantrax2150198
 
Xantrax2150198 никому не известный тип
Регистрация: 12.05.2013
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Ткните носом пожалуйста

А можете мне на пальцах рассказать алгоритм действий по автоматизации бота?
Вот у меня есть функция взятия в таргет моба и атака его обычной атакой ( все это пока забито на нажатие кнопки, т.е. я нажимаю кнопку у себя в программе - бот выделяет ближайшего моба и бьет, далее опять надо нажать кнопку, чтобы повторить процесс).
Объясните мне пожалуйста как его автоматизировать, что бы можно было запустить на бесконечное выполнение и остановить в любое время. (Сразу оговорюсь, что тему по созданию бота №2 читал, но пока не дошел до понимания). Спасибо.

Как узнать, если в тергете у перса моб или нет? Как я понимаю, за это должен отвечать какой-то оффсет, и если я не ошибаюсь - это FullTarget 00693D60, или я ошибаюсь? А что возвращает это значение? Я сейчас считал с памяти значение из этого адреса, и там какое-то ничего не говорящее число... А надо перед этим ставить смещение, я так понял, что не надо...

Последний раз редактировалось Xantrax2150198; 20.05.2013 в 21:39. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 20.05.2013, 22:18   #18
 Разведчик
Аватар для fds255
 
fds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известен
Регистрация: 23.06.2012
Сообщений: 43
Популярность: 427
Сказал(а) спасибо: 18
Поблагодарили 59 раз(а) в 35 сообщениях
 
По умолчанию Re: Ткните носом пожалуйста

Xantrax2150198,

Здесь в разных темах уже все разжевали, а ты проглотить даже не хочешь, извиняюсь за оффтоп.

Теперь по теме:
1)
Цитата:
Сообщение от Xantrax2150198Посмотреть сообщение
FullTarget

- это адрес функции взятия в таргет, не важно кого, моба, NPC или другого перса, в функцию передается WID.

2)
Цитата:
Сообщение от Xantrax2150198Посмотреть сообщение
Как узнать, если в таргете у перса моб или нет?

Читаешь структуру
BA +0x1C +0x1C +0x24 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/

+0x0B4 Type, dword /Тип моба/
Значение: 6 - моб, 7 - NPC, 9 - Pet

Соответственно если 6 то это моб, если другое значение, то нет

Вообще здесь есть все необходимые структуры и офсеты: http://zhyk.ru/forum/showthread.php?t=287321
________________
MultiXBot
MultiX_POT
  Ответить с цитированием
Старый 20.05.2013, 22:33   #19
 Разведчик
Аватар для Xantrax2150198
 
Xantrax2150198 никому не известный тип
Регистрация: 12.05.2013
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Ткните носом пожалуйста

Цитата:
Читаешь структуру
BA +0x1C +0x1C +0x24 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/
+0x0B4 Type, dword /Тип моба/
Значение: 6 - моб,

Если в структуре Type = 6, то это не значит, что у меня в таргете моб, это всего лишь значит что в струтуре по такому-то адресу моб...
А как узнать что у меня есть таргет?
Может быть я не правильно задал вопрос, перефразирую так: Как узнать есть ли у меня кто-то в таргете?

Последний раз редактировалось Xantrax2150198; 20.05.2013 в 22:44.
  Ответить с цитированием
Старый 20.05.2013, 22:46   #20
 Разведчик
Аватар для fds255
 
fds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известен
Регистрация: 23.06.2012
Сообщений: 43
Популярность: 427
Сказал(а) спасибо: 18
Поблагодарили 59 раз(а) в 35 сообщениях
 
По умолчанию Re: Ткните носом пожалуйста

Xantrax2150198,

1) Здесь:
BaseAdress +0x1C +0x34
+0BF8 Target, dword
считываешь WID твоего таргета

2)Как уже писал:
Читаешь структуру
BA +0x1C +0x1C +0x24 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/

+0x0B4 Type, dword /Тип моба/
Значение: 6 - моб, 7 - NPC, 9 - Pet

Если Type=6 то читаешь
+0x120 WID, dword

3) Сравниваешь эти значения!!!
________________
MultiXBot
MultiX_POT
  Ответить с цитированием
Старый 20.05.2013, 23:10   #21
 Разведчик
Аватар для Xantrax2150198
 
Xantrax2150198 никому не известный тип
Регистрация: 12.05.2013
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Ткните носом пожалуйста

Цитата:
1) Здесь:
BaseAdress +0x1C +0x34
+0BF8 Target, dword
считываешь WID твоего таргета

Ага, теперь вроде понятно! Просто не увидел я этого оффсета(+0BF8 Target, dword) в структуре перса.

Добавлено через 14 часов 14 минут
Ммм, клиент обновился, оффсеты обновились или я не прав?
Нет скорее всего у меня руки не из того места растут....(( Столько всего нагородил в программе теперь глаза в кучку...

Добавлено через 22 часа 13 минут

Добавлено через 22 часа 20 минут
Хочу-таки организовать подбор лута, начал с самого пока простого - это отсылка окну игры нажатия клавиши на которую забинден подбор лута, для этого, как уже говорилось выше нужно разморозить окно...
Переписал функцию любезно предоставленную мне Ginrey (выше), получилось вот что:
void CNewBotDlg::UnfreezeWindow(DWORD pid)
{
DWORD on = 1;
HWND N = ::FindWindow("ElementClient Window",NULL);
if(N!=0)
{
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);
if(pid!=0)
{
WriteProcessMemory(hProcess,(void*)Unfreeze1,&on,s izeof(DWORD),NULL);
WriteProcessMemory(hProcess,(void*)Unfreeze2,&on,s izeof(DWORD),NULL);
}
else
{
MessageBox("pid = 0","WARNING",MB_OK);
}
CloseHandle(hProcess);
}
else
{
MessageBox("Error","",MB_OK);
}
//PostMessageW(Wnd,VK_TAB,0,0); //До отправки нажатия пока не дошло поэтому закомментировано
/*SendDlgItemMessageW(N,0,VK_TAB,0,0);*/
}
Но у меня клиент игры виснет, а через продолжительно время завершается без выдачи каких либо ошибок.
Есть какие либо соображения по этому поводу?
Опять я где-то что-то недописал или нужно было предварительно еще что-то сделать?

Последний раз редактировалось Xantrax2150198; 21.05.2013 в 21:33. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 21.05.2013, 21:58   #22
 Пехотинец
Аватар для _DVD_
 
_DVD_ лучик света в грозовом небе_DVD_ лучик света в грозовом небе_DVD_ лучик света в грозовом небе_DVD_ лучик света в грозовом небе_DVD_ лучик света в грозовом небе_DVD_ лучик света в грозовом небе_DVD_ лучик света в грозовом небе
Регистрация: 17.09.2010
Сообщений: 66
Популярность: 701
Сказал(а) спасибо: 32
Поблагодарили 63 раз(а) в 46 сообщениях
 
По умолчанию Re: Ткните носом пожалуйста

по поводу разморозки

Visual С++ не юзал, но по идее так

DWORD Unfreeze1 = 0x00436986;
DWORD Unfreeze2 = 0x00B9070C;
WORD unfreeze_word = $01B0;
WORD unfreeze_flag = $01;

WriteProcessMemory(hProcess, (void*)Unfreeze1, &unfreeze_word, sizeof(unfreeze_word), NULL);
WriteProcessMemory(hProcess, (void*)Unfreeze2, &unfreeze_flag, sizeof(unfreeze_flag), NULL);
________________
© Mel

Последний раз редактировалось _DVD_; 22.05.2013 в 08:32.
  Ответить с цитированием
Старый 21.05.2013, 23:39   #23
 Разведчик
Аватар для fds255
 
fds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известен
Регистрация: 23.06.2012
Сообщений: 43
Популярность: 427
Сказал(а) спасибо: 18
Поблагодарили 59 раз(а) в 35 сообщениях
 
По умолчанию Re: Ткните носом пожалуйста

Xantrax2150198,

Зачем так все усложнять, если делаешь бота, по-любому есть хоть один таймер, просто добавляешь в него строку(Пример на Дельфи):
WriteProcessMemory(hProcess,ptr($00B9070C),@unfree ze,1,temp);

Типы переменных такие:

Const
unfreeze: DWord=1;

var
temp: DWord;
hProcess:Cardinal;
________________
MultiXBot
MultiX_POT

Последний раз редактировалось fds255; 21.05.2013 в 23:41.
  Ответить с цитированием
Старый 22.05.2013, 00:07   #24
 Разведчик
Аватар для Xantrax2150198
 
Xantrax2150198 никому не известный тип
Регистрация: 12.05.2013
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Ткните носом пожалуйста

Цитата:
Зачем так все усложнять, если делаешь бота, по-любому есть хоть один таймер,

А разве Unfreeze не один раз сделал и на все время? По вашему он у меня каждую секунду(1000мс) должен размораживать окно? А зачем?
  Ответить с цитированием
Старый 22.05.2013, 00:18   #25
 Разведчик
Аватар для fds255
 
fds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известен
Регистрация: 23.06.2012
Сообщений: 43
Популярность: 427
Сказал(а) спасибо: 18
Поблагодарили 59 раз(а) в 35 сообщениях
 
По умолчанию Re: Ткните носом пожалуйста

Xantrax2150198,

Каждый делает так, как ему удобно )
________________
MultiXBot
MultiX_POT
  Ответить с цитированием
Старый 22.05.2013, 00:21   #26
 Разведчик
Аватар для Xantrax2150198
 
Xantrax2150198 никому не известный тип
Регистрация: 12.05.2013
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Ткните носом пожалуйста

_DVD_
Цитата:
по поводу разморозки

Вот так написал с вашей подсказкой:
void CNewBotDlg::UnfreezeWindow(DWORD pid)
{
DWORD Unfreeze1 = 0x00436988;
DWORD Unfreeze2 = 0x00B9070C;
WORD unfreeze_word = 0x01B0 ;
WORD unfreeze_flag = 0x01;
HWND N = ::FindWindow("ElementClient Window",NULL);

HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);
if(pid!=0)
{
WriteProcessMemory(hProcess,(void*)Unfreeze1,&unfr eeze_word,sizeof(unfreeze_word),NULL);
WriteProcessMemory(hProcess,(void*)Unfreeze2,&unfr eeze_flag,sizeof(unfreeze_flag),NULL);
}
else
{
MessageBox("pid = 0","WARNING",MB_OK);
}
CloseHandle(hProcess);
}
Эффект тот же... Приложение зависает(заступоривается, ошибок не выдает)....
Сейчас попробуем с таймером...
Таки добился я своего, вот рабочий код с таймером:
void CNewBotDlg::OnTimer(UINT C)
{
/*MessageBox("Таймер работает(запущен)","",MB_OK);*/
DWORD unfreeze = 1;
DWORD A = 0x00B9070C;

HWND hWnd = ::FindWindow((LPCSTR)"ElementClient Window",NULL);
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);
if(pid!=0)
{
WriteProcessMemory(hProcess,(void*)A,&unfreeze,1,N ULL);
}
else
{
MessageBox("pid=0","",MB_OK);
}
::PostMessage(hWnd,WM_KEYDOWN,VK_TAB,0);
}
Однако по таймеру мне не надо, а как мне лут то собирать? Мне нужна отдельная функция сбора лута (виртуального нажатия на клавишу сбора лута), что бы ее подставить ко всем остальным...
//************************************************** *************************************************
Хм, я вот что-то не пойму, кто какие адреса дает... В Оффсетах одни адреса:
Unfreeze 00436986 (84 C0 > B0 01 > B0 00)
Unfreeze 00436988 (88...75 > C6...01)
со странными значениями в скобках, не поясненными
_DVD_ дает другие:
DWORD Unfreeze1 = 0x00436988;
DWORD Unfreeze2 = 0x00B9070C;
WORD unfreeze_word = $01B0;
WORD unfreeze_flag = $01;
Тоже с какой-то магией записи в память...
Вы, fds255, предлагаете просто воспользоваться одним адресом(0x00B9070C, который вообще отмечен в оффсетах как UnfreezeData), причем он работает как при запихивании его в таймер, так и в обычной функции. Спасибо, по крайней мере Tab он переключает отлично!

А у всех остальных предложивших свои варианты работают функции, в память значения пишутся?

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

Последний раз редактировалось Xantrax2150198; 22.05.2013 в 01:15.
  Ответить с цитированием
Старый 22.05.2013, 01:45   #27
 Разведчик
Аватар для fds255
 
fds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известен
Регистрация: 23.06.2012
Сообщений: 43
Популярность: 427
Сказал(а) спасибо: 18
Поблагодарили 59 раз(а) в 35 сообщениях
 
По умолчанию Re: Ткните носом пожалуйста

Цитата:
Сообщение от Xantrax2150198Посмотреть сообщение
Хм, я вот что-то не пойму, кто какие адреса дает... В Оффсетах одни адреса:
Unfreeze 00436986 (84 C0 > B0 01 > B0 00)
Unfreeze 00436988 (88...75 > C6...01) со странными значениями в скобках, не поясненными

Уверен, все указано верно, посмотри на следующий скрин и ты поймешь, что значат символы в скобках:

JPG1.JPG
________________
MultiXBot
MultiX_POT
  Ответить с цитированием
Старый 22.05.2013, 08:38   #28
 Пехотинец
Аватар для _DVD_
 
_DVD_ лучик света в грозовом небе_DVD_ лучик света в грозовом небе_DVD_ лучик света в грозовом небе_DVD_ лучик света в грозовом небе_DVD_ лучик света в грозовом небе_DVD_ лучик света в грозовом небе_DVD_ лучик света в грозовом небе
Регистрация: 17.09.2010
Сообщений: 66
Популярность: 701
Сказал(а) спасибо: 32
Поблагодарили 63 раз(а) в 46 сообщениях
 
По умолчанию Re: Ткните носом пожалуйста

Xantrax2150198, прошу прощения опечатался. в конце 6 - DWORD Unfreeze1 = 0x00436986;
тут смысл такой - по этому адресу патчится функция
а в 0x00B9070C записываем флаг 0х01
и после этого смена фокуса уже не влияет на отрисовку окна


для теста сделайте функцию разморозки отдельной кнопкой, убрав все лишнее. когда будет работать, добавите нужные строки.
________________
© Mel
  Ответить с цитированием
Старый 22.05.2013, 13:17   #29
 Разведчик
Аватар для Xantrax2150198
 
Xantrax2150198 никому не известный тип
Регистрация: 12.05.2013
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Ткните носом пожалуйста

Цитата:
посмотри на следующий скрин и ты поймешь

Если честно, не силен в asm коде, и поэтому мне скрин ничего не сказал... (Простите).
Цитата:
для теста сделайте функцию разморозки отдельной кнопкой

Сделал, вот:
void CNewBotDlg::UnfreezeWindow(DWORD pid)
{
DWORD unfreeze = 1;
DWORD A = 0x00B9070C;

HWND hWnd = ::FindWindow((LPCSTR)"ElementClient Window",NULL);
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);
if(pid!=0)
{
WriteProcessMemory(hProcess,(void*)A,&unfreeze,1,N ULL);
}
else
{
MessageBox("pid=0","",MB_OK);
}
::PostMessage(hWnd,WM_KEYDOWN,VK_F3,0);
}

Вызываем функцию в нажатии кнопки:

void CNewBotDlg::OnBnClickedOk()
{
UnfreezeWindow(pid);
}
Не пойму, зачем патчить функцию, если достаточно в адрес памяти записать 1 вместо 0...
  Ответить с цитированием
Старый 22.05.2013, 13:51   #30
 Разведчик
Аватар для dixgen
 
dixgen скоро будет известенdixgen скоро будет известенdixgen скоро будет известенdixgen скоро будет известен
Регистрация: 06.07.2010
Сообщений: 30
Популярность: 364
Сказал(а) спасибо: 1
Поблагодарили 16 раз(а) в 9 сообщениях
 
По умолчанию Re: Ткните носом пожалуйста

Цитата:
Сообщение от Xantrax2150198Посмотреть сообщение
Не пойму, зачем патчить функцию, если достаточно в адрес памяти записать 1 вместо 0...

Затем что, при смене фокуса окна клиент опять 1 сменит на 0. И вам придется постоянно писать туда 1.
А если пропатчить, разморозка будет действовать постоянно.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Гм Инновы у нас под носом О_о .NextTarget Общение и обсуждение, архив Point Blank 4 10.03.2011 13:16

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 18:39.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net