|
"Патчер памяти" или "Пишем флайхак" [Delphi] - Разработка ПО для Perfect World - Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World |
15.01.2011, 16:11
|
#166
|
|
|
|
Разведчик
|
Регистрация: 09.01.2011
Сообщений: 15
Популярность: 10
Сказал(а) спасибо: 19
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Уважаемый Dinmaite, простите плиз, но просмотрев всю тему так и не понял как разморозить окно. Прошу вас обьясните поподробнее, плиз.
|
|
|
15.01.2011, 16:22
|
#167
|
|
|
|
Главнокомандующий
|
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Njkzy80, есть 2 варианта:
1. Через N-интервал времени записывать в память клиента информацию, о том, что окно в фокусе, даже если это и не так.
2. Найти в памяти функцию, которая переключает флаг заморозки и сделать так, чтобы она этого не делала.
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
|
|
|
16.01.2011, 13:03
|
#168
|
|
|
|
Разведчик
|
Регистрация: 09.01.2011
Сообщений: 15
Популярность: 10
Сказал(а) спасибо: 19
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Уважаемый TBX1n спасибо и вам что также откликнулись, на мои вопросы.
Исходя из вашего ответа у меня возникло несколько вопросов:
При первом варианте небудет ли мерцания окна игры?
При втором варианте я так понимаю что придется пропатчить клиент или можно будет это както организовать в программе? Если можно то приведите пример пожалуйсто.
И пожалуйсто помогите: немогу сделать так чтобы бот выводил имена всех персов(окон) т.е. Немогу организовать поиск всех окон клиента.
|
|
|
16.01.2011, 13:08
|
#169
|
|
|
|
Главнокомандующий
|
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Njkzy80,
1. Не будет мерцаний.
2. Патчить память клиента или патчить ехе - разницы нет.
3. Найти все окна PW по классу, и прочитать по заданным оффсетам ники из каждого окна.
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
|
|
|
16.01.2011, 13:47
|
#170
|
|
|
|
Разведчик
|
Регистрация: 09.01.2011
Сообщений: 15
Популярность: 10
Сказал(а) спасибо: 19
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Уважаемый TBX1n,
В том то и проблема что у я даже сообразить немогу как сделать чтобы бот нашел все окна.
Вот эта процедура находит тока один ник, а что надо сделать чтобы были найдены все ники?
WndHndl:=findwindow('ElementClient Window',nil);
GetWindowThreadProcessId(WndHndl, @PID);
hProcess:=OpenProcess(PROCESS_ALL_ACCESS, False, PID);
hProces:= hProcess;
ReadProcessMemory(hProces[index], ptr(base_addr), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProces[index], ptr(ipbuf+$1C), @ipbuf, sizeof(ipbuf), BytesCount) ;
ReadProcessMemory(hProces[index], ptr(ipbuf+$20), @ipbuf, sizeof(ipbuf), BytesCount) ;
ReadProcessMemory(hProces[index], ptr(ipbuf+Name_offset), @ipbuf, 4, BytesCount);
ReadProcessMemory(hProces[index], ptr(ipbuf+0), @buft, 32, BytesCount) ;
s:=WideCharToString(buft) ;
ComboBox1.Items.Add(' '+s) ;
Прошу вас ПОЖАЛУЙСТО добавте, что необходимо чтобы были найдены все ники.
Добавлено через 5 минут
Ой, извините не то скопировал, та процедура приводит к ошибке
а эта выводит только один ник
WndHndl:=findwindow('ElementClient Window',nil);
GetWindowThreadProcessId(WndHndl, @PID);
hProcess:=OpenProcess(PROCESS_ALL_ACCESS, False, PID);
ReadProcessMemory(hProcess, ptr(base_addr), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$1C), @ipbuf, sizeof(ipbuf), BytesCount) ;
ReadProcessMemory(hProcess, ptr(ipbuf+$20), @ipbuf, sizeof(ipbuf), BytesCount) ;
ReadProcessMemory(hProcess, ptr(ipbuf+Name_offset), @ipbuf, 4, BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+0), @buft, 32, BytesCount) ;
s:=WideCharToString(buft) ;
ComboBox1.Items.Add(' '+s) ;
ПМОГИТЕ ПРОШУ ВАС!
Последний раз редактировалось Njkzy80; 16.01.2011 в 13:53.
Причина: Добавлено сообщение
|
|
|
16.01.2011, 16:18
|
#171
|
|
|
|
Фельдмаршал
|
Регистрация: 13.08.2009
Сообщений: 1,004
Популярность: 25098
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 110
Поблагодарили 830 раз(а) в 395 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Код:
function EnumProc (h: HWnd; Param: LongInt): Boolean; stdcall; // Îáÿçàòåëüíî stdcall !!!
var
p:array [0..255] of Char;
PID,hProc,nbyte,play_addres:dword;
bufd:dword;
bufs:array [1..60] of widechar;
Begin
GetClassName(h ,p,sizeof(p));
if p='ElementClient Window' then
begin
GetWindowThreadProcessId(h, @PID);
hProc:=OpenProcess(PROCESS_ALL_ACCESS, False, PID);
if hProc <> 0 then
begin
readprocessmemory(hProc,ptr($009C1514),@bufd,sizeof(dword),nbyte);
readprocessmemory(hProc,ptr(bufd+$20),@bufd,sizeof(dword),nbyte);
play_addres:=bufd;
readprocessmemory(hProc,ptr(bufd+$608),@bufd,sizeof(dword),nbyte);
readprocessmemory(hProc,ptr(bufd),@bufs,60,nbyte);
form1.NickBox.Items.Add(string(bufs));
akk[form1.NickBox.Items.Count-1].Wnd:=h;
akk[form1.NickBox.Items.Count-1].PID:=PID;
akk[form1.NickBox.Items.Count-1].play_addres:=play_addres;
end;
closehandle(hProc);
end;
EnumProc := TRUE;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
NickBox.Items.Clear; // Î÷èñòèì ñïèñîê ïåðåä íà÷àëîì ïîèñêîâ
EnumWindows (@EnumProc, 0); // è ñêàæåì - èñêàòü
end;
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Флудобот, Девизхак, OutFocusBot, OutFocusBot ver 3 (freepvp), PWMultiHack ver 3, AutoRespawn.
JD: JDMultiHack, JDFlooder, JDBot.
Статьи: Отключаем UAC, Ищем базовый адрес Perfect World, "Патчер памяти" или "Пишем флайхак", "Патчер памяти 2" или "Пишем Джампхак", "Поиск инжектов" или "Наш код в чужом процессе"
|
|
|
18.01.2011, 11:54
|
#172
|
|
|
|
Разведчик
|
Регистрация: 07.10.2010
Сообщений: 21
Популярность: 90
Сказал(а) спасибо: 14
Поблагодарили 15 раз(а) в 14 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
|
|
|
18.01.2011, 18:24
|
#173
|
|
|
|
Фельдмаршал
|
Регистрация: 13.08.2009
Сообщений: 1,004
Популярность: 25098
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 110
Поблагодарили 830 раз(а) в 395 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Я свой код не показываю, за редким мсключением.
Переменные в поток можно передать при создании потока (предварительно описав их в классе потока).
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Флудобот, Девизхак, OutFocusBot, OutFocusBot ver 3 (freepvp), PWMultiHack ver 3, AutoRespawn.
JD: JDMultiHack, JDFlooder, JDBot.
Статьи: Отключаем UAC, Ищем базовый адрес Perfect World, "Патчер памяти" или "Пишем флайхак", "Патчер памяти 2" или "Пишем Джампхак", "Поиск инжектов" или "Наш код в чужом процессе"
|
|
|
18.01.2011, 20:07
|
#174
|
|
|
|
Разведчик
|
Регистрация: 09.01.2011
Сообщений: 15
Популярность: 10
Сказал(а) спасибо: 19
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Уважаемый Dinmaite, СПС за помощь! Три дня разбирался пытался понять сею процедуру и самое главное как из нее передать PID выбранного окна, но все таки победил и разобрался. Сейчас читаю про потоки и инжек. Надеюсь вы и TBX1n дальше сможете помогать советами. СПС вам и этому сайту.
Непрощаюсь))))
Пошел читать
Добавлено через 10 часов 8 минут
Уважаемый Dinmaite. Пожалуйсто объясните как понять и записать в коде: GA +8 +24 +18 +[I*4] + (+0)^J +4: (I in [0..300])
что такое J и I всмысле какой у них тип?
Пожалуйсто помогите!
Последний раз редактировалось Njkzy80; 19.01.2011 в 06:15.
Причина: Добавлено сообщение
|
|
|
20.01.2011, 02:17
|
#175
|
|
|
|
Разведчик
|
Регистрация: 09.01.2011
Сообщений: 15
Популярность: 10
Сказал(а) спасибо: 19
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
|
Цитата: |
|
|
|
|
|
|
|
|
|
Запись BA +218 +8 +[I*4] + (+0)^J +4 для разных значений J расшифровывается как:
J = 0: BA +218 +8 +[I*4] +4
J = 1: BA +218 +8 +[I*4] +0 +4
J = 2: BA +218 +8 +[I*4] +0 +0 +4
J = 3: BA +218 +8 +[I*4] +0 +0 +0 +4
J = 4: BA +218 +8 +[I*4] +0 +0 +0 +0 +4
J = 5: ...
Продолжать, пока не будут найдены все элементы. Элементы неравномерно распределены по всему массиву. Количество элементов можно посмотреть по адресу, указанному в первой строке описания каждой структуры.
|
|
|
|
|
|
Пожалуйсто подскажите как написать цикл добавления нулей, ПРОШУ ВАС помогите начинающему!
Я написал вот таким образом:
hProcess:=OpenProcess(PROCESS_ALL_ACCESS, False, p);
ReadProcessMemory(hProcess, ptr(base_addr), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+$1C), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+$8), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+$24), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+$18), @ipbuft, sizeof(ipbuft), BytesCount);
for i:=0 to $300 do begin
ReadProcessMemory(hProcess, ptr(ipbuft+(I*4)), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+$4), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+$11c), @ipbuft, sizeof(ipbuft), BytesCount);
if buft<>0 then
begin
ReadProcessMemory(hProcess, ptr(ipbuft+$124), @ipbuft, sizeof(buft), BytesCount);
ListBox2.Items.Add(IntToStr(buft));
end;
end;
for i:=0 to $300 do begin
ReadProcessMemory(hProcess, ptr(ipbuft+(I*4)), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+0), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+$4), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+$11c), @ipbuft, sizeof(ipbuft), BytesCount);
if buft<>0 then
begin
ReadProcessMemory(hProcess, ptr(ipbuft+$124), @ipbuft, sizeof(buft), BytesCount);
ListBox2.Items.Add(IntToStr(buft));
end;
end;
и таким образом добовлял нули, дошел до 10 и все пусто
ПОМОГИТЕ!
|
|
|
20.01.2011, 23:31
|
#176
|
|
|
|
Фельдмаршал
|
Регистрация: 13.08.2009
Сообщений: 1,004
Популярность: 25098
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 110
Поблагодарили 830 раз(а) в 395 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Может быть там дальше ничего нет?
А может быть вам надо перейти на вторую страницу в памяти.
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Флудобот, Девизхак, OutFocusBot, OutFocusBot ver 3 (freepvp), PWMultiHack ver 3, AutoRespawn.
JD: JDMultiHack, JDFlooder, JDBot.
Статьи: Отключаем UAC, Ищем базовый адрес Perfect World, "Патчер памяти" или "Пишем флайхак", "Патчер памяти 2" или "Пишем Джампхак", "Поиск инжектов" или "Наш код в чужом процессе"
|
|
|
21.01.2011, 03:33
|
#177
|
|
|
|
Разведчик
|
Регистрация: 09.01.2011
Сообщений: 15
Популярность: 10
Сказал(а) спасибо: 19
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
В том то и проблема, я и прошу помощи что я никак немогу понять как перебирать страници в цикле, как к одному участку кода добовлять целую строчку еще и в цикле.
А разве я таким образом не перебираю страници?
Код:
for i:=0 to $300 do begin
ReadProcessMemory(hProcess, ptr(ipbuft+(I*4)), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+0), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+$4), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+$11c), @ipbuft, sizeof(ipbuft), BytesCount);
if buft<>0 then
begin
ReadProcessMemory(hProcess, ptr(ipbuft+$124), @ipbuft, sizeof(buft), BytesCount);
ListBox2.Items.Add(IntToStr(buft));
end;
for i:=0 to $300 do begin
ReadProcessMemory(hProcess, ptr(ipbuft+(I*4)), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+0), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+0), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+$4), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+$11c), @ipbuft, sizeof(ipbuft), BytesCount);
if buft<>0 then
begin
ReadProcessMemory(hProcess, ptr(ipbuft+$124), @ipbuft, sizeof(buft), BytesCount);
ListBox2.Items.Add(IntToStr(buft));
end;
for i:=0 to $300 do begin
ReadProcessMemory(hProcess, ptr(ipbuft+(I*4)), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+0), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+0), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+0), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+$4), @ipbuft, sizeof(ipbuft), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuft+$11c), @ipbuft, sizeof(ipbuft), BytesCount);
if buft<>0 then
begin
ReadProcessMemory(hProcess, ptr(ipbuft+$124), @ipbuft, sizeof(buft), BytesCount);
ListBox2.Items.Add(IntToStr(buft));
end;
Добавлено через 2 часа 19 минут
Да какже получить информацию о цели????? Людиии помогите!!! У мя уже башня съезжает
Последний раз редактировалось Njkzy80; 21.01.2011 в 05:52.
Причина: Добавлено сообщение
|
|
|
21.01.2011, 19:06
|
#178
|
|
|
|
Фельдмаршал
|
Регистрация: 13.08.2009
Сообщений: 1,004
Популярность: 25098
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 110
Поблагодарили 830 раз(а) в 395 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Информацию о цели можно получить двумя способами.
1. Получить ID цели, преобразовать ее в номер ячейки и взять информацию из массива.
2. Прочитать весь массив, найти в нем цель, считать данные.
Нет, таким образом ты не "листаешь страницы"
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Флудобот, Девизхак, OutFocusBot, OutFocusBot ver 3 (freepvp), PWMultiHack ver 3, AutoRespawn.
JD: JDMultiHack, JDFlooder, JDBot.
Статьи: Отключаем UAC, Ищем базовый адрес Perfect World, "Патчер памяти" или "Пишем флайхак", "Патчер памяти 2" или "Пишем Джампхак", "Поиск инжектов" или "Наш код в чужом процессе"
|
|
|
24.01.2011, 19:04
|
#179
|
|
|
|
Разведчик
|
Регистрация: 09.01.2011
Сообщений: 15
Популярность: 10
Сказал(а) спасибо: 19
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
|
Цитата: |
|
|
|
|
|
|
|
|
|
Нет, таким образом ты не "листаешь страницы"
|
|
|
|
|
|
Максимум что смог найти тока это
"""1-я страница [BA] +8 +20 +18 +[I*4] +4:
2-я страница [BA] +8 +20 +18 +[I*4] +0 +4:
3-я страница [BA] +8 +20 +18 +[I*4] +0 +0 +4:
4-я страница [BA] +8 +20 +18 +[I*4] +0 +0 +0+4:
5-я ...
И т.д.
Через while легко реализовывается.""""
Перерыл кучу книг и сайтов , Но как реализовать так и непонял. Прошу помогите!
И еще во всех инжектах у меня компилятор ругается на aPParams:PParams - что это?
неизвестный параметр пишет и на ТParams?
|
|
|
24.01.2011, 20:47
|
#180
|
|
|
|
Фельдмаршал
|
Регистрация: 13.08.2009
Сообщений: 1,004
Популярность: 25098
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 110
Поблагодарили 830 раз(а) в 395 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Я описал этот тип в своей теме.
Код уже приведен здесь, переписывать его времени у меня нет.
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Флудобот, Девизхак, OutFocusBot, OutFocusBot ver 3 (freepvp), PWMultiHack ver 3, AutoRespawn.
JD: JDMultiHack, JDFlooder, JDBot.
Статьи: Отключаем UAC, Ищем базовый адрес Perfect World, "Патчер памяти" или "Пишем флайхак", "Патчер памяти 2" или "Пишем Джампхак", "Поиск инжектов" или "Наш код в чужом процессе"
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 13:53.
|
|