|
"Патчер памяти" или "Пишем флайхак" [Delphi] - Разработка ПО для Perfect World - Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World |
10.11.2010, 19:04
|
#106
|
|
|
|
Главнокомандующий
|
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
777gamer777, как правило больше 4-5 страниц не бывает. А для остановки цикла просто выполняйте проверку: сравнение кол-ва структур которые вы нашли, с их конечным кол-вом.
Для кланов например: BA +218 +4 - кол-во кланов, которые в памяти вашего клиента.
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
|
|
|
Пользователь сказал cпасибо:
|
|
10.11.2010, 19:11
|
#107
|
|
|
|
Разведчик
|
Регистрация: 03.09.2009
Сообщений: 36
Популярность: 10
Сказал(а) спасибо: 23
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Хм, всмысле BA + $218 + $4 = количество элементов структуры кланов? тогда сделать будет нетрудно)
ААА до меня доперло)) т.е вы имели ввиду не до бесконечности брать J, а делать цикл с неизвестным количеством повторений? (while или repeat)
Кстати, i умножать на 4 или на $4?
Последний раз редактировалось 777gamer777; 10.11.2010 в 19:17.
|
|
|
10.11.2010, 19:22
|
#108
|
|
|
|
Главнокомандующий
|
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
777gamer777, 4 дексе = 4 в хексе.
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
|
|
|
Пользователь сказал cпасибо:
|
|
10.11.2010, 19:48
|
#109
|
|
|
|
Разведчик
|
Регистрация: 03.09.2009
Сообщений: 36
Популярность: 10
Сказал(а) спасибо: 23
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
А инжекты обязательно писать на встроенном ассемблере или моджно занесением данных в ячейку памяти?
|
|
|
10.11.2010, 19:51
|
#110
|
|
|
|
Главнокомандующий
|
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
777gamer777, смысл инжекта в том, чтобы записать свой код в память процесса клиента пв и запустить его на выполнение.
Но инжекты не от балды пишутся, а берется именно тот кусок кода из ехе клиента, который подготавливает данные и вызывает функцию с параметрами, поэтому тут нет альтернатив, кроме как inline asm.
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
|
|
|
Пользователь сказал cпасибо:
|
|
10.11.2010, 19:54
|
#111
|
|
|
|
Разведчик
|
Регистрация: 03.09.2009
Сообщений: 36
Популярность: 10
Сказал(а) спасибо: 23
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
Я вот думаю, можно ли написать инжект для 100% получения 1-5кк из коробочки (менять и замораживать значения перед юзаньем или как-то так)
|
|
|
10.11.2010, 20:08
|
#112
|
|
|
|
Главнокомандующий
|
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
777gamer777, нет нельзя.
Максимум что можно в данном случаи это написать инжект на использование предмета в определенной ячейке инвентаря(такой инжект уже давно известен)
После выполнения инжекта, клиент посылает соответствующий пакет серверу (на использование предмета), сервер сам обрабатывает все и присылает ответ.
Соответственно обмануть его и заставить дать 5кк возможности нет.
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
|
|
|
11.11.2010, 16:15
|
#113
|
|
|
|
Разведчик
|
Регистрация: 03.09.2009
Сообщений: 36
Популярность: 10
Сказал(а) спасибо: 23
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
И еще вопрос, надеюсь последний: в структуре элементы мобов идут по порядку или вразброс?
|
|
|
11.11.2010, 16:30
|
#114
|
|
|
|
Главнокомандующий
|
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
777gamer777, как записал в память так и хранит для поиска все равно надо просмотреть всю структуру.
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
|
|
|
Пользователь сказал cпасибо:
|
|
11.11.2010, 16:31
|
#115
|
|
|
|
Разведчик
|
Регистрация: 03.09.2009
Сообщений: 36
Популярность: 10
Сказал(а) спасибо: 23
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
ясно, спс, а то я посмотрел 1 - 9 страницу - везде 0
|
|
|
11.11.2010, 16:36
|
#116
|
|
|
|
Главнокомандующий
|
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
777gamer777, значит не правильно что-то делаешь. Обычно все находится до 5ой страницы.
Только код лучше сюда не кидать, за вас его писать никто не будет, да и я на C# пишу
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
|
|
|
11.11.2010, 17:13
|
#117
|
|
|
|
Разведчик
|
Регистрация: 03.09.2009
Сообщений: 36
Популярность: 10
Сказал(а) спасибо: 23
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
а i надо брать от 0 до 300 или от $0 до $ 300?
|
|
|
11.11.2010, 17:19
|
#118
|
|
|
|
Главнокомандующий
|
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
777gamer777, До 0x300, следовательно 768.
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
|
|
|
11.11.2010, 21:57
|
#119
|
|
|
|
Разведчик
|
Регистрация: 03.09.2009
Сообщений: 36
Популярность: 10
Сказал(а) спасибо: 23
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
procedure TForm1.Button1Click(Sender: TObject);
var wnd:HWND;bytescount,pid,ipbuf,hprocess : dword;kolvo,i,j,sum,lvl:integer;
const ba=$009C0E6C;
ga=ba+$1c;
begin
wnd:=findwindow(nil,'Perfect World');
GetWindowThreadProcessId(wnd,@pid);
hprocess:=openprocess(PROCESS_ALL_ACCESS, False, PID);
readprocessmemory(hprocess,ptr(ba),@ipbuf,sizeof(i pbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$1c),@ipbuf,s izeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$8),@ipbuf,si zeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$20),@ipbuf,s izeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$14),@sum,siz eof(sum),bytescount);
kolvo:=0;
j:=0;
while kolvo<>sum do //пока не найдем все элементы
begin
for i:=0 to 768 do
begin
lvl:=0;
readprocessmemory(hprocess,ptr(ba),@ipbuf,sizeof(i pbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$1c),@ipbuf,s izeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$8),@ipbuf,si zeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$20),@ipbuf,s izeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$18),@ipbuf,s izeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+(i*4)),@ipbuf ,sizeof(ipbuf),bytescount);
if j>0 then
begin
for j :=1 to j do
readprocessmemory(hprocess,ptr(ipbuf+$0),@ipbuf,si zeof(ipbuf),bytescount);
end;
readprocessmemory(hprocess,ptr(ipbuf+$4),@ipbuf,si zeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$464),@lvl,si zeof(lvl),bytescount);
if lvl>0 then
begin
listbox1.Items.Add(inttostr(lvl));//вывод элементов
kolvo:=kolvo+1;//если нашел элемент то прибаляем в количество
end;
end;
inc(j);
end;
end;
//чет не работает, я хочу вывести все лвлы, а оно зацикливается((
|
|
|
11.11.2010, 23:45
|
#120
|
|
|
|
Фельдмаршал
|
Регистрация: 13.08.2009
Сообщений: 1,004
Популярность: 25098
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 110
Поблагодарили 830 раз(а) в 395 сообщениях
|
Re: "Патчер памяти" или "Пишем флайхак" [Delphi]
ga НЕ РАВНО ba+$1c;
Пиши код красиво, и грамотно.
Пытайся использовать как можно меньше памяти, это полезно.
Всегда освобождай то что вызвал.
Не забывай что при чтении памяти может произойти ошибка.
Проверки нужно делать там, где это нужно.
Домашнее задание:
Не стоит всегда находить адрес структуры, сделай это 1 раз;
Лвл клиент получает только после того, как персонаж побывал в таргете у нас;
Проверяй наличие структуры а не данных в структуре;
Код:
procedure TForm1.Button1Click(Sender: TObject);
const
ba=$009C0E6C;
var
bytescount,pid,ipbuf,hprocess:dword;
kolvo,i,j,sum,lvl:integer;
begin
GetWindowThreadProcessId(findwindow(nil,'Perfect World'),@pid);
hprocess:=openprocess(PROCESS_ALL_ACCESS, False, PID);
if hProcess<>0 then
try
readprocessmemory(hprocess,ptr(ba),@ipbuf,sizeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$1c),@ipbuf,sizeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$8),@ipbuf,sizeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$20),@ipbuf,sizeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$14),@sum,sizeof(sum),bytescount);
kolvo:=0;
j:=0;
while kolvo<>sum do
begin
for i:=0 to 768 do
begin
lvl:=0;
readprocessmemory(hprocess,ptr(ba),@ipbuf,sizeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$1c),@ipbuf,sizeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$8),@ipbuf,sizeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$20),@ipbuf,sizeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$18),@ipbuf,sizeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+(i*4)),@ipbuf,sizeof(ipbuf),bytescount);
for j :=1 to j do
readprocessmemory(hprocess,ptr(ipbuf+$0),@ipbuf,sizeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$4),@ipbuf,sizeof(ipbuf),bytescount);
readprocessmemory(hprocess,ptr(ipbuf+$464),@lvl,sizeof(lvl),bytescount);
if lvl>0 then
begin
listbox1.Items.Add(inttostr(lvl));
kolvo:=kolvo+1;
end;
end;
inc(j);
end;
finally
CloseHandle(hProcess);
end;
end;
И тогда все будет хорошо и красиво.
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Флудобот, Девизхак, OutFocusBot, OutFocusBot ver 3 (freepvp), PWMultiHack ver 3, AutoRespawn.
JD: JDMultiHack, JDFlooder, JDBot.
Статьи: Отключаем UAC, Ищем базовый адрес Perfect World, "Патчер памяти" или "Пишем флайхак", "Патчер памяти 2" или "Пишем Джампхак", "Поиск инжектов" или "Наш код в чужом процессе"
Последний раз редактировалось Dinmaite; 11.11.2010 в 23:49.
|
|
|
Пользователь сказал cпасибо:
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 06:15.
|
|