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

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

-

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

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

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

Цитата:
Сообщение от Meg(0)Посмотреть сообщение
перевожу в шестнадцатиричный,получается 115D

Зачем?

1)Берём ID nps из базы(оно там в десятичном виде) к примеру 4445
2) прямо так и подставляем 4445 без знака $
либо если это нужно(зачем не понятно) переводим в шестнадцатиричный вид - $115D и подставляем шестнадцатиричное значение, естественно со значком $, иначе ругаться будет на символы (A..F) без указания того, что это шеснадцатиричное значение.
Ид взят правильно, но проблема видимо теперь не в этом.. А расстояние до НПС соблюдаете? Нужно стоять рядом именно с этим НПС который в базе(не с другими).

Добавлено через 11 минут
Цитата:
Сообщение от Meg(0)Посмотреть сообщение
но тоже ничего не происходит

Не вылетов, ни зависов, ничего совсем?

Прошу прощения, нужно не ид а вид прописывать(( каюсь, запутал, сильно не бить. Просто нужно брать из базы ид, а потом в массиве мобов\нпс искать его ВИД, и его уже нужно в инжект.. ещё раз сорь, что сразу не проверил, смутило вот это NPCID:=aPParams^.Param1;
________________
╔═╗
ˑ ˑ ╬ ╬
╚═╝

Последний раз редактировалось dwa83; 13.06.2012 в 19:03. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 13.06.2012, 23:22   #197
 Пехотинец
Аватар для Meg(0)
 
Meg(0) никому не известный тип
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от dwa83Посмотреть сообщение
нужно не ид а вид прописывать(( каюсь, запутал, сильно не бить. Просто нужно брать из базы ид, а потом в массиве мобов\нпс искать его ВИД, и его уже нужно в инжект..

вид можно узнать с помощи консоли пв? вот к примеру это он? $801045de;и его вписать

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

Цитата:
Сообщение от Meg(0)Посмотреть сообщение
вид можно узнать с помощи консоли пв? вот к примеру это он? $801045de;и его вписать

TalkToNPC($801045de);
так? но куда тогда вставлять ид ?

Да, это WID. ID конкретно в этой функции не нужен, правильнее было сразу написать NPCWID:=aPParams.. Хотя я на 100% не уверен что WID не меняется..
________________
╔═╗
ˑ ˑ ╬ ╬
╚═╝

Последний раз редактировалось dwa83; 14.06.2012 в 00:47.
  Ответить с цитированием
Пользователь сказал cпасибо:
Meg(0) (14.06.2012)
Старый 14.06.2012, 02:00   #199
 Пехотинец
Аватар для Meg(0)
 
Meg(0) никому не известный тип
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

всёравно ничего не происходит(((

Код:
procedure TalkToNPCCall(aPParams:PParams);Stdcall;
var NPCID:DWORD;
    BaseAddress,CallAddress:Pointer;
begin
BaseAddress:=ptr($00A571E0);
NPCID:=aPParams^.Param1;//$801044b2;  //aPParams^.Param1;//$801045de;
CallAddress:=ptr($00630B60);
 asm
  pushad
  mov edx, dword ptr [BaseAddress]
  mov ecx, dword ptr [edx+$20]
  push NPCID
  add ecx, $EC
  call CallAddress
  popad
 end;
end;

procedure TalkToNPC(NPCID:Cardinal);
var aParams:TParams;
v:HWND;
Pid,hProcess:DWord;
begin
v:=FindWindow(nil,Pchar('Perfect World'));
if v <> 0
 then
  begin
  GetWindowThreadProcessId(v,@PId);
 hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,PId);
aParams.Param1:=NPCID;
InjectFunc(PId,@TalkToNPCCall,@aParams,1);
end;
end;



procedure TForm1.Button6Click(Sender: TObject);
begin
TalkToNPC($801045de);  //4445
end;

end.
  Ответить с цитированием
Старый 14.06.2012, 09:51   #200
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от dwa83Посмотреть сообщение
Хотя я на 100% не уверен что WID не меняется..

WID - World ID - мировой ID - или ID объекта (как вы помните GameObject разделяется по типу NPC, Mob, Pet).
WID не меняется в рамках данной локации у NPC и Mob т.к. WID назначается единожды при создании объекта, но у Pet меняется каждый раз при вызове и отзыве. Поэтому лучше всего находить WID каждый раз перед инжектом по постоянному параметру ID (или Name).


Цитата:
Сообщение от Meg(0)Посмотреть сообщение
всёравно ничего не происходит(((

На сколько я вижу - это функция не TolkToNpc, а FullTarget (на днях обновлял у себя ее), поэтому "должно происходить" лишь выделение объекта (NPC в данном случае).
Вот как вызов FullTarget выглядит для 1.4.5 на asm:
Код:
'Full Target 1.4.5 RuOff
    'Address   Hex dump          Command                                  Comments
    '0048D555  |> \A1 E071A500   MOV EAX,DWORD PTR DS:[0A571E0]           ; Base Address
    '0048D55A  |.  8B48 20       MOV ECX,DWORD PTR DS:[EAX+20]            ; Host Player Action Offset
    '0048D55D  |.  57            PUSH EDI                                 ; /Arg1, target WID
    '0048D55E  |.  81C1 EC000000 ADD ECX,0EC                              ; |
    '0048D564  |.  E8 27321A00   CALL 00630790                            ; \elementclient.00630790, call Full Target Functions
Добавлено через 7 минут
А вызываю диалог с NPC я уже давно пакетами, потому что проще. Пакет для вызова диалога с NPC:
23 00 D1 3C 10 80 - открыть диалог с NPC. (c 2 по 5 = 4 байта - WID NPC)
________________
--------------------------------------------
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 работающий с включенной игрой.
--------------------------------------------

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

Цитата:
Сообщение от krukovisПосмотреть сообщение
На сколько я вижу - это функция не TolkToNpc, а FullTarget

Возможно куски их вызова похожи(так как всё кроме адреса одинаково)? Я сейчас не могу проверить, так ли это, потому что Target делаю пакетом, но вот беру из своего рабочего бота функцию открытия диалога с NPC:
Код:
//______________________________________________________________________________
// Открытие диалога с НПС по WID
void INJECTOR::OpenDialog(DWORD wid)
{
  char fdata[30]="\x60\x8B\x15\x00\x00\x00\x00\x8B\x4A\x20\x68\x11\x11\x11\x11\x81\xC1\xEC\x00\x00\x00\xBB\x22\x22\x22\x22\xFF\xD3\x61\xC3";
  DWORD func=F_DIALOG;
  DWORD ba=BA;
  memcpy(fdata+3,&ba,4);
  memcpy(fdata+11,&wid,4);
  memcpy(fdata+22,&func,4);
  InjectFunction(&fdata,30);
}
Если загнать массив опкодов в Olly то получится вот это:

Что соответствует:
Код:
PUSHAD
MOV EDX,DWORD PTR DS:[BA]
MOV ECX,DWORD PTR DS:[EDX+20]
PUSH WID
ADD ECX,0EC
MOV EBX,00630B60
CALL EBX
POPAD
RETN
строчку MOV EBX,00630B60 я сам уже добавлял, раньше было просто CALL addr
Пожоже всё, кроме адреса
Адрес у меня такой:
Код:
#define F_DIALOG            0x630B60
Потому наверное просто похожие куски кода вызова, но странно что не работает, а у меня всё гуд..
________________
╔═╗
ˑ ˑ ╬ ╬
╚═╝

Последний раз редактировалось dwa83; 14.06.2012 в 10:46.
  Ответить с цитированием
Старый 14.06.2012, 11:11   #202
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от dwa83Посмотреть сообщение
Пожоже всё, кроме адреса

Да. Посмотрел сейчас - оказывается такая подготовка параметров у многих функций.



Цитата:
Сообщение от dwa83Посмотреть сообщение
Target делаю пакетом

Я и выделяю пакетом и диалог открываю пакетом. А функция FullTarget мне для OffsetRetriver'а нужна была.

Meg(0), а тебе что мешает на пакеты перейти?
________________
--------------------------------------------
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 работающий с включенной игрой.
--------------------------------------------
  Ответить с цитированием
Старый 14.06.2012, 15:58   #203
 Пехотинец
Аватар для Meg(0)
 
Meg(0) никому не известный тип
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от krukovisПосмотреть сообщение
Meg(0), а тебе что мешает на пакеты перейти?

я не умею ими пользоваться..не разбираюсь что как и от кудого((
я не знаю,как и что именно записывать в delphie то,что я нашёл в ollydbg к примеру с открытого диалога с нпс...

Последний раз редактировалось Meg(0); 14.06.2012 в 16:01.
  Ответить с цитированием
Старый 14.06.2012, 15:59   #204
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от Meg(0)Посмотреть сообщение
я не умею ими пользоваться..не разбираюсь что как и от кудого((

Ну а функция отправки пакета у тебя есть?
________________
--------------------------------------------
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 работающий с включенной игрой.
--------------------------------------------
  Ответить с цитированием
Старый 14.06.2012, 16:16   #205
 Пехотинец
Аватар для dwa83
 
dwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личность
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от Meg(0)Посмотреть сообщение
я не умею ими пользоваться..не разбираюсь что как и от кудого((

Тут ничего сложного. Есть хотя бы 1 функция для инжекта которая норм работает? Если так, то 90% уже готово.
Если такая функция есть, то она инжектится и получает в качестве параметра какое нибудь значение, например WID, и затем с этим параметром вызывает клиентскую функцию. Нам нужна ещё одна функция, для инжекта, которая так же будет инжектиться и вызывать КЛИЕНТСКУЮ ФУНКЦИЮ ОТПРАВКИ ПАКЕТА. А в качестве параметров она получает не какие-нибудь WID или ID, а адрес, где лежит пакет и его длину(пакет кстати перед инжектом функции тоже надо заинжектить, чтобы лежал в адресном пространстве клиента). И сама функция посылки пакета есть на форуме и новый адрес клиентской функции отправки тоже имеется. В первом посте этой же темы есть и инжектор и функция для инжекта, которая отправляет пакет, а в теме адреса и оффсеты есть актуальный адрес вызова.
________________
╔═╗
ˑ ˑ ╬ ╬
╚═╝
  Ответить с цитированием
Старый 14.06.2012, 22:00   #206
 Пехотинец
Аватар для Meg(0)
 
Meg(0) никому не известный тип
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от krukovisПосмотреть сообщение
Ну а функция отправки пакета у тебя есть?

есть функция отправки пакетов

dwa83, ничего рабочего нету..кроме WALK он вроде работает..но летит персонаж непонятно куда,а всё потому,что у меня не получается полуичть информацию о текущем место положении...когда пытаюсь это сделать постоянно показывает ошибки(

Последний раз редактировалось Meg(0); 14.06.2012 в 22:05.
  Ответить с цитированием
Старый 14.06.2012, 22:53   #207
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от Meg(0)Посмотреть сообщение
ичего рабочего нету..кроме WALK он вроде работает..

Ты же вроде на Delphi пишешь.
Вот готовый инжект на 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 работающий с включенной игрой.
--------------------------------------------
  Ответить с цитированием
Старый 15.06.2012, 01:37   #208
 Пехотинец
Аватар для Meg(0)
 
Meg(0) никому не известный тип
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

да,я смотрел,пытался....но ничего..в данном случае я не знаю,куда вписывать WID нпс ... ,
вот тут к примеру при нажатии баттона активируется процедура винклоуз, которая тянет за собой win close call и тогда закрывается диалог по офсету нажатия кнопки закрытия диалога 41С
Код:
WinClose($41C); //Закрыть окно Торговли и Ремоната.
talktoNPC($438)// поидее открытие диалога с НПС как там написанно...но с каким нпс..(
  Ответить с цитированием
Старый 15.06.2012, 01:48   #209
 Пехотинец
Аватар для dwa83
 
dwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личность
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от Meg(0)Посмотреть сообщение
но с каким нпс..(

С нпс у которого WID - $438)) Но это значение - пример, нормальные выглядят как раз вот так
alkToNPC($801045de)

Добавлено через 20 минут
Цитата:
Сообщение от Meg(0)Посмотреть сообщение
InjectFunc(PId,@TalkToNPCCall,@aParams,1);

Ёшкин-кошкин, что это у вас?
(PId,@TalkToNPCCall,@aParams,1)
Гляньте теперь в оригинал:
InjectFunc(aHandle,@TalkToNPCCall,@aParams,SizeOf(aParams));

Но ведь у нас параметр DWORD, и SizeOf(DWORD) будет 4 а не 1 байт. Не в этом ли проблема?
________________
╔═╗
ˑ ˑ ╬ ╬
╚═╝

Последний раз редактировалось dwa83; 15.06.2012 в 02:10. Причина: Добавлено сообщение
  Ответить с цитированием
Пользователь сказал cпасибо:
Meg(0) (15.06.2012)
Старый 15.06.2012, 15:57   #210
 Пехотинец
Аватар для Meg(0)
 
Meg(0) никому не известный тип
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

исправил,но всё так же ничего не происходит...ведь должен хотя б вылететь клиент если что-то не так? а у меня просто ничего не происходит


Код:
procedure InjectFunc(ProcessID: Cardinal; Func, aParams: Pointer;
  aParamsSize: DWord);
  var
  hThread: THandle;
  lpNumberOfBytes: DWord;
  ThreadAddr, ParamAddr: Pointer;
begin
  if ProcessID<>0 then
  begin
    // ---- Выделяем место в памяти процесса, и записываем туда нашу функцию
    ThreadAddr := VirtualAllocEx(ProcessID, nil, 256, MEM_COMMIT, PAGE_READWRITE);
    WriteProcessMemory(ProcessID, ThreadAddr, Func, 256, lpNumberOfBytes);

    // ---- Также запишем параметры к ней
    ParamAddr := VirtualAllocEx(ProcessID, nil, aParamsSize, MEM_COMMIT, PAGE_READWRITE);
    WriteProcessMemory(ProcessID, ParamAddr, aParams, aParamsSize, lpNumberOfBytes);

    // ---- Создаем поток, в котором все это будет выполняться.
    hThread := CreateRemoteThread(ProcessID, nil, 0, ThreadAddr, ParamAddr, 0, lpNumberOfBytes);

    // ---- Ожидаем завершения функции
    WaitForSingleObject(hThread, INFINITE);

    // ---- подчищаем за собой
    CloseHandle(hThread);
    VirtualFreeEx(ProcessID, ParamAddr, 0, MEM_RELEASE);
    VirtualFreeEx(ProcessID, ThreadAddr, 0, MEM_RELEASE);
end;
  end;

  procedure PacketCall(aPParams:PParams); stdcall;
  var
  CallAddress,pPacket:pointer;
  Len:DWord;
begin
  CallAddress:=Pointer($0063DB70);  // Старый адрес - $005D7C30
  Len:=aPParams^.Param1;
  pPacket:=@aPParams^.Packet;
  asm
    pushad
    mov ecx, dword ptr [PW_BASE_ADDRESS]
    mov ecx, dword ptr [ecx+$20]
    push Len
    push pPacket
    call CallAddress
    popad
  end;
end;

procedure TalkToNPCCall(aPParams:PParams);Stdcall;
var NPCID:DWORD;
    BaseAddress,CallAddress:Pointer;
begin

NPCID:=aPParams^.Param1;
CallAddress:=ptr($00630B60);
 asm
  pushad
  mov edx, dword ptr [PW_BASE_ADDRESS]
  mov ecx, dword ptr [edx+$20]
  push NPCID
  add ecx, $EC
  call CallAddress
  popad
 end;
end;

procedure TalkToNPC(NPCID:Cardinal);
var aParams:TParams;
v:HWND;
Pid,hProcess:DWord;
begin
v:=FindWindow(nil,Pchar('Perfect World'));
if v <> 0
 then
  begin
  GetWindowThreadProcessId(v,@PId);
 hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,PId);
aParams.Param1:=NPCID;
InjectFunc(hProcess,@TalkToNPCCall,@aParams,4);//пробовал hpocess, pid, хэндл окна...
end;
end;



procedure TForm1.Button6Click(Sender: TObject);
begin
TalkToNPC($801045de);  
end;
  Ответить с цитированием
Ответ

Опции темы

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

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:02.

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