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

[Руоф] Код для инжекта в память.

-

Разработка ПО для Perfect World

- Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World

Ответ
 
Опции темы
Старый 02.04.2012, 00:36   #151
 Пехотинец
Аватар для dwa83
 
dwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личность
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Доброй ночи. Хотел спросить насчёт инжекта использования предмета из инвентаря. Адрес в шапке 00668490 судя по всему работает (хотя помечен звёздочкой). Вобщем, нашёл я кусок кода, который вызывается при использовании предметов в инвентаре. Если проследовать по коду, то после нескольких проверок и джампов в зависимости от того, используемый предмет или нет, откат у предмета или нет мы попадаем к вызову функции как раз по этому адресу. Но там есть один параметр, значение которого я не знаю. Там какой-то адрес, который не меняется, пока не перезапустишь клиент. Судя по всему указывает на какую то структуру. Если в этом параметре прямо числовым значением указать то что показывает Olly в этом регистре перед вызовом функции, то инжект работает. Может кто выложить asm код инжекта, или подсказать на какую структуру указывает этот адрес?

Вот ниже код
Код:
// Использование предмета
void __stdcall UseItem_THREAD(CELL_ITEM* itm)
{
  DWORD id = itm->id;
  DWORD num = itm->CellNum;
  DWORD Function = 0x00668490;
  DWORD HZadress = 0x07C3E3C4;  // если подставить напрямую значение которое показывает Olly
  __asm
  {
    PUSH 1                                 //  ; /Arg4 = 1
    PUSH id                                //  ; |Arg3     // ид предмета (проверил по базе)
    PUSH num                             //  ; |Arg2  //номер ячейки, отсчёт от 0
    PUSH 0                                 //  ; |Arg1 = 0
    MOV ECX,HZadress                 //  ; |   // ХЗ что такое(
    CALL Function                       //  ; \elementclient.00668490
 }
}

void GAME_PROC::UseItem(DWORD id, int cell)
{
  CELL_ITEM itm;
  itm.id=id;
  itm.CellNum=cell;
  InjectAndExecute(&UseItem_THREAD, &itm);
}
Добавлено через 4 часа 41 минуту
Всё, допёр что за цепочка была. Вот что получилось
Код:
void __stdcall UseItem_THREAD(CELL_ITEM* itm)
{
  DWORD id = itm->id;
  DWORD num = itm->CellNum;
  DWORD Function = 0x00668490;
  __asm
  {
    PUSH 1                                 //  ; /Arg4 = 1
    PUSH id                                //  ; |Arg3
    PUSH num                             //  ; |Arg2
    PUSH 0                                 //  ; |Arg1 = 0
    MOV ECX,[BA]
    MOV ECX,[ECX+0x20]
    ADD ECX,0x0EC
    CALL Function                          //  ; \elementclient.00668490
 }
}
Сейчас инжект использования предмета рабочий.
Если кто-нибудь без пакетов делает, пригодится)

Последний раз редактировалось dwa83; 02.04.2012 в 05:21. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 05.04.2012, 08:27   #152
 Старший сержант
Аватар для .AsTex.
 
.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания
Регистрация: 17.04.2010
Сообщений: 200
Популярность: 1972
Сказал(а) спасибо: 95
Поблагодарили 271 раз(а) в 105 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Пакет на инфо о персонаже(шмот и т.д.) подскажите
  Ответить с цитированием
Старый 05.04.2012, 08:37   #153
 Разведчик
Аватар для TBXin
 
TBXin излучает ауруTBXin излучает ауруTBXin излучает ауруTBXin излучает ауруTBXin излучает ауруTBXin излучает ауру
Регистрация: 16.06.2009
Сообщений: 5
Популярность: 627
Сказал(а) спасибо: 0
Поблагодарили 4 раз(а) в 4 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

anderwhat, на общие статы один пакет, на расширенные статы другой пакет, а так же на каждый тип инвентаря свой пакет.
Клиент свои статы не запрашивает, все приходит при подключении к серверу, а так же при любом изменении оных.

З.Ы. На сколько я помню
________________
Официальный твинк TBX1n'a.
  Ответить с цитированием
Старый 05.04.2012, 08:42   #154
 Старший сержант
Аватар для .AsTex.
 
.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания
Регистрация: 17.04.2010
Сообщений: 200
Популярность: 1972
Сказал(а) спасибо: 95
Поблагодарили 271 раз(а) в 105 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

мне нужно вызвать окно шмота персонважа в таргете, еще хотелось бы узнать, возможно ли получить названия того, что на нем надето
  Ответить с цитированием
Старый 05.04.2012, 08:52   #155
 Разведчик
Аватар для TBXin
 
TBXin излучает ауруTBXin излучает ауруTBXin излучает ауруTBXin излучает ауруTBXin излучает ауруTBXin излучает ауру
Регистрация: 16.06.2009
Сообщений: 5
Популярность: 627
Сказал(а) спасибо: 0
Поблагодарили 4 раз(а) в 4 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Используйте packet listener. Запускаете, делаете пкм - показать игрока и смотрите какой пакет поймали. Там более чем тривиально все. Потом будете подменять ID игрока на нужного и получать окошко, но таймаут вам не обойти.

По поводу названий предметов, которые надеты на цели, вам придется найти структуру, схожую с вашим эквипом и распарсить её.
________________
Официальный твинк TBX1n'a.
  Ответить с цитированием
Пользователь сказал cпасибо:
.AsTex. (05.04.2012)
Старый 05.04.2012, 09:02   #156
 Старший сержант
Аватар для .AsTex.
 
.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания
Регистрация: 17.04.2010
Сообщений: 200
Популярность: 1972
Сказал(а) спасибо: 95
Поблагодарили 271 раз(а) в 105 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

саму структуру не подскажете, как получить?
  Ответить с цитированием
Старый 05.04.2012, 09:16   #157
 Разведчик
Аватар для TBXin
 
TBXin излучает ауруTBXin излучает ауруTBXin излучает ауруTBXin излучает ауруTBXin излучает ауруTBXin излучает ауру
Регистрация: 16.06.2009
Сообщений: 5
Популярность: 627
Сказал(а) спасибо: 0
Поблагодарили 4 раз(а) в 4 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Если её еще никто не нашел и не выложил, то возможный алгоритм поиска таков:
1. Открываем информацию о персонаже Х
2. Видим в слоте "Броня" находится предмет с ID N.
3. Ищем все значения в памяти клиента соответствующие этому ID
4. Открываем другое окна с информацией о персонаже
5. Отсеиваем значения, которые уже равны ID брони второго игрока
6. Делаем так пока не найдем точный адрес
7. Ставим "бряк" на этом адресе (what writes on this address) или как-то так...
8. Снова открываем игрока и в окошке дебагера видим адреса, по которым производится запись в нашу ячейку памяти.
9. Пытаемся найти нужные оффсеты. (есть гайды, например поиск базового адреса)

В целом как-то так.
________________
Официальный твинк TBX1n'a.
  Ответить с цитированием
Пользователь сказал cпасибо:
.AsTex. (05.04.2012)
Старый 05.04.2012, 21:15   #158
 Старший сержант
Аватар для .AsTex.
 
.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания
Регистрация: 17.04.2010
Сообщений: 200
Популярность: 1972
Сказал(а) спасибо: 95
Поблагодарили 271 раз(а) в 105 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

TBXin, что-то не получается...
  Ответить с цитированием
Старый 19.04.2012, 15:53   #159
-= Мастер Света =-
 Рыцарь-лейтенант
Аватар для Smertig
 
Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
Отправить сообщение для Smertig с помощью ICQ Отправить сообщение для Smertig с помощью Skype™
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Подскажите пакет на крафт, в котором на рецепт перетаскивать нужно части. Например, нирвана.
Крафтил много раз, пакеты отличаются только двумя байтами, в котором указана ячейка, откуда берется пуха и восприятия соответственно. При отправке пакета - клиент вылетает со светофором.
Помогите, пожалуйста
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
  Ответить с цитированием
Старый 19.04.2012, 16:33   #160
-= Мастер Света =-
 Пехотинец
Аватар для rufat2005
 
rufat2005 излучает ауруrufat2005 излучает ауруrufat2005 излучает ауруrufat2005 излучает ауруrufat2005 излучает ауруrufat2005 излучает ауру
Регистрация: 19.02.2010
Сообщений: 98
Популярность: 650
Сказал(а) спасибо: 23
Поблагодарили 150 раз(а) в 45 сообщениях
Отправить сообщение для rufat2005 с помощью ICQ Отправить сообщение для rufat2005 с помощью Skype™
 
По умолчанию Re: [Руоф] Код для инжекта в память.

когда посмотрел на пакеты крафта трактов то получил очь длинный пакет... который не мог отправить...
как ети пакеты можно отправлять?
заранее спасибо
________________
PWA for PWPVP
Автор программы PwRuf - Bot и PwRuf - Crafter
  Ответить с цитированием
Старый 19.04.2012, 22:41   #161
 Пехотинец
Аватар для ktulx
 
ktulx на правильном пути
Регистрация: 01.08.2011
Сообщений: 70
Популярность: 24
Сказал(а) спасибо: 45
Поблагодарили 7 раз(а) в 7 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Не мог бы кто-нибудь кратко объяснить (можно просто пару ссылок) мне разницу между "использованием пакетов" и инжектом кода, скажем, для реализации функции прыжка? Я нуб, читаю, пытаюсь понять, но пока именно этот момент взрывает мне мозг.

спасибо.
  Ответить с цитированием
Старый 19.04.2012, 22:54   #162
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

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

Короче, пакет - это тоже инжект, поэтому в плане кода и его внедрения в процесс игры здесь разницы нет.
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3

Последний раз редактировалось BritishColonist; 19.04.2012 в 22:58.
  Ответить с цитированием
Пользователь сказал cпасибо:
ktulx (20.04.2012)
Старый 26.04.2012, 02:06   #163
 Сержант
Аватар для gurin
 
gurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компании
Регистрация: 18.12.2009
Сообщений: 152
Популярность: 1075
Сказал(а) спасибо: 45
Поблагодарили 204 раз(а) в 67 сообщениях
Отправить сообщение для gurin с помощью Skype™
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Поменялся пакет на покупку 0_О. теперь он такой:

Код:
procedure Buy(ItemId, ItemCount, shopIndex: dword);
begin
  Packet('25 00 01 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ' +
    dwValueToString(ItemId)+' '+
    dwValueToString(shopIndex)+' '+
    dwValueToString(ItemCount));
end;
  Ответить с цитированием
Старый 15.05.2012, 21:50   #164
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

================================================== ===========================
Функция Закрытия окна на Delphi для клиента ver 1.4.5 build 2305
================================================== ===========================
Функция для внедрения:
Код:
procedure WinCloseCall(aPParams: PParams); stdcall;
var
WIN_OFFSET: DWord;
PW_Call: Pointer;
const
PW_BASE_ADDR=$00A571E0;
PW_BTN_CLOSE=$00950C18;    //IDCANCEL

begin
WIN_OFFSET := aPParams^.Param1;
PW_Call := Pointer($004F0150);
asm
pushad

mov eax, PW_BASE_ADDR
mov eax, dword ptr [eax]
mov eax, dword ptr [eax+$1C]
mov eax, dword ptr [eax+$18]
mov eax, dword ptr [eax+$8]

mov ebx, WIN_OFFSET
mov eax, dword ptr [eax+ebx]
push eax

push PW_BTN_CLOSE

call PW_Call

popad
end;
end;
Внедряющая функция:
Код:
procedure WinClose(WIN_OFFSET:DWord);
var aParams:TParams;
begin
aParams.Param1:=WIN_OFFSET; //Ñìåùåíèå îêíà èç ñïèñêà
InjectFunc(Form1.hProcess,@WinCloseCall,@aParams,SizeOf(aParams));
end;
Вызов:
Код:
procedure TForm1.Button3Click(Sender: TObject);
begin
 WinClose($41C); //Закрыть окно Торговли и Ремоната.
end;
Список смещений для передачи в функцию:
Код:
0x2C8 Действия
0x2D0 Игроки и группы
0x2D4 Служба поддержки
0x324 Характеристики персонажа
0x33C Ремонт
0x37C Призыв духа
0x3F8 Помощь
0x41C Инвентарь и Окно Торговли и Ремонта
0x438 Диалог с NPC
0x448 Домашние животные
0x468 Окно алхимика
0x478 Панель 1-9
0x480 Горячие клавиши
0x4C0 Настройки
0x4D4 Умения
0x51C Системная панель
0x52C Задания
Исходники на Delphi можно скачать тут [Ссылки могут видеть только зарегистрированные пользователи. ]
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Meg(0) (15.06.2012), pw.lancer (15.05.2012)
Старый 23.05.2012, 01:51   #165
 Пехотинец
Аватар для Meg(0)
 
Meg(0) никому не известный тип
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

чем gamerun адрес отличается от базового? и как его найти?
и что за call адрес,его как найти?

Последний раз редактировалось Meg(0); 23.05.2012 в 02:15.
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Информация] Читерим в CrossFire или методы инжекта Hummel Cross Fire 6 10.11.2010 20:36
[Программа] Память о базе Chipito Базы серверов и брут 2 30.08.2010 17:23
Оперативная память для ПВ. NikelR Общение и обсуждение Perfect World 4 25.05.2010 22:30

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

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

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