|
[Руоф] Код для инжекта в память. - Разработка ПО для Perfect World - Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World |
15.01.2013, 16:01
|
#241
|
|
|
|
Разведчик
|
Регистрация: 18.01.2012
Сообщений: 3
Популярность: -394
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: [Руоф] Код для инжекта в память.
Никто не подскажет как найти адрес в инжекте SellCall? Или придется пакетами продавать?
________________
Верните репу
|
|
|
15.01.2013, 16:49
|
#242
|
|
|
|
Рыцарь-капитан
|
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
|
Re: [Руоф] Код для инжекта в память.
________________
--------------------------------------------
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 работающий с включенной игрой.
--------------------------------------------
|
|
|
26.01.2013, 16:29
|
#243
|
|
|
|
Пехотинец
|
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
|
Re: [Руоф] Код для инжекта в память.
а есть у кого инжект для приватных сообщений?
|
|
|
14.02.2013, 21:48
|
#244
|
|
|
|
Разведчик
|
Регистрация: 05.10.2012
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: [Руоф] Код для инжекта в память.
Доброго всем дня.
Подскажите пожалуйста код инжекта на взлет/посадку. В OD нашел единственный вызов функции:
Код:
0045BB69 50 PUSH EAX
0045BB6A E8 E1800000 CALL elementc.00463C50
не пойму что за параметр передается.
Заранее признателен.
ПС: в регистре адрес какой-то структуры в стеке, которая загружена задолго до вызова; что за структура - хз(
Последний раз редактировалось читтерр; 14.02.2013 в 21:51.
|
|
|
18.02.2013, 13:07
|
#245
|
|
|
|
Разведчик
|
Регистрация: 15.08.2011
Сообщений: 25
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: [Руоф] Код для инжекта в память.
Нашел несложный код для отправки пакетов на С++, но неработает... Может подскажете как допилить?
Соответственно менял значения 0x60e310 и 0xa5b90c на соответствующие (PackCall = 0x0069F9C0, BA = 0x00b8fbcc)... Клиент не крашит, но прога выдает ошибку.
Код:
char buffer[32];
DWORD sendFunction = 0x60e310;
DWORD *base0 = (DWORD *)0xa5b90c;
void SendPacket(char * pkt, int len)
{
DWORD ptr2 = *(DWORD *)(*(DWORD *)0xa5b90c + 0x20);
__asm{
push len
push pkt
mov ecx,ptr2
call sendFunction
}
}
void AttackTarget()
{
const int len = 3;
buffer[0] = 3;
buffer[1] = 0;
buffer[2] = 0;
SendPacket(buffer, len);
}
void DropGold(int amount)
{
int am = amount;
const int len = 6;
buffer[0] = 0x14;
buffer[1] = 0x00;
memcpy(buffer + 2,&am,4);
SendPacket(buffer,len);
}
|
|
|
18.02.2013, 15:53
|
#246
|
|
|
|
Рыцарь-капитан
|
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
|
Re: [Руоф] Код для инжекта в память.
________________
--------------------------------------------
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 работающий с включенной игрой.
--------------------------------------------
|
|
|
18.02.2013, 20:13
|
#247
|
|
|
|
Разведчик
|
Регистрация: 15.08.2011
Сообщений: 25
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: [Руоф] Код для инжекта в память.
изучаю того бота. Ставит в тупик строчка
char fdata[29]="\x60\x8B\x0D\x00\x00\x00\x00\x8B\x49\x20\x68\x11 \x11\x11\x11\x68\x22\x22\x22\x22\xB8\x33\x33\x33\x 33\xFF\xD0\x61\xC3";
MSVC какбы говорит что должно быть char fdata[30]
Попробовал адаптировать код из того бота:
Код:
// Инъекция и отправка пакета
// Структура пакета
struct PACKET
{
int len;
BYTE Bytes[60];
};
BYTE SendPacket(PACKET* pack)
{
HANDLE hProcThread;
char fdata[30]="\x60\x8B\x0D\x00\x00\x00\x00\x8B\x49\x20\x68\x11\x11\x11\x11\x68\x22\x22\x22\x22\xB8\x33\x33\x33\x33\xFF\xD0\x61\xC3";
int lenfunc=30;
DWORD func=PackCall;
DWORD ba=BA;
DWORD len=pack->len;
//HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,false,pid);
if (!hProcess){ MessageBoxW(0,L"Not hProcess",0,0); return 0;}
WriteProcessMemory(hProcess,pParam,pack->Bytes,len,NULL);
DWORD addr=DWORD(pParam);
memcpy(fdata+3,&ba,4);
memcpy(fdata+11,&len,4);
memcpy(fdata+16,&addr,4);
memcpy(fdata+21,&func,4);
WriteProcessMemory(hProcess,pFunction,fdata,lenfunc,NULL);
hProcThread = CreateRemoteThread(hProcess,NULL,NULL,(LPTHREAD_START_ROUTINE)pFunction,NULL,NULL,NULL);
if(hProcThread==INVALID_HANDLE_VALUE) // не удалось создать поток
{
//CloseHandle(hProcess);
MessageBoxW(0,L"Not Well",0,0);
return 0;
}
WaitForSingleObject(hProcThread, INFINITE); // ожидаем завершения работы потока
CloseHandle(hProcThread); // освобождаем память
//CloseHandle(hProcess);
MessageBoxW(0,L"Well",0,0);
return 1; // успешная инъекция и выполнение кода
}
//______________________________________________________________________________
// Убрать таргет
void TargetOff()
{
PACKET pack;
pack.len=2;
pack.Bytes[0]='\x08';
pack.Bytes[1]='\x00';
SendPacket(&pack);
}
клиент крашит...
Вроде бы работает...
забыл перед отправкой пакета вот это сделать:
Код:
DWORD* pfunc = (DWORD*)VirtualAllocEx(hProcess,NULL,1024,MEM_COMMIT,PAGE_READWRITE);
pFunction = pfunc;
pParam = pfunc+64;
Добавлено через 12 часов 59 минут
Еще вопрос, подскажете пакеты на диалог с нпс? точнее диалог я открываю, а далее мне надо выбрать пункт диалога...
Последний раз редактировалось wajskopf; 19.02.2013 в 09:12.
Причина: Добавлено сообщение
|
|
|
19.02.2013, 09:41
|
#248
|
|
|
|
Рыцарь-капитан
|
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
|
Re: [Руоф] Код для инжекта в память.
________________
--------------------------------------------
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 работающий с включенной игрой.
--------------------------------------------
|
|
|
20.02.2013, 12:20
|
#249
|
|
|
|
Разведчик
|
Регистрация: 15.08.2011
Сообщений: 25
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: [Руоф] Код для инжекта в память.
За советы спасибо. Во многом продвинулся. Но опять застрял... Для работы с аукционом, например, требуется WID персонажа причем в hex
Подскажите функцию для преобразования WID из DWORD в строку вида:
char playerId [5] = "\x00\x1c\x2с\x3с";
либо
char playerId[4] = {'\x00', '\x1c', '\x2с', '\x3с'};
Заранее спасибо.
|
|
|
20.02.2013, 12:56
|
#250
|
|
|
|
Рыцарь-капитан
|
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
|
Re: [Руоф] Код для инжекта в память.
________________
--------------------------------------------
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 работающий с включенной игрой.
--------------------------------------------
|
|
|
21.02.2013, 06:29
|
#251
|
|
|
|
Разведчик
|
Регистрация: 15.08.2011
Сообщений: 25
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: [Руоф] Код для инжекта в память.
Ясно, собственно проблема решена)
|
|
|
14.03.2013, 16:46
|
#252
|
|
|
|
Пехотинец
|
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
|
Re: [Руоф] Код для инжекта в память.
Код:
procedure WalkCall(aPParams:PParams);Stdcall;
var CallAddress1,CallAddress2,CallAddress3:Pointer;
x,y,z:single;
flying:DWORD;
begin
CallAddress1:=Pointer($00479A40);
CallAddress2:=Pointer($0047DD40);
CallAddress3:=Pointer($00479EB0);
x:=aPParams^.Param4;
y:=aPParams^.Param5;
z:=aPParams^.Param6;
flying:=aPParams^.Param1;
asm
pushad
mov eax, dword ptr [PW_GAMERUN_ADDR]
mov esi, dword ptr [eax+$34]
mov ecx, dword ptr [esi+$1128]
push 1
call CallAddress1
mov edi, eax
lea eax, dword ptr [esp+$0C] что теперь тут стало? и вообще что это? в генезисе было 18
push eax
push flying
mov ecx, edi
call CallAddress2
mov ecx, dword ptr [esi+$1128]
push 0
push 1
push edi
push 1
call CallAddress3
mov eax, dword ptr [PW_GAMERUN_ADDR]
mov eax, dword ptr [eax+$34]
mov eax, dword ptr [eax+$1128]
mov eax, dword ptr [eax+$30]
mov ecx, dword ptr [eax+$4]
mov eax, x
mov dword ptr[ecx+$20], eax
mov eax, z
mov dword ptr[ecx+$24], eax
mov eax, y
mov dword ptr[ecx+$28], eax
popad
end;
end;
procedure Walk(x,y,z:single);
var aParams: TParams;
begin
ReadProcessMemory(aHandle,ptr(BaseWalkMode),@WalkMode,1,readwrite); //BaseWalkMode = GA +34 +684 правильно понял?
if WalkMode = 0 then aParams.Param1:=0 else aParams.Param1:=1;
aParams.Param3:=x;
aParams.Param4:=y;
aParams.Param5:=z;
InjectFunc(aHandle,@WalkCall,@aParams,SizeOf(aParams));
end;
помогите)
считываю координаты по смещениям 3С 40 44 в переменные single, отлетаю в сторону, инжектю координаты и чар просто взлетает вертикально вверх и все, что делаю не так?
Последний раз редактировалось tianddu; 14.03.2013 в 21:14.
|
|
|
15.03.2013, 05:52
|
#253
|
|
|
|
Пехотинец
|
Регистрация: 19.02.2010
Сообщений: 98
Популярность: 650
Сказал(а) спасибо: 23
Поблагодарили 150 раз(а) в 45 сообщениях
|
Re: [Руоф] Код для инжекта в память.
|
Цитата: |
|
|
|
|
|
|
|
|
|
Код:
procedure WalkCall(aPParams:PParams);Stdcall;
var CallAddress1,CallAddress2,CallAddress3:Pointer;
x,y,z:single;
flying:DWORD;
begin
CallAddress1:=Pointer($00479A40);
CallAddress2:=Pointer($0047DD40);
CallAddress3:=Pointer($00479EB0);
x:=aPParams^.Param4;
y:=aPParams^.Param5;
z:=aPParams^.Param6;
flying:=aPParams^.Param1;
asm
pushad
mov eax, dword ptr [PW_GAMERUN_ADDR]
mov esi, dword ptr [eax+$34]
mov ecx, dword ptr [esi+$1128]
push 1
call CallAddress1
mov edi, eax
lea eax, dword ptr [esp+$0C] что теперь тут стало? и вообще что это? в генезисе было 18
push eax
push flying
mov ecx, edi
call CallAddress2
mov ecx, dword ptr [esi+$1128]
push 0
push 1
push edi
push 1
call CallAddress3
mov eax, dword ptr [PW_GAMERUN_ADDR]
mov eax, dword ptr [eax+$34]
mov eax, dword ptr [eax+$1128]
mov eax, dword ptr [eax+$30]
mov ecx, dword ptr [eax+$4]
mov eax, x
mov dword ptr[ecx+$20], eax
mov eax, z
mov dword ptr[ecx+$24], eax
mov eax, y
mov dword ptr[ecx+$28], eax
popad
end;
end;
procedure Walk(x,y,z:single);
var aParams: TParams;
begin
ReadProcessMemory(aHandle,ptr(BaseWalkMode),@WalkMode,1,readwrite); //BaseWalkMode = GA +34 +684 правильно понял?
if WalkMode = 0 then aParams.Param1:=0 else aParams.Param1:=1;
aParams.Param3:=x;
aParams.Param4:=y;
aParams.Param5:=z;
InjectFunc(aHandle,@WalkCall,@aParams,SizeOf(aParams));
end;
помогите)
считываю координаты по смещениям 3С 40 44 в переменные single, отлетаю в сторону, инжектю координаты и чар просто взлетает вертикально вверх и все, что делаю не так?
|
|
|
|
|
|
я как та так делаю))
Код:
unit walk_function;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
procedure Walk(x, y, z: single; WalkMode: dword);
type
PParams = ^TParams;
TParams = packed record
Param1: DWord;
Param2,Param3,Param4: Single;
PW_GAMERUN_ADDR,Walk1,Walk2,Walk3,Walk_Ofs1:Pointer;
end;
implementation
uses BA_Finder, chatlog, Config, FiltrOfEffects, func, main, md5, Minimization,
NewItem, Registration, setup, Update;
const
PW_BASE_ADDRESS_ = $00B4EF34;
PW_GAMERUN_ADDR_ = $00B4F5FC;
var
rw: cardinal;
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 WalkCall(aPParams:PParams);Stdcall;
var CallAddress1,CallAddress2,CallAddress3:Pointer;
x,y,z:single;
flying:DWORD;
_PW_GAMERUN_ADDR,_Walk1,_Walk2,_Walk3,_Walk_Ofs1:Pointer;
begin
try
CallAddress1:=aPParams^.Walk1;
CallAddress2:=aPParams^.Walk2;
CallAddress3:=aPParams^.Walk3;
x:=aPParams^.Param2;
y:=aPParams^.Param3;
z:=aPParams^.Param4;
flying:=aPParams^.Param1;
_PW_GAMERUN_ADDR:=aPParams^.PW_GAMERUN_ADDR;
_Walk1:=aPParams^.Walk1;
_Walk2:=aPParams^.Walk2;
_Walk3:=aPParams^.Walk3;
_Walk_Ofs1:=aPParams^.Walk_Ofs1;
asm
pushad
mov eax, dword ptr _PW_GAMERUN_ADDR
mov eax, dword ptr [eax]
mov esi, dword ptr [eax+$34]
mov ecx, dword ptr _Walk_Ofs1
mov ecx, dword ptr [esi+ecx]
push 1
call CallAddress1
mov edi, eax
lea eax, dword ptr [esp+$18]
push eax
push flying
mov ecx, edi
call CallAddress2
mov ecx, dword ptr _Walk_Ofs1
mov ecx, dword ptr [esi+ecx]
push 0
push 1
push edi
push 1
call CallAddress3
mov eax, dword ptr _PW_GAMERUN_ADDR
mov eax, dword ptr [eax]
mov eax, dword ptr [eax+$34]
mov esi, dword ptr _Walk_Ofs1
mov eax, dword ptr [eax+esi]
mov eax, dword ptr [eax+$30]
mov ecx, dword ptr [eax+$4]
mov eax, x
mov dword ptr[ecx+$20], eax
mov eax, z
mov dword ptr[ecx+$24], eax
mov eax, y
mov dword ptr[ecx+$28], eax
popad
end;
Except
showmessage ('ошибка WalkCall');
end;
end;
{function BaseWalkMode: dword;
var
addr: dword;
begin
try
readprocessmemory(hProcess, ptr(PW_GAMERUN_ADDR), @addr, sizeof(addr), rw);
readprocessmemory(hProcess, ptr(addr + $20), @addr, sizeof(addr), rw);
readprocessmemory(hProcess, ptr(addr + $61C), @addr, sizeof(addr), rw);
result := addr;
Except
showmessage ('ошибка тут 4');
end;
end; }
procedure Walk(x, y, z: single; WalkMode: dword);
var aParams: TParams;
begin
try
// showmessage(floatToStr(x)+' '+floatToStr(round(x/10+400))+' '+floatToStr(y)+' '+floatToStr(z)+' '+ IntToStr(WalkMode));
// ReadProcessMemory(hProcess, ptr(BaseWalkMode), @WalkMode, 1, rw); //BaseWalkMode = GA +20 +61C
if WalkMode = 0 then aParams.Param1:=0 else aParams.Param1:=1;
if WalkMode = 1 then aParams.Param1:=1;
if WalkMode = 2 then aParams.Param1:=1;
aParams.Param2:=x;
aParams.Param3:=Y;
aParams.Param4:=Z;
aParams.PW_GAMERUN_ADDR:=Pointer(OffSets_GAME_ADD);
aParams.Walk1:=Pointer(OffSets_walk1);
aParams.walk2:=Pointer(OffSets_walk2);
aParams.walk3:=Pointer(OffSets_walk3);
aParams.Walk_Ofs1:=Pointer(OffSets_Walk_Ofs1);
InjectFunc(hProcess,@WalkCall,@aParams,SizeOf(aParams));
Except
showmessage ('ошибка тут Walk');
end;
end;
end.
Код:
unit setup;
interface
uses windows, iniFiles, SysUtils, Forms, Dialogs, StdCtrls;
procedure rwSetup;
var
OffSets_BASE_ADD,
BASE_ADD,
OffSets_SendPacket,
OffSets_GAME_ADD,
OffSets_Player_ADD,
OffSets_Player_Name_ADD,
OffSets_Inventory_Array,
OffSets_Yacheyka,
OffSets_Item_Id,
OffSets_Item_Count,
OffSets_Max_Count_Yacheyek,
OffSets_ExtraEffectsPtr,
OffSets_ExtraEffectsId1,
OffSets_ExtraEffectsId2,
OffSets_ExtraEffectsId3,
OffSets_ExtraEffectsValue1,
OffSets_ExtraEffectsValue2,
OffSets_ExtraEffectsValue3,
OffSets_Uchastvuelvotpravkepaketa,
OffSets_MoneyCount,
OffSets_TargetWid,
OffSets_ChatStart,
OffSets_ChatNumber,
OffSets_ExtraEffectsCount,
OffSets_walk1,
OffSets_walk2,
OffSets_walk3,
OffSets_LocX,
OffSets_LocZ,
OffSets_LocY,
OffSets_Walk_Ofs1,
OffSets_WalkMode
: dword;
WID: THandle;
hProcess: dword;
Found_WID: array [0..10] of THandle;
ElementClassName,ElementClassName2: string;
implementation
uses main, func, NewItem;
procedure rwSetup;
var
ini: TIniFile;
Path:String;
offset:string;
begin
Path:=Application.ExeName;
Path:=ExtractFileDir(Path);
if Path[Length(Path)]<>'\' then Path:=Path+'\';
ini:=TIniFile.Create(Path+'setup.ini');
if ini.ReadString('config', 'Client_Version', '0')='Genesis' then offset:='Offsets_in_Genesis';
if ini.ReadString('config', 'Client_Version', '0')='Descent' then offset:='Offsets_in_Descent';
if ini.ReadString('config', 'Client_Version', '0')='Insidious' then offset:='Offsets_in_Insidious';
if ini.ReadString('config', 'Client_Version', '0')='Free_Servers' then offset:='Offsets_in_Free_Servers';
if ini.ReadString('config', 'Client_Version', '0')='RUOFF_Гнев_Империи' then offset:='Offsets_in_RUOFF_Гнев_Империи';
if ini.ReadString('config', 'Client_Version', '0')='RUOFF_Возрождение_династий' then offset:='Offsets_in_RUOFF_Возрождение_династий';
try
OffSets_BASE_ADD:= strtoint('$'+ini.ReadString(offset, 'BASE_ADD', 'B27A04'));
BASE_ADD:= strtoint('$'+ini.ReadString(offset, 'BASE_ADD', 'B27A04'));
OffSets_GAME_ADD:= strtoint('$'+ini.ReadString(offset, 'GAME_ADD', 'B280C4'));
OffSets_Player_ADD:= strtoint('$'+ini.ReadString(offset, 'Player_ADD', '34'));
OffSets_Player_Name_ADD:= strtoint('$'+ini.ReadString(offset, 'Player_Name_ADD', '638'));
OffSets_Inventory_Array:= strtoint('$'+ini.ReadString(offset, 'Inventory_Array', 'CAC'));
OffSets_Yacheyka:= strtoint('$'+ini.ReadString(offset, 'Yacheyka', 'C'));
OffSets_Item_Id:= strtoint('$'+ini.ReadString(offset, 'Item_Id', '8'));
OffSets_Item_Count:= strtoint('$'+ini.ReadString(offset, 'Item_Count', '10'));
OffSets_Max_Count_Yacheyek:= strtoint('$'+ini.ReadString(offset, 'Max_Count_Yacheyek', '10'));
OffSets_MoneyCount:= strtoint('$'+ini.ReadString(offset, 'MoneyCount', '554'));
OffSets_ExtraEffectsPtr:= strtoint('$'+ini.ReadString(offset, 'ExtraEffectsPtr', 'A4'));
OffSets_ExtraEffectsId1:= strtoint('$'+ini.ReadString(offset, 'ExtraEffectsId1', '00'));
OffSets_ExtraEffectsId2:= strtoint('$'+ini.ReadString(offset, 'ExtraEffectsId2', '1C'));
OffSets_ExtraEffectsId3:= strtoint('$'+ini.ReadString(offset, 'ExtraEffectsId3', '38'));
OffSets_ExtraEffectsValue1:= strtoint('$'+ini.ReadString(offset, 'ExtraEffectsValue1', '0C'));
OffSets_ExtraEffectsValue2:= strtoint('$'+ini.ReadString(offset, 'ExtraEffectsValue2', '28'));
OffSets_ExtraEffectsValue3:= strtoint('$'+ini.ReadString(offset, 'ExtraEffectsValue3', '44'));
OffSets_Uchastvuelvotpravkepaketa:= strtoint('$'+ini.ReadString(offset, 'Используется при отправке пакета BA+$20 в версии 1.4.4', '20'));
OffSets_SendPacket:= strtoint('$'+ini.ReadString(offset, 'SendPacket', '6737B0'));
OffSets_TargetWid:= strtoint('$'+ini.ReadString(offset, 'TargetWid', 'BD4'));
OffSets_ChatStart:= strtoint('$'+ini.ReadString(offset, 'ChatStart', 'BD4'));
OffSets_ChatNumber:= strtoint('$'+ini.ReadString(offset, 'ChatNumber', 'BD4'));
OffSets_ExtraEffectsCount:= strtoint('$'+ini.ReadString(offset, 'ExtraEffectsCount', 'A8'));
ElementClassName:= ini.ReadString('Element', 'ElementClassName', '');
ElementClassName2:= ini.ReadString('Element', 'ElementClassName2', '');
// ini.WriteBool('Offset', 'Key_Name3', True);
// ini.WriteInteger('Offset', 'BASE_ADD', 2002);
OffSets_walk1:= strtoint('$'+ini.ReadString(offset, 'walk1', '0'));
OffSets_walk2:= strtoint('$'+ini.ReadString(offset, 'walk2', '0'));
OffSets_walk3:= strtoint('$'+ini.ReadString(offset, 'walk3', '0'));
OffSets_LocX:= strtoint('$'+ini.ReadString(offset, 'LocX', '0'));
OffSets_LocZ:= strtoint('$'+ini.ReadString(offset, 'LocZ', '0'));
OffSets_LocY:= strtoint('$'+ini.ReadString(offset, 'LocY', '0'));
OffSets_Walk_Ofs1:= strtoint('$'+ini.ReadString(offset, 'Walk_Ofs1', '0'));
OffSets_WalkMode:= strtoint('$'+ini.ReadString(offset, 'WalkMode', '0'));
finally
ini.Free;
end;
end;
end.
________________
PWA for PWPVP
Автор программы PwRuf - Bot и PwRuf - Crafter
|
|
|
15.03.2013, 12:59
|
#254
|
|
|
|
Пехотинец
|
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
|
Re: [Руоф] Код для инжекта в память.
rufat2005
я считывал координату Z в Y , а Y в Z и инжектил так...лол)
|
|
|
28.03.2013, 09:20
|
#255
|
|
|
|
Пехотинец
|
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
|
Re: [Руоф] Код для инжекта в память.
а есть у кого рабочий инжект для джампа и закрытия диалоговово окна?
с диалоговым окном разобрался спасибо krukovis, вопрос про адрес инжекта прыжка еще в силе(
Последний раз редактировалось tianddu; 30.03.2013 в 11:19.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 12:42.
|
|