|
[Руоф] Код для инжекта в память. - Разработка ПО для Perfect World - Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World |
31.01.2012, 17:31
|
#91
|
|
|
|
Разведчик
|
Регистрация: 09.10.2011
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: [Руоф] Код для инжекта в память.
|
Цитата: |
|
|
|
|
|
|
|
|
|
Всегда можно ткнуть + (чуть выше и правее аватарки).
|
|
|
|
|
|
Уже разобралась)))) Сделала)
|
Цитата: |
|
|
|
|
|
|
|
|
|
Я полагаю имеется ввиду API- функция keybd_event
На VB.NET она выглядит так:
На твоем не знаю как, думаю нагуглишь .
|
|
|
|
|
|
Мне на Дельфине((
Пытаюсь сама неполучается(((
|
Цитата: |
|
|
|
|
|
|
|
|
|
Ребят, а помогите пожалуйста - как закрыть диалоговое окно нипа после разговора с ним. Я пробовал на телепортах - выбирался телепортёр, тпшился (пакетами), но диалоговое окно остаётся открытое (( Пробовал слушать что передётся после тп - добавлять такие же пакетики - не помогло.
Посоветовали закрывать инжектом, но пока не понял как его ловить можно((
|
|
|
|
|
|
Раньше было так и было здорово
Код:
procedure BtnPressAs(Btn: PParams); stdcall;
var
PW_Call: Pointer;
PW_BASE_ADDR: dword;
BT_ADDR: dword;
begin
PW_Call := Pointer($809A1F);
PW_BASE_ADDR :=$B27A04;
BT_ADDR := Btn^.Param1;
asm
pushad
mov eax, BT_ADDR
push eax
mov esi, PW_BASE_ADDR
mov esi, dword ptr [esi]
mov esi, dword ptr [esi+$4]
mov esi, dword ptr [esi+$8]
mov esi, dword ptr [esi+$70]
mov ecx, esi
call PW_Call
popad
end;
end;
procedure TForm1.Button10Click(Sender: TObject);
var
aParams: TParams;
aParamsSize: dword;
begin
aParams.Param1 := $ACB998; //00967E24
aParamsSize := SizeOf(aParams);
InjectFunc(hProcess, @BtnPressAs, @aParams, aParamsSize);
end;
только адреса устарели а я новые немогу найти нигде(((
Добавлено через 2 минуты
|
Цитата: |
|
|
|
|
|
|
|
|
|
Но чтобы ее использовать должно быть активно окно клиента - что не очень удобно.
|
|
|
|
|
|
антифриз должен помочь
Последний раз редактировалось =Оленька=; 31.01.2012 в 17:42.
Причина: Добавлено сообщение
|
|
|
01.02.2012, 14:15
|
#92
|
|
|
|
Сержант
|
Регистрация: 18.12.2009
Сообщений: 152
Популярность: 1075
Сказал(а) спасибо: 45
Поблагодарили 204 раз(а) в 67 сообщениях
|
Re: [Руоф] Код для инжекта в память.
Код:
procedure SendKey(hWindow: dword; key: Word; const shift: TShiftState);
var
lparam:dword;
Begin
lParam := MakeLong(0, MapVirtualKey(key, 0)) or $20000000;
if ssAlt in Shift then
PostMessage(hWindow, WM_KEYDOWN, VK_MENU, MakeLong(0, MapVirtualKey(VK_MENU, 0)));
if ssCtrl in Shift then
PostMessage(hWindow, WM_KEYDOWN, VK_CONTROL, MakeLong(0, MapVirtualKey(VK_CONTROL, 0)));
if ssShift in Shift then
PostMessage(hWindow, WM_KEYDOWN, VK_SHIFT, MakeLong(0, MapVirtualKey(VK_SHIFT, 0)));
PostMessage(hWindow, WM_KEYDOWN, key, lParam);
Sleep(100);
PostMessage(hWindow, WM_KEYUP, key, Longint(lParam or $C0000000));
if ssShift in Shift then
PostMessage(hWindow, WM_KEYUP, VK_SHIFT, MakeLong(0, MapVirtualKey(VK_SHIFT, 0)));
if ssCtrl in Shift then
PostMessage(hWindow, WM_KEYUP, VK_CONTROL, MakeLong(0, MapVirtualKey(VK_CONTROL, 0)));
if ssAlt in Shift then
PostMessage(hWindow, WM_KEYUP, VK_MENU, MakeLong(0, MapVirtualKey(VK_MENU, 0)));
end;
использовать
Код:
SendKey(hWindow, VK_ESCAPE, []);
|
|
|
01.02.2012, 15:40
|
#93
|
|
|
|
Разведчик
|
Регистрация: 09.10.2011
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: [Руоф] Код для инжекта в память.
gurin, Спасибо ОГРОМНОЕ
Плюсик нажала
|
|
|
01.02.2012, 21:10
|
#94
|
|
|
|
Рыцарь-капитан
|
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
|
Re: [Руоф] Код для инжекта в память.
Написал функцию закрытия любого окна:
Функция на VB.Net с использованием ASM'а. Ниже на Delphi.
Код:
''' <summary> Закрытие окна </summary> актуально на 01.02.2012
Public Sub CloseWindow(ByVal windowOffset As Integer)
Dim intProcID As Integer = PW_WINDOW.ProcessId
Dim CallAddress As Integer = &H616EA0
Dim asm As New ASM()
asm.Pushad()
asm.Mov_EAX(BaseAddress)
asm.Mov_EAX_DWORD_Ptr_EAX()
asm.Mov_EAX_DWORD_Ptr_EAX_Add(&H1C)
asm.Mov_EAX_DWORD_Ptr_EAX_Add(&H18)
asm.Mov_EAX_DWORD_Ptr_EAX_Add(&H8)
asm.Mov_EAX_DWORD_Ptr_EAX_Add(windowOffset)
asm.Push_EAX()
asm.Push68(&HACC3BC) 'Btn_Close
asm.Mov_EBP(CallAddress)
asm.Call_EBP()
asm.Popad()
asm.Ret()
asm.RunAsm(intProcID, 0)
End Sub
Принимает в качестве параметра смещение окна
Код:
0x2B8 Действия
0x2C0 Игроки и группы
0x2C4 Служба поддержки
0x314 Характеристики персонажа
0x32C Ремонт
0x36C Призыв духа
0x3E8 Помощь
0x40C Инвентарь и Окно Торговли и Ремонта
0x428 Диалог с NPC
0x438 Домашние животные
0x458 Окно алхимика
0x468 Панель 1-9
0x470 Горячие клавиши
0x4B0 Настройки
0x4C4 Умения
0x50C Системная панель
0x51C Задания
Добавлено через 25 минут
Вот на Delphi - если найдете синтаксические ошибки - скажите - поправлю. Delphi не установлен, писал в блокноте.
Код:
procedure WinClose(WinOffset: PParams); stdcall;
var
PW_Call: Pointer;
const
PW_BASE_ADDR=$B27A04;
PW_BTN_CLOSE=$ACC3BC;
begin
PW_Call := Pointer($616EA0);
WIN_OFFSET := WinOffset^.Param1;
asm
pushad
mov eax, PW_BASE_ADDR
mov eax, dword ptr [eax]
mov eax, dword ptr [eax+$1C]
mov eax, dword ptr [eax+$18]
mov eax, dword ptr [eax+$8]
mov eax, dword ptr [eax+WIN_OFFSET]
push eax
push PW_BTN_CLOSE
call PW_Call
popad
end;
end;
procedure CloseWindow(windowOffset:dword);
begin
aParams.Param1 := windowOffset;
InjectFunc(aHandle,@WinClose,@aParams,SizeOf(aParams));
end;
________________
--------------------------------------------
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; 03.02.2012 в 21:39.
Причина: Добавлено сообщение
|
|
|
6 пользователя(ей) сказали cпасибо:
|
|
01.02.2012, 21:52
|
#95
|
|
|
|
Лейтенант-командор
|
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: [Руоф] Код для инжекта в память.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: 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.
|
|
|
01.02.2012, 22:34
|
#96
|
|
|
|
Лейтенант-командор
|
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: [Руоф] Код для инжекта в память.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: 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.
|
|
|
02.02.2012, 17:31
|
#97
|
|
|
|
Разведчик
|
Регистрация: 04.09.2010
Сообщений: 20
Популярность: 10
Сказал(а) спасибо: 14
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: [Руоф] Код для инжекта в память.
krukovis, спасибо большое. Приду с работы - буду тестить. Кнопочный вариант очень не айс, т.к. и сами скилы можно было по f1-8 вызывать, париться с разморозкой окна...
|
|
|
03.02.2012, 19:20
|
#98
|
|
|
|
Разведчик
|
Регистрация: 09.10.2011
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: [Руоф] Код для инжекта в память.
|
Цитата: |
|
|
|
|
|
|
|
|
|
Написал функцию закрытия любого окна:
Функция на VB.Net с использованием ASM'а. Ниже на Delphi.
|
|
|
|
|
|
На Delphi несработал ;( вылетел клиент
|
Цитата: |
|
|
|
|
|
|
|
|
|
если найдете синтаксические ошибки - скажите - поправлю
|
|
|
|
|
|
PW_BTN_CLOSE - ??? на ето ругнулся
var
PW_Call: Pointer;
PW_BASE_ADDR: dword;
BT_ADDR: dword;
PW_BTN_CLOSE: dword; так наверно правильнее?
begin
PW_Call := Pointer($616EA0);
PW_BASE_ADDR :=$B27A04;
PW_BTN_CLOSE :=$ACC3BC;
WIN_OFFSET := WinOffset^.Param1;
asm......
ток всеравно несработал(((
|
|
|
03.02.2012, 19:36
|
#99
|
|
|
|
Лейтенант-командор
|
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: [Руоф] Код для инжекта в память.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: 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.
|
|
|
03.02.2012, 21:16
|
#100
|
|
|
|
Разведчик
|
Регистрация: 09.10.2011
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: [Руоф] Код для инжекта в память.
|
|
|
03.02.2012, 21:43
|
#101
|
|
|
|
Рыцарь-капитан
|
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
|
Re: [Руоф] Код для инжекта в память.
В своем посте выше все замечания учел. Должно заработать. Но я честно признаться делфи вообще не знаю - адаптировал под Делфи по аналогии. У меня на VB.NET все работает .
Добавлено через 3 минуты
|
Цитата: |
|
|
|
|
|
|
|
|
|
Все равно неработает
|
|
|
|
|
|
А "не работает" - это клиент вылетает с ошибкой или окно не закрывается?
А то я смотрю ты пытаешься окно 0x314 - Характеристики персонажа закрыть. А может у тебя другое окно открыто?
Если так, то попробуй сначала окно диалога с НПС или Инвентарь закрыть - эти точно работают. А остальные я не проверял. Вдруг там смещения поменялись.
________________
--------------------------------------------
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; 03.02.2012 в 21:46.
Причина: Добавлено сообщение
|
|
|
04.02.2012, 21:07
|
#102
|
|
|
|
Разведчик
|
Регистрация: 09.10.2011
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: [Руоф] Код для инжекта в память.
|
|
|
11.02.2012, 17:34
|
#103
|
|
|
|
Разведчик
|
Регистрация: 23.12.2011
Сообщений: 42
Популярность: 192
Сказал(а) спасибо: 26
Поблагодарили 11 раз(а) в 9 сообщениях
|
Re: [Руоф] Код для инжекта в память.
хМ можете кто то дать программу инжект пакетов на делпше буду очень признателен.
P.S. соурс а то я уже не понимаю в чем проблема с ошибками.
|
Цитата: |
|
|
|
|
|
|
|
|
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
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;
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,pPacketointer;
LenWord;
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]
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('$'+bytecode[i*2+1]+bytecode[i*2+2]);//тут ощыбка
end;
procedure Packet(Packet: string);
var
aParams: TParams;
begin
StrToByte(Packet,aParams);
InjectFunc(ProcessID,@PacketCall,@aParams,sizeof(a Params));//тут ощыбка
end;
end. |
|
|
|
|
|
Последний раз редактировалось samosi; 11.02.2012 в 17:50.
|
|
|
11.02.2012, 17:59
|
#104
|
|
|
|
Лейтенант-командор
|
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: [Руоф] Код для инжекта в память.
|
Цитата: |
|
|
|
|
|
|
|
|
|
соурс а то я уже не понимаю в чем проблема с ошибками.
|
|
|
|
|
|
Можно узнать, а где ты в своём исхонике пакеты посылаешь? Объясню: в твоём исходнике пакет посылает процедура Packet, если ты заметил.
Код:
procedure Packet(Packet: string);
Я не вижу, где ты эту процедуру вызываешь.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: 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, 18:46
|
#105
|
|
|
|
Разведчик
|
Регистрация: 23.12.2011
Сообщений: 42
Популярность: 192
Сказал(а) спасибо: 26
Поблагодарили 11 раз(а) в 9 сообщениях
|
Re: [Руоф] Код для инжекта в память.
Весь геморой то что у меня даже без нее компилить нехочет....
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 19:17.
|
|