Что закрытие окна(диалоги,торги, окно перса, все остальное), что вывод текста... не работает ни одно ни другое... выбивает клиент, что и как не менял... не знаю как там у Вас на VB.Net, но у нас на delphi ничерта не робит)
________________ HellD пишет отсюда, потому что больше ему писать неоткуда ((
Ни один человек на форуме так и не сказал, а работают ли у него другие инжекты? Прыжок например, или еще что то?
________________
-------------------------------------------- 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 работающий с включенной игрой.
--------------------------------------------
Ну значит нужно взять готовый инжект и изменить его под выложенный мною асм.
Я не знаю как должны выглядеть точно функции на Delphi, потому что Delphi не знаю. Но знаю какой должен быть код на ассемблере. Его я выложил и выложил свое видение функции на Делфи (по аналогии с другими инжектами на делфи), ошибки в синтаксисе Делфи я просил помочь найти участников форума (особо никто не откликнулся). Если функции - не правильные - исправьте их в соответствии с синтаксисом Делфи, взяв мой асм.
Функция "Принт" на делфи может и не работать, потому что, например для отображения текста на ВБ.Нет, текст нужно сначала помещать куда то в память, а в функцию передавать уже указатель на эту строку в памяти. Но закрытие окна - должно работать не зависимо ни от чего, если ее правильно вызвать.
Если не сложно - пришли в личку или выложи тут код, как у тебя вызывается инжект прыжка, только полностью(делфи я ж не знаю и не смогу дописать ничего или смогу, но с ошибками), чтобы я смог запустить этот код у себя.
________________
-------------------------------------------- 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 работающий с включенной игрой.
--------------------------------------------
Сори не стал особо наводить красоту в коде, быстренько настрочил...
Button1 - коннектит к окну с хэндлом указанным в edit1
Button2 - отправляет перса в координаты 0,0,0 = все работает.. .ну по крайне мере бежать начинает ))
Button3 - закрывает окно характеристик персонажа(ну вернее должно было бы) = вылет клиента
Button4 - Должно выводить текст Perfect World = вылет клиента
Button5 - инжект прыжка = работает
Инжекты в том виде что и тут.. я прост не помню уже что менял и как ток не пробовал... поэтому свои перековерканные и все равно не рабочие кидать не стал, взял от сюда... во вложении zip c исходником проекта на делфе и скомпилированной исполняшкой...
И что б его... как тут спойлер всунуть? )) а то так исходник кинуть слишком громоздко ((
________________ HellD пишет отсюда, потому что больше ему писать неоткуда ((
Инжекты в том виде что и тут.. я прост не помню уже что менял и как ток не пробовал... поэтому свои перековерканные и все равно не рабочие кидать не стал, взял от сюда... во вложении zip c исходником проекта на делфе и скомпилированной исполняшкой...
Спасибо. Дома проверю и, если получится исправить, выложу тут.
Добавлено через 10 часов 1 минуту
Итак, 100500 спасибо Dinmaite, за пояснения как работать с asm на Delphi.
И наконец то рабочий вариант:
================================================== ===========================
Функция Закрытия окна на Delphi.
================================================== ===========================
Функция для внедрения:
procedure WinClose(WIN_OFFSET:DWord);
var aParams:TParams;
begin
aParams.Param1:=WIN_OFFSET; //Смещение окна из списка
InjectFunc(hProcess,@WinCloseCall,@aParams,SizeOf(aParams));
end;
Вызов:
Код:
WinClose($40C); //Закрыть окно Торговли и Ремоната.
Список смещений для передачи в функцию:
Код:
0x2B8 Действия
0x2C0 Игроки и группы
0x2C4 Служба поддержки
0x314 Характеристики персонажа
0x32C Ремонт
0x36C Призыв духа
0x3E8 Помощь
0x40C Инвентарь и Окно Торговли и Ремонта
0x428 Диалог с NPC
0x438 Домашние животные
0x458 Окно алхимика
0x468 Панель 1-9
0x470 Горячие клавиши
0x4B0 Настройки
0x4C4 Умения
0x50C Системная панель
0x51C Задания
Исходники на Delphi можно скачать тут [Ссылки могут видеть только зарегистрированные пользователи. ]
Функцию Print ремонтировать не буду, т.к. не знаю как это делать на Delphi и не считаю ее существенной, чтобы узнавать.
________________
-------------------------------------------- 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; 29.02.2012 в 23:13.
Причина: Добавлено сообщение
Anzorias, каких ещё кораллов? Ладно-ладно, я-то ещё играл на этой фришке и знаю, что это такое, но мне кажется, что мало кому понятно, в чём соль.
Короче, бежишь по инвентарю и проверяешь TypeId предметов.
Адреса и смещения:
BA = B27A04
PlayerStruct = BA +1C +34 // начало структуры игрока
Inventory = PlayerStruct +CAC // структура инвентаря
SlotCount = Inventory +10 // количество ячеек инвентаря
ItemsStart = Inventory +C // начало структуры самих предметов
ItemX_Start = ItemsStart +X*4 (X in [0..SlotCount]) // начало структуры предмета, лежащего в ячейке X
Если в ItemX_Start лежит 0, то в ячейке нет предмета. В противном случае можно посмотреть его TypeId:
ItemX_TypeId = ItemX_Start +8
Этот TypeId соответствует типу, взятому из базы pwdatabase.com, поэтому не составит труда получить их из этой базы. А если составит, то проверить можно через Cheat Engine, составив цепочку оффсетов по описанным выше данным.
Если ItemX_TypeId совпадёт с Id кораллов, то формируешь пакет на использование этого предмета и отсылаешь его серверу.
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
а как можно пользоваться с пакетами полученными packetlistener
точнее вот 2 пакета
280000010000276F0000 -
280000010100896F0000
пакеты для открытия коробок
куда нуна прописать пакеты в вышеуказанных примерах (инжектах) чтоб пользоваться в delphi
заранее спасибо!
а как можно пользоваться с пакетами полученными packetlistener
точнее вот 2 пакета
280000010000276F0000 -
280000010100896F0000
пакеты для открытия коробок
куда нуна прописать пакеты в вышеуказанных примерах (инжектах) чтоб пользоваться в delphi
заранее спасибо!
В функцию отправки пакетов.
________________
-------------------------------------------- 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 работающий с включенной игрой.
--------------------------------------------
Может кто-нибудь поделиться инжектами для пета? В частности, атака, использование скилла, перевод режима или хотябы адреса инжектов. А дальше сам допилю.
Или может кто-нибудь поможет разобраться со следующим кодом?
Если кусок кода после жёлтого перехода проигнорировать с помощью замены на JMP, в клиенте происходит замораживание кнопок "пет, к ноге" и "пет, стой где стоишь" Следовательно в этом куске происходит смена данных режимов. Там происходит только запись в память каких то значений по адресу, находящемуся в EDI, я так понимаю это указатель на какую-то структуру.
В среднем вызове функции параметр Arg2 - какое-то значение ( E - при нажатии "следовать", "на месте" или перевода режима агрессивности, B - при нажатии атаки, F - при нажатии на любой скилл пета,) Arg1 - тут наверное указатель на какую-то структуру.
Структуру пета, или хз на что ещё. Может кто-нибудь помочь разобраться с этим если не лень? В идеале хотелось бы добиться полного управления поведением петом через инжекты, но буду рад, если получится хотябы простая атака.
procedure PacketCall(aPParams:PParams); stdcall;
var
CallAddress,pPacketointer;
LenWord;
begin
CallAddress:=Pointer($0060E310); // Старый адрес - $005D7C30
Len:=aPParams^.Param1;
pPacket:=@aPParams^.Packet;
asm
pushad
mov ecx, dword ptr [PW_BASE_ADDRESS]
mov ecx, dword ptr [ecx+$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('$'+bytecode[i*2+1]+bytecode[i*2+2]);
end;
procedure Packet(Packet: string);
var
aParams: TParams
begin
aParams := $280000010000276F0000;
StrToByte(Packet,aParams);
InjectFunc(ProcessID,@PacketCall,@aParams,sizeof(a Params));
или как?) плизз помогите
end;
Добавлено через 2 минуты
у меня почему та при прочтении памяти с помощью OLLYDBG не выходит /Arg1 и \elementclient.008798F0
когда делаю по гайду... у меня последная версия OLLYDBG 1.10
но таргет к мобу прошел....
Последний раз редактировалось rufat2005; 30.03.2012 в 11:34.
Причина: Добавлено сообщение
0x2B8 Действия
0x2C0 Игроки и группы
0x2C4 Служба поддержки
0x314 Характеристики персонажа
0x32C Ремонт
0x36C Призыв духа
0x3E8 Помощь
0x40C Инвентарь и Окно Торговли и Ремонта
0x428 Диалог с NPC
0x438 Домашние животные
0x458 Окно алхимика
0x468 Панель 1-9
0x470 Горячие клавиши
0x4B0 Настройки
0x4C4 Умения
0x50C Системная панель
0x51C Задания
как получить смещения других окон? В частности окна, которое появляется при установке кота.
Цитата:
Сообщение от krukovis
PW_BTN_CLOSE=$ACC3BC;
как получить адрес других кнопок?
Последний раз редактировалось gurin; 01.04.2012 в 03:22.
Причина: Добавлено сообщение