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

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

-

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

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

Ответ
 
Опции темы
Старый 11.02.2012, 19:12   #106
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от samosiПосмотреть сообщение
Весь геморой то что у меня даже без нее компилить нехочет....

Может быть, ты нам поведаешь текст ошибки?
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Старый 11.02.2012, 19:28   #107
 Разведчик
Аватар для samosi
 
samosi на правильном путиsamosi на правильном пути
Регистрация: 23.12.2011
Сообщений: 42
Популярность: 192
Сказал(а) спасибо: 26
Поблагодарили 11 раз(а) в 9 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Вот
Цитата:
[Error] Unit1.pas(92): Undeclared identifier: 'bytecode'
[Error] Unit1.pas(92): Incompatible types: 'String' and 'Integer'
[Error] Unit1.pas(100): Undeclared identifier: 'ProcessID'

  Ответить с цитированием
Старый 11.02.2012, 19:55   #108
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от samosiПосмотреть сообщение
Вот

А теперь прогуляйся в соседнюю тему.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Пользователь сказал cпасибо:
samosi (11.02.2012)
Старый 11.02.2012, 21:05   #109
 Разведчик
Аватар для samosi
 
samosi на правильном путиsamosi на правильном пути
Регистрация: 23.12.2011
Сообщений: 42
Популярность: 192
Сказал(а) спасибо: 26
Поблагодарили 11 раз(а) в 9 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Смотри пакет листер все выдает что я отправил пакет но у меня оно не отображаеца что я его отправил в чем соль?
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ComboBox1: TComboBox;
    Button1: TButton;
    Button2: TButton;
    procedure Buton1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  type
  PParams = ^TParams;
  TParams = packed record
    Packet: array [0..100] of byte;
    Param1,Param2,Param3: DWord;
    Param4: array [1..100] of widechar;
  end;

const 
  PW_BASE_ADDRESS = $00B27A04;
  PW_GAMERUN_ADDR = $00B280C4;

var
  Form1: TForm1;
  FID: array[0..10] of THandle;

implementation

{$R *.dfm}

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($006737B0); //àäðåñ áûë óñòàðåâøèé
Len:=aPParams^.Param1;
pPacket:=@aPParams^.Packet;
 asm
 pushad
 mov ecx, dword ptr [PW_BASE_ADDRESS]
 mov ecx, dword ptr [ecx+$34] //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;
Wnd: Thandle;
PID,hProcess: DWord;
begin
Wnd:=FID[Form1.ComboBox1.ItemIndex];
GetWindowThreadProcessId(Wnd,@PID);
hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,PID );
StrToByte(Packet,aParams);
InjectFunc(hProcess,@PacketCall,@aParams,sizeof(aParams));
CloseHandle(hProcess);
end;

procedure TForm1.Buton1Click(Sender: TObject);
var
aParams : TParams;
begin
Packet('5500'); //îòñûëàåì ïàêåò 5500
end;

function ReadPlayerName(hProcess,data:DWord): string;
var
i,rw:DWord;
ch:WideChar;
wch:array[0..255] of WideChar;
str:string;
begin
i:=0;
 repeat
 ReadProcessMemory(hProcess,ptr(data),@ch,2,rw);
 data:=data+2;
 wch[i]:=ch;
 inc(i);
 until
 (ord(ch)=0) or (i>=255);
i:=0;
str:='';
 repeat
 str:=str+wch[i];
 inc(i);
 until
 wch[i]='';
result:=str;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
Wnd:THandle;
Nick,Res:String;
Hndl:array[0..255] of Char;
buf,ibuf,BC:DWord;
hProcess,PID,PID1:DWord;
i:Integer;
begin
  for i:=0 to ComponentCount-1 do
    if Components[i].ClassName = 'TComboBox' then
      (Components[i] as TComboBox).Items.Clear;
begin
Wnd:=FindWindow('ElementClient Window',nil);
GetWindowThreadProcessId(Wnd,@PID);
hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,PID);
i:=0;
 while (hProcess<>0) and (PID<>PID1) do
  begin
  GetWindowText(Wnd,Hndl,SizeOf(Hndl));
  ReadProcessMemory(hProcess,ptr(PW_BASE_ADDRESS),@ibuf,sizeof(ibuf),BC);
  ReadProcessMemory(hProcess,ptr(ibuf+$1C),@ibuf,sizeof(ibuf),BC);
  ReadProcessMemory(hProcess,ptr(ibuf+$34),@ibuf,sizeof(ibuf),BC);
  ReadProcessMemory(hProcess,ptr(ibuf+$638),@buf,sizeof(buf),BC);
  Nick:=ReadPlayerName(hProcess,buf);
  Res:='Handle: '+Hndl+' '+'Nickname: '+Nick;
  SetWindowText(Wnd,PChar(Nick));
  ComboBox1.Items.Add(Nick);
  FID[i]:=Wnd;
  PID:=PID1;
  inc(i);
  end;
CloseHandle(hProcess);
end;
end;

end.

Последний раз редактировалось samosi; 11.02.2012 в 21:13.
  Ответить с цитированием
Старый 12.02.2012, 10:33   #110
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от samosiПосмотреть сообщение
но у меня оно не отображаеца что я его отправил в чем соль?

А как оно должно отображаться? В твоём коде я не вижу ничего, что отображало бы удачно отправленный пакет.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


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

Нашёл один юзабельный инжектик:

Код:
//---------------------------------------------------------------------------
void Print(DWORD dwColor, wchar_t* Text)
{
	DWORD Function = 0x417E00;
	__asm	{
		mov ecx,dword ptr [BA]
		mov ecx,dword ptr [ecx+0x24] // указатель на интерфейс что ли..
		push Text // собственно текст
		push dwColor // цвет, включая непрозрачность
		call Function
	}
}
//---------------------------------------------------------------------------
Применение (из DLL):
Код:
Print(0xFFCEABEF,L"Hello, Perfect World!");
Цвет это обычный DWORD. Жёлтым цветом я выделил байт непрозрачности (0 - полностью прозрачный текст, т.е. невидимый; FF - абсолютно непрозрачный).
Остальные три байта - соответствующие цвета RGB.

Второй параметр - юникод-строка.

Результат (функция вызвана много-много раз):
[Ссылки могут видеть только зарегистрированные пользователи. ]

Пригодится разработчикам для выведения на экран полезной информации (особенно при создании DLL).
Естественно, это на любителя - можно выводить такую полезную инфу в файл.

Последний раз редактировалось BritishColonist; 13.02.2012 в 19:00.
  Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
krukovis (26.02.2012), sumikot (18.02.2012), zaparca (21.02.2012)
Старый 21.02.2012, 10:00   #112
 Разведчик
Аватар для zaparca
 
zaparca на правильном пути
Регистрация: 07.10.2010
Сообщений: 21
Популярность: 90
Сказал(а) спасибо: 14
Поблагодарили 15 раз(а) в 14 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от BritishColonistПосмотреть сообщение
Нашёл один юзабельный инжектик:
Код:
//---------------------------------------------------------------------------
void Print(DWORD dwColor, wchar_t* Text)
{
	DWORD Function = 0x417E00;
	__asm	{
		mov ecx,dword ptr [BA]
		mov ecx,dword ptr [ecx+0x24] // указатель на интерфейс что ли..
		push Text // собственно текст
		push dwColor // цвет, включая непрозрачность
		call Function
	}
}
//---------------------------------------------------------------------------
Применение (из DLL):
Print(0xFFCEABEF,L"Hello, Perfect World!");

Цвет это обычный DWORD. Жёлтым цветом я выделил байт непрозрачности (0 - полностью прозрачный текст, т.е. невидимый; FF - абсолютно непрозрачный).
Остальные три байта - соответствующие цвета RGB.
Второй параметр - юникод-строка.
Пригодится разработчикам для выведения на экран полезной информации (особенно при создании DLL).
Естественно, это на любителя - можно выводить такую полезную инфу в файл.

кто нибудь может переделать на DELPHI очень надо )
________________
если я не ошибаюсь, а могу и ошибаться ...
too many actual parameters
  Ответить с цитированием
Старый 21.02.2012, 16:50   #113
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

zaparca, в чём сложность? В большинстве статей zhyk.ru используется Delphi. Неужели сложно глянуть, как описываются инжекты в соседних темах?
  Ответить с цитированием
Старый 21.02.2012, 17:41   #114
Читер-спонсор
 Сержант
Аватар для lcd1232
 
lcd1232 скоро будет известенlcd1232 скоро будет известенlcd1232 скоро будет известенlcd1232 скоро будет известен
Регистрация: 12.09.2010
Сообщений: 165
Популярность: 375
Сказал(а) спасибо: 70
Поблагодарили 39 раз(а) в 25 сообщениях
Отправить сообщение для lcd1232 с помощью ICQ Отправить сообщение для lcd1232 с помощью Skype™
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Код не проверял
Код:
Function Print(dwColor: dword, Text: string);
var
DwordFunction:pointer;
begin
	DwordFunction:=Pointer($417E00);
	asm	
		mov ecx,dword ptr [BA]
		mov ecx,dword ptr [ecx+0x24] // указатель на интерфейс что ли..
		push Text // собственно текст
		push dwColor // цвет, включая непрозрачность
		call DwordFunction
	end;
end;
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Пользователь сказал cпасибо:
zaparca (21.02.2012)
Старый 21.02.2012, 18:37   #115
 Разведчик
Аватар для zaparca
 
zaparca на правильном пути
Регистрация: 07.10.2010
Сообщений: 21
Популярность: 90
Сказал(а) спасибо: 14
Поблагодарили 15 раз(а) в 14 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

BritishColonist, еще вопрос по коду его надо инжектить ! или нет ?

lcd1232, после первой строки Еггог (
mov ecx,dword ptr [BA]

ошибок нет но не работает пробовал через инжект
________________
если я не ошибаюсь, а могу и ошибаться ...
too many actual parameters

Последний раз редактировалось zaparca; 21.02.2012 в 20:17.
  Ответить с цитированием
Старый 21.02.2012, 19:03   #116
Reaper
 Фельдмаршал
Аватар для Dinmaite
 
Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(
Регистрация: 13.08.2009
Сообщений: 1,004
Популярность: 25098
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 110
Поблагодарили 830 раз(а) в 395 сообщениях
Отправить сообщение для Dinmaite с помощью ICQ
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от zaparcaПосмотреть сообщение
cd1232, после первой строки Еггог (
mov ecx,dword ptr [BA]

Вот алгоритм для Вас:
1. Выучить язык.
2. Писать программы.
Ни в коем случае не пропускайте первый пункт.
  Ответить с цитированием
Пользователь сказал cпасибо:
zaparca (21.02.2012)
Старый 21.02.2012, 20:17   #117
Читер-спонсор
 Сержант
Аватар для lcd1232
 
lcd1232 скоро будет известенlcd1232 скоро будет известенlcd1232 скоро будет известенlcd1232 скоро будет известен
Регистрация: 12.09.2010
Сообщений: 165
Популярность: 375
Сказал(а) спасибо: 70
Поблагодарили 39 раз(а) в 25 сообщениях
Отправить сообщение для lcd1232 с помощью ICQ Отправить сообщение для lcd1232 с помощью Skype™
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от zaparcaПосмотреть сообщение
, после первой строки Еггог (
mov ecx,dword ptr [BA]

Наверно не указана константа BA
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 21.02.2012, 20:18   #118
 Разведчик
Аватар для zaparca
 
zaparca на правильном пути
Регистрация: 07.10.2010
Сообщений: 21
Популярность: 90
Сказал(а) спасибо: 14
Поблагодарили 15 раз(а) в 14 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от lcd1232Посмотреть сообщение
Наверно не указана константа BA

указана

Код:
Procedure PrintPWCall(dwColor: dword;Text:string);Stdcall;
var
CallAddress:pointer;
begin
	CallAddress:=pointer($417E00);
	asm
             pushad
		mov ecx,dword ptr [base_addr]
		mov ecx,dword ptr [ecx + $24] 
		push Text 
		push dwColor
		call CallAddress
            popad
	end;
end;

procedure PrintPW(dwColor: dword;Text:string);
var aParams:TParams;
begin
aParams.Text:=Text;
aParams.dwColor:=dwColor;
InjectFunc(aHandle,@PrintPWCall,@aParams,SizeOf(aParams));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 PrintPW($FFCEABEF,'Perfect World!');
end;
так делал и так тоже
________________
если я не ошибаюсь, а могу и ошибаться ...
too many actual parameters

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

Цитата:
Сообщение от lcd1232Посмотреть сообщение
Function Print(dwColor: dword, Text: string);
var
DwordFunction:pointer;
begin
DwordFunction:=Pointer($417E00);
asm
mov ecx,dword ptr [BA]
mov ecx,dword ptr [ecx+0x24] // указатель на интерфейс что ли..
push Text // собственно текст
push dwColor // цвет, включая непрозрачность
call DwordFunction
end;
end;

Что неправильного с моей точки зрения:
1) возможно, параметры в объявлении функции следует записывать через точку с запятой, а не через запятую;
2) в дельфи шестнадцатеричные числа записываются с префиксом $, а не 0x;
3) возможно, нельзя push'ить переменные Text и dwColor (но это вряд ли).

Кстати, если хотите пилить инжект, то ещё следует добавить операции pushad и popad после ключевого слова asm и перед end соответственно.

Последний раз редактировалось BritishColonist; 21.02.2012 в 20:33.
  Ответить с цитированием
Старый 21.02.2012, 20:33   #120
 Разведчик
Аватар для zaparca
 
zaparca на правильном пути
Регистрация: 07.10.2010
Сообщений: 21
Популярность: 90
Сказал(а) спасибо: 14
Поблагодарили 15 раз(а) в 14 сообщениях
 
По умолчанию Re: [Руоф] Код для инжекта в память.

Цитата:
Сообщение от BritishColonistПосмотреть сообщение
1) возможно, параметры в объявлении функции следует записывать через точку с запятой, а не через запятую; именно запятую
2) в дельфи шестнадцатеричные числа записываются с префиксом $, а не 0x; так и записано $FFCEABEF

Цитата:
Сообщение от BritishColonistПосмотреть сообщение
Кстати, если хотите пилить инжект, то ещё следует добавить операции pushad и popad после ключевого слова asm и перед end соответственно. что то не подумал )

но так точно не работает
Код:
Procedure PrintPW(dwColor:dword;Text:string);
var
CallAddress:pointer;
begin
	CallAddress:=pointer($417E00);
	asm
		mov ecx,dword ptr [base_addr]
		mov ecx,dword ptr [ecx + $24]
		push Text
		push dwColor
		call CallAddress
	end;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
 PrintPW($FFCEABEF,'Perfect World!');
end;
________________
если я не ошибаюсь, а могу и ошибаться ...
too many actual parameters

Последний раз редактировалось zaparca; 21.02.2012 в 20:36.
  Ответить с цитированием
Ответ


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

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

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