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

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

-

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

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

Ответ
 
Опции темы
Старый 15.01.2013, 16:01   #241
 Разведчик
Аватар для [Kira]
 
[Kira] неизвестен в этих краях[Kira] неизвестен в этих краях[Kira] неизвестен в этих краях[Kira] неизвестен в этих краях
Регистрация: 18.01.2012
Сообщений: 3
Популярность: -394
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для [Kira] с помощью Skype™
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Никто не подскажет как найти адрес в инжекте SellCall? Или придется пакетами продавать?
________________
Верните репу
  Ответить с цитированием
Старый 15.01.2013, 16:49   #242
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от [Kira]Посмотреть сообщение
Никто не подскажет как найти адрес в инжекте SellCall? Или придется пакетами продавать?

Конечно пакетами. Зачем усложнять себе жизнь?
________________
--------------------------------------------
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
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 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
 Разведчик
Аватар для wajskopf
 
wajskopf никому не известный тип
Регистрация: 15.08.2011
Сообщений: 25
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
 
Question 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
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от wajskopfПосмотреть сообщение
Нашел несложный код для отправки пакетов на С++

Вот исходники бота на плюсах. Может оттуда возьмешь? http://zhyk.ru/forum/showthread.php?t=500919
________________
--------------------------------------------
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
 Разведчик
Аватар для wajskopf
 
wajskopf никому не известный тип
Регистрация: 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
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от wajskopfПосмотреть сообщение
Еще вопрос, подскажете пакеты на диалог с нпс? точнее диалог я открываю, а далее мне надо выбрать пункт диалога...

Отлавливайте Пакет Листенером. Каждый квест - отдельный пакет.
________________
--------------------------------------------
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
 Разведчик
Аватар для wajskopf
 
wajskopf никому не известный тип
Регистрация: 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
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от wajskopfПосмотреть сообщение
Подскажите функцию для преобразования WID из DWORD в строку вида:

Здесь обсуждают функции для инжекта, а не методы пребразования. Для этого есть соответсвующая тема или соответствующие форумы.
________________
--------------------------------------------
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
 Разведчик
Аватар для wajskopf
 
wajskopf никому не известный тип
Регистрация: 15.08.2011
Сообщений: 25
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Ясно, собственно проблема решена)
  Ответить с цитированием
Старый 14.03.2013, 16:46   #252
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 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
-= Мастер Света =-
 Пехотинец
Аватар для rufat2005
 
rufat2005 излучает ауруrufat2005 излучает ауруrufat2005 излучает ауруrufat2005 излучает ауруrufat2005 излучает ауруrufat2005 излучает ауру
Регистрация: 19.02.2010
Сообщений: 98
Популярность: 650
Сказал(а) спасибо: 23
Поблагодарили 150 раз(а) в 45 сообщениях
Отправить сообщение для rufat2005 с помощью ICQ Отправить сообщение для rufat2005 с помощью Skype™
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от tiandduПосмотреть сообщение
Код:
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
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

rufat2005
я считывал координату Z в Y , а Y в Z и инжектил так...лол)
  Ответить с цитированием
Старый 28.03.2013, 09:20   #255
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

а есть у кого рабочий инжект для джампа и закрытия диалоговово окна?
с диалоговым окном разобрался спасибо krukovis, вопрос про адрес инжекта прыжка еще в силе(

Последний раз редактировалось tianddu; 30.03.2013 в 11:19.
  Ответить с цитированием
Ответ


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

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, время: 12:42.

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