Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация

Как пройти по координатам?

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 21.02.2018, 20:58   #1
 Разведчик
Аватар для НУ-ПОГОДИ
 
НУ-ПОГОДИ никому не известный тип
Регистрация: 08.09.2017
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
Post Как пройти по координатам?

procedure WalkCall(aPParams: PParams); Stdcall;
var
BaseAddr, CallAddress1,CallAddress2,CallAddress3:Pointer;
x,y,z:single;
flyingWORD;
begin
BaseAddr := Pointer(aPParams^.Param1);
CallAddress1:= Pointer(aPParams^.Param2);
CallAddress2:= Pointer(aPParams^.Param3);
CallAddress3:= Pointer(aPParams^.Param4);
x:=aPParams^.Param7;
y:=aPParams^.Param8;
z:=aPParams^.Param9;
flying:=$81C;
asm
pushad
mov eax, BaseAddr
mov eax, dword ptr [eax]
mov eax, dword ptr [eax+$1C]
mov edi, dword ptr [eax+$28] //20
mov ecx, dword ptr [edi+$14F0]
push 1
call CallAddress1
lea edx, dword ptr [esp+$1C] //18
mov esi, eax
push edx
push flying
mov ecx, esi
call CallAddress2
mov ecx, dword ptr [edi+$14F0]
mov eax, x
mov dword ptr[esi+$20], eax
mov eax, z
mov dword ptr[esi+$24], eax
mov eax, y
mov dword ptr[esi+$28], eax
push 0
push esi
push 1
call CallAddress3
popad
end;
end;

function Walk(x,y,z: single): Boolean;
var
aParams: TParams;
begin

aParams.Param5:=0;

aParams.Param1 := PW_BASE_ADDRESS;
aParams.Param2 := walkx_inject_addr;
aParams.Param3 := walky_inject_addr;
aParams.Param4 := walkz_inject_addr;
aParams.Param7:=x;
aParams.Param8:=y;
aParams.Param9:=z;
Result := (aParams.Param1 <> 0) and (aParams.Param2 <> 0) and
(aParams.Param3 <> 0) and (aParams.Param4 <> 0);
if Result then
InjectFunc(hprocess,@WalkCall, @aParams, SizeOf(aParams));
end;



Крашится клиент, если есть у кого код на делфи (рабочий), можете предоставить?
  Ответить с цитированием
Старый 22.02.2018, 00:17   #2
 Разведчик
Аватар для growl13
 
growl13 никому не известный тип
Регистрация: 06.02.2013
Сообщений: 24
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 3 раз(а) в 2 сообщениях
 
По умолчанию Re: Как пройти по координатам?

Если ты этот код на руофе пытаешься запустить, то дело не в инжекте, а в устаревших офсетах. Если не руоф, то желательно указывать версию клиента.

П.С. С какого перепугу флаг полета 3х значное hex число?
0 - пешком, 1 - на полете
  Ответить с цитированием
Старый 22.02.2018, 14:24   #3
 Разведчик
Аватар для НУ-ПОГОДИ
 
НУ-ПОГОДИ никому не известный тип
Регистрация: 08.09.2017
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Как пройти по координатам?

Изначально я ставил на ноль, но клиент крашился и я перебирал все подряд, это РУОФФ
Офсеты BA верный, затем взял координаты с темки, но они могут быть не верными, как найти офсеты координат?
И еще, куда сувать WalkMode офсет?
  Ответить с цитированием
Старый 23.02.2018, 09:14   #4
 Разведчик
Аватар для growl13
 
growl13 никому не известный тип
Регистрация: 06.02.2013
Сообщений: 24
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 3 раз(а) в 2 сообщениях
 
По умолчанию Re: Как пройти по координатам?

Офсетам которые у тебя в инжекте уже больше года.
Поменяй и должно заработать, при условии что у тебя адреса функций правильные.

Код:
mov eax, BaseAddr
mov eax, dword ptr [eax]
mov eax, dword ptr [eax+$1C]
mov edi, dword ptr [eax+$28]    //должно быть 34
mov ecx, dword ptr [edi+$14F0]  //должно быть 16E4
push 1
call CallAddress1
lea edx, dword ptr [esp+$1C]   //должно быть 20
mov esi, eax
push edx
push flying
mov ecx, esi
call CallAddress2
mov ecx, dword ptr [edi+$14F0]  //должно быть 16E4
mov eax, x
mov dword ptr[esi+$20], eax
mov eax, z
mov dword ptr[esi+$24], eax
mov eax, y
mov dword ptr[esi+$28], eax
push 0
push esi
push 1
call CallAddress3
popad
end;
end;
П.С. А зачем в инжекте ходьбы WalkMode офсет?

Последний раз редактировалось growl13; 23.02.2018 в 09:50.
  Ответить с цитированием
Старый 23.02.2018, 16:03   #5
 Разведчик
Аватар для НУ-ПОГОДИ
 
НУ-ПОГОДИ никому не известный тип
Регистрация: 08.09.2017
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
Post Re: Как пройти по координатам?

Цитата:
Сообщение от growl13Посмотреть сообщение
Офсетам которые у тебя в инжекте уже больше года.
Поменяй и должно заработать, при условии что у тебя адреса функций правильные.

Код:
mov eax, BaseAddr
mov eax, dword ptr [eax]
mov eax, dword ptr [eax+$1C]
mov edi, dword ptr [eax+$28]    //должно быть 34
mov ecx, dword ptr [edi+$14F0]  //должно быть 16E4
push 1
call CallAddress1
lea edx, dword ptr [esp+$1C]   //должно быть 20
mov esi, eax
push edx
push flying
mov ecx, esi
call CallAddress2
mov ecx, dword ptr [edi+$14F0]  //должно быть 16E4
mov eax, x
mov dword ptr[esi+$20], eax
mov eax, z
mov dword ptr[esi+$24], eax
mov eax, y
mov dword ptr[esi+$28], eax
push 0
push esi
push 1
call CallAddress3
popad
end;
end;
П.С. А зачем в инжекте ходьбы WalkMode офсет?

Просто не разу не писал софты для пв, поэтому не шибко шарю.


Поменял на то как ты сказал, все равно крашится
PW_BASE_ADDRESS = $00E7D398;
PackCall = $00843ad0;


Вот исход, можешь поглядеть что не так?

[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 23.02.2018, 22:23   #6
 Разведчик
Аватар для dvamaster
 
dvamaster никому не известный тип
Регистрация: 12.08.2012
Сообщений: 26
Популярность: 10
Сказал(а) спасибо: 1
Поблагодарили 5 раз(а) в 2 сообщениях
 
По умолчанию Re: Как пройти по координатам?

Не уверен:
Код:
flying:WORD;
а ida декомпилит как DWORD
Код:
.text:004EC720 sub_4EC720      proc near               ; CODE XREF: sub_4BF860+9F↑p
.text:004EC720                                         ; sub_4BF860+136↑p ...
.text:004EC720
.text:004EC720 var_24          = dword ptr -24h
.text:004EC720 var_20          = dword ptr -20h
.text:004EC720 var_1C          = dword ptr -1Ch
.text:004EC720 var_18          = dword ptr -18h
.text:004EC720 var_14          = dword ptr -14h
.text:004EC720 var_10          = dword ptr -10h
.text:004EC720 var_C           = byte ptr -0Ch
.text:004EC720 arg_0           = dword ptr  4
.text:004EC720 arg_4           = dword ptr  8
Код:
void __thiscall sub_4EC720(int this, int a2, float *a3)
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 24.02.2018, 01:18   #7
 Разведчик
Аватар для НУ-ПОГОДИ
 
НУ-ПОГОДИ никому не известный тип
Регистрация: 08.09.2017
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Как пройти по координатам?

Цитата:
Сообщение от dvamasterПосмотреть сообщение
Не уверен:
Код:
flying:WORD;
а ida декомпилит как DWORD
Код:
.text:004EC720 sub_4EC720      proc near               ; CODE XREF: sub_4BF860+9F↑p
.text:004EC720                                         ; sub_4BF860+136↑p ...
.text:004EC720
.text:004EC720 var_24          = dword ptr -24h
.text:004EC720 var_20          = dword ptr -20h
.text:004EC720 var_1C          = dword ptr -1Ch
.text:004EC720 var_18          = dword ptr -18h
.text:004EC720 var_14          = dword ptr -14h
.text:004EC720 var_10          = dword ptr -10h
.text:004EC720 var_C           = byte ptr -0Ch
.text:004EC720 arg_0           = dword ptr  4
.text:004EC720 arg_4           = dword ptr  8
Код:
void __thiscall sub_4EC720(int this, int a2, float *a3)



Тут дворд, просто смайл d сожрал
  Ответить с цитированием
Старый 24.02.2018, 18:51   #8
 Разведчик
Аватар для dvamaster
 
dvamaster никому не известный тип
Регистрация: 12.08.2012
Сообщений: 26
Популярность: 10
Сказал(а) спасибо: 1
Поблагодарили 5 раз(а) в 2 сообщениях
 
По умолчанию Re: Как пройти по координатам?

BaseAddr := Pointer(PW_BASE_ADDRESS);

я испытал константы в делфи, они компилируются как переменные (в отличие от C), компилятор просто выдает ошибку при попытке присвоить ей значение, но дает записать по указателю на константу.

тем самым у тебя в чужом процессе нет адреса константы или он не тот.

для теста вместо константы подставь число и попробуй, если сработает, попробуй в TParams добавить поле для PW_BASE_ADDRESS.
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось dvamaster; 24.02.2018 в 18:54.
  Ответить с цитированием
Старый 25.02.2018, 12:23   #9
 Разведчик
Аватар для Luciferkox
 
Luciferkox никому не известный тип
Регистрация: 25.02.2018
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Как пройти по координатам?

А можно пожалуйста, это же, только на Autoit?)
  Ответить с цитированием
Старый 28.02.2018, 00:33   #10
 Разведчик
Аватар для growl13
 
growl13 никому не известный тип
Регистрация: 06.02.2013
Сообщений: 24
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 3 раз(а) в 2 сообщениях
 
По умолчанию Re: Как пройти по координатам?

Дак у тебя ж еще и некоторые данные не в те регистры записыватся
Вот тебе короч код инжекта который использую я.
Красным выделил где у тебя неправильно.
Можешь брать этот или поменять в своем регистры на правильные, должно и так и так работать(при условии что у тебя кроме асма все правильно).

Код:
pushad
mov eax,[BaseAddr]
mov eax,[eax+1C]
mov esi,[eax+34]
mov ecx,[esi+000016E4]
push 01
call MoveAddress1
lea edx,[esp+20]
mov ebx,eax
push edx
push Flying
mov ecx,ebx
call MoveAddress2
mov ecx,[esi+000016E4]
mov [ebx+20], x
mov [ebx+24], z
mov [ebx+28], y
push 00
push ebx
push 01
call MoveAddress3
popad
ret
  Ответить с цитированием
Старый 28.02.2018, 00:45   #11
 Разведчик
Аватар для НУ-ПОГОДИ
 
НУ-ПОГОДИ никому не известный тип
Регистрация: 08.09.2017
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
Smile Re: Как пройти по координатам?

Цитата:
Сообщение от growl13Посмотреть сообщение
Дак у тебя ж еще и некоторые данные не в те регистры записыватся
Вот тебе короч код инжекта который использую я.
Красным выделил где у тебя неправильно.
Можешь брать этот или поменять в своем регистры на правильные, должно и так и так работать(при условии что у тебя кроме асма все правильно).

Код:
pushad
mov eax,[BaseAddr]
mov eax,[eax+1C]
mov esi,[eax+34]
mov ecx,[esi+000016E4]
push 01
call MoveAddress1
lea edx,[esp+20]
mov ebx,eax
push edx
push Flying
mov ecx,ebx
call MoveAddress2
mov ecx,[esi+000016E4]
mov [ebx+20], x
mov [ebx+24], z
mov [ebx+28], y
push 00
push ebx
push 01
call MoveAddress3
popad
ret

Мой код тоже работает, бегает.

Дай свой контакт, вк\скайп\аську , что угодно, есть пару вопросов)
  Ответить с цитированием
Старый 28.02.2018, 01:06   #12
 Разведчик
Аватар для growl13
 
growl13 никому не известный тип
Регистрация: 06.02.2013
Сообщений: 24
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 3 раз(а) в 2 сообщениях
 
По умолчанию Re: Как пройти по координатам?

дак на жуке в личку пиши да и все
  Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Движение по координатам (C#) phoenixusa Общение разработчиков 3 14.01.2014 21:03
[Баг] ТП по координатам l2Phx frost987 Баги и читы Lineage 2 2 12.05.2013 19:58
[Помогите!] передвижение по координатам Meg(0) Общение разработчиков 4 24.05.2012 16:22
[Уязвимость] Дюп через RF WTF по координатам Untro Rising Force Online 30 09.02.2012 19:13

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 11:28.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net