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

все тежи инжекты на делфи..

-

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

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

Ответ
 
Опции темы
Старый 25.06.2012, 08:55   #1
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
 
По умолчанию все тежи инжекты на делфи..

при компиляции ругается на неизвестный идентификатор ProcessID в строчке
InjectFunc(ProcessID,@PacketCall,@aParams,sizeof(a Params));
Цитата:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure Edit1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

type
PParams = ^TParams;
TParams = packed record
Packet: array [0..100] of byte;
Param1,WID: DWord;
end;

const
PW_BASE_ADDRESS = $00A571E0;
PW_GAMERUN_ADDR = $00A57ACC;

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,pPacketointer;
LenWord;
begin
CallAddress:=Pointer($0063DB70);
Len:=aPParams^.Param1;
pPacket:=@aPParams^.Packet;
asm
pushad
mov ecx, dword ptr [PW_BASE_ADDRESS]
mov ecx, dword ptr [ecx+$20] // тут не 34, а 20, это не PersStruct
push Len
push pPacket
call CallAddress
popad
end;
end;

procedure StrToByte(Packet:string; var aParams:TParams);
var
i:integer;
begin
i:=(length(Packet) div 2)-1;
aParams.Param1:=i+1;
for i:=0 to i do
aParams.Packet[i]:=strtoint('$'+Packet[i*2+1]+Packet[i*2+2]);
end;


procedure TForm1.Button1Click(Sender: TObject);
var
aParams : TParams;
Packet:string;
begin
Packet:='$2500070000000C000000C85C0000000000000000 0000';
StrToByte(Packet,aParams);
InjectFunc(ProcessID,@PacketCall,@aParams,sizeof(a Params));
end;

end.

  Ответить с цитированием
Старый 25.06.2012, 11:07   #2
-= Мастер Света =-
 Пехотинец
Аватар для rufat2005
 
rufat2005 излучает ауруrufat2005 излучает ауруrufat2005 излучает ауруrufat2005 излучает ауруrufat2005 излучает ауруrufat2005 излучает ауру
Регистрация: 19.02.2010
Сообщений: 98
Популярность: 650
Сказал(а) спасибо: 23
Поблагодарили 150 раз(а) в 45 сообщениях
Отправить сообщение для rufat2005 с помощью ICQ Отправить сообщение для rufat2005 с помощью Skype™
 
По умолчанию Re: все тежи инжекты на делфи..

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure Edit1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

type
PParams = ^TParams;
TParams = packed record
Packet: array [0..100] of byte;
Param1,WID: DWord;
end;

const
PW_BASE_ADDRESS = $00A571E0;
PW_GAMERUN_ADDR = $00A57ACC;


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;
LenWord;
begin
CallAddress:=Pointer($6737B0); //адрес был устаревший
Len:=aPParams^.Param1;
pPacket:=@aPParams^.Packet;
asm
pushad
mov ecx, dword ptr [$B27A04]
mov ecx, dword ptr [ecx+$20] //20
push Len
push pPacket
call CallAddress
popad
end;
end;

procedure StrToByte(Packet:string; var aParams:TParams);
var
i:integer;
begin
i:=(length(Packet) div 2)-1;
aParams.Param1:=i+1;
for i:=0 to i do
aParams.Packet[i]:=strtoint('$'+Packet[i*2+1]+Packet[i*2+2]);
end;

procedure Packet(Packet: string);
var
aParams: TParams;
PID, hProcess: DWord;
begin
GetWindowThreadProcessId(WID, @PID);
hProcess:=OpenProcess(PROCESS_ALL_ACCESS, False, PID);
StrToByte(Packet,aParams);
InjectFunc(hProcess,@PacketCall,@aParams,sizeof(aP arams));
CloseHandle(hProcess); //забыл дописать
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
Packet('2500070000000C000000C85C000000000000000000 00');
end;
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Автор программы PwRuf - Bot и PwRuf - Crafter
  Ответить с цитированием
Пользователь сказал cпасибо:
tianddu (25.06.2012)
Старый 25.06.2012, 11:52   #3
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 325 раз(а) в 105 сообщениях
 
По умолчанию Re: все тежи инжекты на делфи..

rufat2005, добавь теги CODE и убери отображение смайлов, пожалуйста.
________________
--------------------------------------------

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
- Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
- Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
- патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
  Ответить с цитированием
Старый 25.06.2012, 12:39   #4
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
 
По умолчанию Re: все тежи инжекты на делфи..

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    btn1: TButton;
    procedure btn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

type
 PParams = ^TParams;
 TParams = packed record
 Packet: array [0..100] of byte;
 Param1,WID: DWord;
 end;

 const
 PW_BASE_ADDRESS = $00A571E0;
 PW_GAMERUN_ADDR = $00A57ACC;

 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($6737B0); //адрес был устаревший
 Len:=aPParams^.Param1;
 pPacket:=@aPParams^.Packet;
 asm
 pushad
 mov ecx, dword ptr [$B27A04]
 mov ecx, dword ptr [ecx+$20] //20
 push Len
 push pPacket
 call CallAddress
 popad
 end;
 end;

procedure StrToByte(Packet:string; var aParams:TParams);
 var
 i:integer;
 begin
 i:=(length(Packet) div 2)-1;
 aParams.Param1:=i+1;
 for i:=0 to i do
 aParams.Packet[i]:=strtoint('$'+Packet[i*2+1]+Packet[i*2+2]);
 end;

procedure Packet(Packet: string);
var
   aParams: TParams;
   PID, hProcess: DWord;
 begin
      GetWindowThreadProcessId( FindWindow('ElementClient Window', nil), @PID);
      hProcess:=OpenProcess(PROCESS_ALL_ACCESS, False, PID);
      StrToByte(Packet,aParams);
      InjectFunc(hProcess,@PacketCall,@aParams,sizeof(aParams));
      CloseHandle(hProcess); //забыл дописать
 end;

procedure TForm1.btn1Click(Sender: TObject);
begin
     Packet('2500070000000C000000C45C00000000000000000000');
end;

end.
если прописать
Цитата:
GetWindowThreadProcessId( FindWindow('ElementClient Window', nil), @PID);

то светофорит, а если прописать
Цитата:
GetWindowThreadProcessId(WID, @PID);

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

tianddu, вероятно, что, в отличие от второго, в первом случае процесс успешно открывается
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
  Ответить с цитированием
Старый 25.06.2012, 15:56   #6
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
 
По умолчанию Re: все тежи инжекты на делфи..

а почему тогда светофорит?)адреса не правильные?
просто то что выложил rufat2005, не отзывается никак(
  Ответить с цитированием
Старый 25.06.2012, 17:05   #7
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Re: все тежи инжекты на делфи..

Дело либо в адресах и смещениях, либо в неправильном внедрении кода.
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
  Ответить с цитированием
Старый 25.06.2012, 18:07   #8
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
 
По умолчанию Re: все тежи инжекты на делфи..

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

Цитата:
Сообщение от tiandduПосмотреть сообщение
Код:
procedure StrToByte(Packet:string; var aParams:TParams);
 var
 i:integer;
 begin
 i:=(length(Packet) div 2)-1;
 aParams.Param1:=i+1;
 for i:=0 to i do
 aParams.Packet[i]:=strtoint('$'+Packet[i*2+1]+Packet[i*2+2]);
 end;

Это как это так? Не ошибка случайно?
Тогда уж вот так
Код:
procedure StrToByte(Packet:string; var aParams:TParams);
 var
 n,i:integer;
 begin
n:=(length(Packet) div 2)-1;
 aParams.Param1:=i+1;
 for i:=0 to n do
 aParams.Packet[i]:=strtoint('$'+Packet[i*2+1]+Packet[i*2+2]);
 end;
________________
╔═╗
ˑ ˑ ╬ ╬
╚═╝

Последний раз редактировалось dwa83; 25.06.2012 в 19:00.
  Ответить с цитированием
Старый 25.06.2012, 19:05   #10
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
 
По умолчанию Re: все тежи инжекты на делфи..

взято из шапки в теме http://zhyk.ru/forum/showthread.php?t=144558 не думаю что там не правильно)
  Ответить с цитированием
Старый 25.06.2012, 19:41   #11
 Пехотинец
Аватар для dwa83
 
dwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личность
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
 
По умолчанию Re: все тежи инжекты на делфи..

Хмм.. Может в делфи и не так, но в с++ такая конструкция либо не выполнится ни раза (условие продолжения цикла i<i) либо зависнет в бесконечном цикле (условие продолжения цикла i<=i)..
________________
╔═╗
ˑ ˑ ╬ ╬
╚═╝
  Ответить с цитированием
Пользователь сказал cпасибо:
tianddu (26.06.2012)
Старый 25.06.2012, 20:07   #12
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
 
По умолчанию Re: все тежи инжекты на делфи..

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

tianddu, если этот код используется для руофа, то дело в первую очередь в старых адресах, стоит заменить их на новые.
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
  Ответить с цитированием
Пользователь сказал cпасибо:
tianddu (26.06.2012)
Старый 26.06.2012, 08:07   #14
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
 
По умолчанию Re: все тежи инжекты на делфи..

BritishColonist, ну базовый адрес верный. Измененный инжект на середину мая(под текущую версию клиента) от dwa83 http://zhyk.ru/forum/showpost.php?p=...&postcount=182, да даже адрес для инжекта PackCall 0063DB70 новый, не пойму в чем дело(
Использую для руофа... одно не пойму почему
Код:
mov ecx, dword ptr [edx+$20]
именно +20

Добавлено через 43 минуты
всем спасибо за помощь не заметил что mov ecx, dword ptr [$B27A04] надо заменить на mov ecx, dword ptr [PW_BASE_ADDRESS]

Последний раз редактировалось tianddu; 26.06.2012 в 08:50. Причина: Добавлено сообщение
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Информация] Страшная Тайна Феди!1!!!!1!! Федя Треп 41 03.05.2010 20:33

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

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

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net