 |
"Патчер памяти" или "Пишем флайхак" [Delphi] - Разработка ПО для Perfect World - Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World |
28.11.2010, 14:40
|
#136
|
|
|
|
Сержант
|
 Регистрация: 16.08.2010
 Сообщений: 165
 Популярность: 2760
 Сказал(а) спасибо: 6
Поблагодарили 45 раз(а) в 35 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Есть же аутофгеймовый бот, аутофгеймовый торговый бот, аутофгеймовый сканер котов и обсервер
Так что все возможно
Но в паблик свои наработки никто не выложит, будьте уверены
|
|
|
28.11.2010, 15:49
|
#137
|
|
|
|
Разведчик
|
 Регистрация: 28.10.2010
 Сообщений: 18
 Популярность: 39
 Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 5 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
А есть вообще хоть какая-нибудь информация по пакетам? Инжект отправки пакета нашёл, а вот как сделать то же самое, но без клиента, непонятно.
|
|
|
28.11.2010, 16:10
|
#138
|
|
|
|
Главнокомандующий
|
 Регистрация: 20.01.2010
 Сообщений: 1,539
 Популярность: 22780
 Золото Zhyk.Ru: 600
 Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Virial, трафик зашифрован RC4, сжат MPPC.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Быстрое снятие и загрузка скриншотов на хостинг.
Последний раз редактировалось Kitsune; 28.11.2010 в 16:18.
|
|
|
28.11.2010, 16:30
|
#139
|
|
|
|
Разведчик
|
 Регистрация: 28.10.2010
 Сообщений: 18
 Популярность: 39
 Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 5 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Значит, даже аутгейм-боты всё равно юзают фрагменты кода клиента для создания/приёма пакетов?
|
|
|
28.11.2010, 16:42
|
#140
|
|
|
|
Сержант
|
 Регистрация: 16.08.2010
 Сообщений: 165
 Популярность: 2760
 Сказал(а) спасибо: 6
Поблагодарили 45 раз(а) в 35 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
С чего ты взял?
|
|
|
28.11.2010, 16:44
|
#141
|
|
|
|
Разведчик
|
 Регистрация: 28.10.2010
 Сообщений: 18
 Популярность: 39
 Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 5 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Ну раз трафик криптован... Выдрать алгоритм криптования из клиента - это надо быть мега-скиллованным, и в любом случае процесс растянется на месяцы работы.
|
|
|
28.11.2010, 16:45
|
#142
|
|
|
|
Главнокомандующий
|
 Регистрация: 20.01.2010
 Сообщений: 1,539
 Популярность: 22780
 Золото Zhyk.Ru: 600
 Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Virial, сам напиши  я не выдирал ничего.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Быстрое снятие и загрузка скриншотов на хостинг.
|
|
|
28.11.2010, 16:48
|
#143
|
|
|
|
Разведчик
|
 Регистрация: 28.10.2010
 Сообщений: 18
 Популярность: 39
 Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 5 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
А сколько примерно времени ушло, чтоб разобраться в алгоритме?
|
|
|
28.11.2010, 16:56
|
#144
|
|
|
|
Главнокомандующий
|
 Регистрация: 20.01.2010
 Сообщений: 1,539
 Популярность: 22780
 Золото Zhyk.Ru: 600
 Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Virial, спецификации все в открытом доступе  гугл в помощь. Ну, а дальше самому додумывать все хитрости трафика PW.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Быстрое снятие и загрузка скриншотов на хостинг.
|
|
|
28.11.2010, 17:07
|
#145
|
|
|
|
Разведчик
|
 Регистрация: 28.10.2010
 Сообщений: 18
 Популярность: 39
 Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 5 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Спасибо, ушёл курить RFC, для начала с MPPC разберусь, он вроде проще...
Добавлено через 23 часа 12 минут
Нагуглил исходники старенького аутгейм-бота (автор Vort) для PW. Скорее всего, протокол обмена уже 100 раз поменяли, но в качестве основы для изучения возможно пойдёт. Схема шифрования с тех пор не изменилась, или всё равно это копать придётся?
Последний раз редактировалось Virial; 29.11.2010 в 16:20.
Причина: Добавлено сообщение
|
|
|
10.12.2010, 23:52
|
#146
|
|
|
|
Разведчик
|
 Регистрация: 03.09.2009
 Сообщений: 36
 Популярность: 10
 Сказал(а) спасибо: 23
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Люди, начал интересоваться ассемблером, и мне хочется понять, как устроен клиент пв (как найти нужный код для инжекта, найти определенные структуры самому (тот же аук к примеру)).
Кто знает, в какую сторону копать,что надо уметь делать для этого. Натолкните, плиз. Буду очень благодарен)
Последний раз редактировалось 777gamer777; 11.12.2010 в 00:05.
|
|
|
11.12.2010, 00:17
|
#147
|
|
|
|
Фельдмаршал
|
 Регистрация: 13.08.2009
 Сообщений: 1,004
 Популярность: 25098
 Золото Zhyk.Ru: 350
 Сказал(а) спасибо: 111
Поблагодарили 830 раз(а) в 395 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
Люди, начал интересоваться ассемблером, и мне хочется понять, как устроен клиент пв (как найти нужный код для инжекта, найти определенные структуры самому (тот же аук к примеру)).
Кто знает, в какую сторону копать,что надо уметь делать для этого. Натолкните, плиз. Буду очень благодарен)
|
|
 |
|
 |
|
Ты начал интерисоваться не ассемблером а основами крекинга 
Или ты собираешся писать программы на асме?
"почти по теме" пример как я искал массив инвентаря в JD (тупо скопирую то что уже писал на другом форуме)
Раскрой меня хм, попробую.
Для начала я нашел функцию использования итемов из инвентаря (для инжекта).
Далее заметил что она требует 2 параметра собственно WID итема и номер ячейки в которой лежит итем. Тоесть для успешной работы мне нужно было знать в какой ячейке лежит итем.
Так как искать массивы я не умею, решил пойти иным путем. Меня заинтерисовала строка:
MOV EAX,DWORD PTR DS:[EDI+8],
в которой собственно в регистр EAX ложится значение WID. Естественно берется оно из массива данных инвентаря.
Далее прошелся вверх по коду найдя такие строки.
MOV EAX,DWORD PTR DS:[ECX]
LEA ECX,DWORD PTR DS:[ECX+EAX*4]
MOV ECX,DWORD PTR DS:[ECX+C]
MOV EAX,DWORD PTR DS:[ECX+114C]
MOV EAX,DWORD PTR DS:[ECX+28]
MOV ECX,DWORD PTR DS:[EAX+1C]
MOV EAX,DWORD PTR DS:[B03064]
(строки приведены в обратном порядке, с конца в начало, так как я "разматываю клубок" с конца.)
Тоесть собственно говоря путь к базовому адресу.
Фактически путь к массиву итемов в инвентаре
[ba]+1c+28+114c+c+i*4+
8 - WID;
Кроме WID меня ничего не интерисовало, поэтому не заморачивался.
По поводу инжектов. В PW большинство функций которые стоит инжектить принимают как параметр базовый адрес (хотя это не совсем верно, параметры передаются в стеке, указатель основанный на базовом адресе остается лежать в одном из регистров)
Посему их можно найти расставив брейкпоинты на все обращения к базовому адресу (что долго и неудобно).
Отсюда делаем вывод - используем СЕ, а именно его возможность трассировать вызовы функций (тоесть проверяем кто обращается к базовому адресу).
А далее начинаем копать от той функции/процедуры в которой стоп произошел при совершении нгеобходимого нам действия.
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). .
JD: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). .
Статьи: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
Пользователь сказал cпасибо:
|
|
12.12.2010, 19:02
|
#148
|
|
|
|
Разведчик
|
 Регистрация: 03.09.2009
 Сообщений: 36
 Популярность: 10
 Сказал(а) спасибо: 23
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
а,собственно, как вообще пишутся инжекты. Меня интересует сам процесс,подход,механизм.
Я ,так понимаю, там не просто меняются значения оперативной памяти, там что-то другое?
Помогите,пожалуйста разобрать код ассемблера на примере инъекции прыжка (взято с Russian Server: PWI):
Код:
procedure InjectFunc (ProcessID:Cardinal;Func:Pointer;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 JumpCall(aPParams:PParams);Stdcall;
var CallAddress:pointer;
begin
CallAddress:=pointer($00476970); // что это за адресс?
asm
pushad // push - это добавление в стек, а pushad?
push $0
push $C8
push $1
push $3F800000
push $4
mov ecx, dword ptr [PW_GAMERUN_ADDR]
mov ecx, dword ptr [ecx+$20]
mov eax, $41200000 //??
mov dword ptr[ecx+$B80], $0
mov dword ptr[ecx+$B94], $0
mov dword ptr[ecx+$B98], $0
mov dword ptr[ecx+$B9C], $0
mov dword ptr[ecx+$BA4], eax
mov dword ptr[ecx+$BF4], $1
mov dword ptr[ecx+$BFC], eax
call CallAddress
popad
end;
end;
procedure Jump;
var aParams:TParams;
begin
InjectFunc(aHandle@JumpCall,@aParams,SizeOf(aParams));
end;
Помогите,плиз. Очень хочу научится писать инжекты (не только для пв).
|
|
|
12.12.2010, 21:07
|
#149
|
|
|
|
Фельдмаршал
|
 Регистрация: 13.08.2009
 Сообщений: 1,004
 Популярность: 25098
 Золото Zhyk.Ru: 350
 Сказал(а) спасибо: 111
Поблагодарили 830 раз(а) в 395 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Этот асмо-код, всего лишь подготовка параметров для функции прыжка.
При динамическом инжекте кода в чужой процесс, мы создаем свой поток в этом самом чужом процессе, и из него вызываем стандартную функцию клиента.
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). .
JD: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). .
Статьи: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
12.12.2010, 21:14
|
#150
|
|
|
|
Разведчик
|
 Регистрация: 03.09.2009
 Сообщений: 36
 Популярность: 10
 Сказал(а) спасибо: 23
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
а где взять эту функцию (узнать адресс, параметры и т д)
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 12:43.
|
 |