|
You last visited: Today at 14:38
Advertisement
Rus. server
Discussion on Rus. server within the Perfect World forum part of the MMORPGs category.
12/02/2009, 06:45
|
#781
|
elite*gold: 0
Join Date: Nov 2009
Posts: 96
Received Thanks: 31
|
Вот кто не пробывал еще - поднятие камеры координатами перса (по XY тоже работает)
$Z = ($Z+5) * 10.0 ; число 5 это на сколько подняться можно хоть за облака
_MemoryPointerWrite($BASE, $PROCESS, $OFS_Z, $Z, "float")
ControlFocus($CLIENT, "", "")
а потом после любого движения перса она опять на месте - удобно использовать для визуального эффекта Сканирования территории .. или посмотреть на низких ЛВЛ как там на верху, процесс этот не виден серверу - перс на месте ..
самое интересное что можно камеру переместить в любую точку карты, только объектов там не будет - одни пейзажи дома .. города и конечно если не правильно поставите высоту то очутитесь (камерой) внутри горы например ..
|
|
|
12/02/2009, 07:37
|
#782
|
elite*gold: 0
Join Date: Nov 2009
Posts: 96
Received Thanks: 31
|
полюБому эту игру инопланетяне придумали, коэффициенты движений, горизонтальные углы затухания -(fhorizontalfadestartangle) ..))
|
|
|
12/02/2009, 09:17
|
#783
|
elite*gold: 0
Join Date: Jan 2009
Posts: 137
Received Thanks: 19
|
Quote:
Originally Posted by Biga73
выражусь еще проще, как найти эти гадские адреса по которым происходит инжект ? дело то в них все состоит, и копай хоть марсианские форумы , без адресов дела не будет... покажите мне как найти хоть один адрес для инжекта и я вам найду ВСЕ остальные !
|
Есть один сложный, но безошибочный метод. Берешь OllyDBG. Открываешь в нем клиента. Патчишь на JMP место, где он требует запуск из ланчера. Заходишь в игру. Проставляешь в начале процедур брейкпоинты (мнооого их - но мы же не ищем легких путей). Тыркаешь в кнопульки в игре - отлавливаешь адреса брейков. За пару суток все адреса пройти можно.
|
|
|
12/02/2009, 11:18
|
#784
|
elite*gold: 0
Join Date: Jan 2009
Posts: 137
Received Thanks: 19
|
Quote:
Originally Posted by origmas
Вот кто не пробывал еще - поднятие камеры координатами перса (по XY тоже работает)
$Z = ($Z+5) * 10.0 ; число 5 это на сколько подняться можно хоть за облака
_MemoryPointerWrite($BASE, $PROCESS, $OFS_Z, $Z, "float")
ControlFocus($CLIENT, "", "")
а потом после любого движения перса она опять на месте - удобно использовать для визуального эффекта Сканирования территории .. или посмотреть на низких ЛВЛ как там на верху, процесс этот не виден серверу - перс на месте ..
самое интересное что можно камеру переместить в любую точку карты, только объектов там не будет - одни пейзажи дома .. города и конечно если не правильно поставите высоту то очутитесь (камерой) внутри горы например ..
|
Ну не обязательно ж "потом после любого движения перса она опять на месте". Есть параметр - максимальная дистанция камеры - поставь ему мульён и не будет возвращаться. Подсмотри поинтер у смурфина, например, или в любом другом ZoomHack'е.
|
|
|
12/02/2009, 11:54
|
#785
|
elite*gold: 0
Join Date: Jan 2009
Posts: 137
Received Thanks: 19
|
Судя по тому, что ты написал - ты просто не в ту степь роешь... Хотя... Я же твоего кода не видел )
Вот это работает на забугорском сервере:
Code:
W2I_Walk_Call1 =$0045DE80;//45DE30;//45DC80 45DD60
W2I_Walk_Call2 =$004618E0;//461880;//461740 461810
W2I_Walk_Call3 =$0045E280;//45E230;//45E080 45E160
procedure WalkCall(aPParams:PParams); Stdcall;
var
Address1:pointer;
Address2:pointer;
Address3:pointer;
x,y,z:single;
fly: Cardinal;
begin
Address1:=Pointer(W2I_Walk_Call1);
Address2:=pointer(W2I_Walk_Call2);
Address3:=pointer(W2I_Walk_Call3);
x:=aPParams^.Param3;
y:=aPParams^.Param4;
z:=aPParams^.Param5;
//if r_POSITION1=0 then
//fly:=0
//else
//fly:=1;
asm
pushad
mov eax, dword ptr [W2I_BASE_Call] // 92D534 929174
mov eax, dword ptr [eax+$1C]
mov esi, dword ptr [eax+$20]
mov ecx, dword ptr [esi+$BD4] //Bcc+8=BD4
push 1
call Address1
mov edi, eax
lea eax, dword ptr [esp+$18]
push eax
push 0 //r_POSITION1 //0µШГж 1їХЦР
mov ecx, edi
call Address2
mov ecx, dword ptr [esi+$BD4] //Bcc+8=BD4
push 0
push 1
push edi
push 1
call Address3
mov eax, dword ptr [W2I_BASE_Call] // 92D534 00929174 929174
mov eax, dword ptr [eax+$1C]
mov eax, dword ptr [eax+$20]
mov eax, dword ptr [eax+$BD4] //Bcc+8=BD4
mov eax, dword ptr [eax+$30]
mov ecx, dword ptr [eax+4]
mov eax, x
mov dword ptr[ecx+$20], eax
mov eax, z
mov dword ptr[ecx+$24], eax
mov eax, y
mov dword ptr[ecx+$28], eax
popad
end;
end;
procedure TMan.WalkTo(x, y, z: single);
var
aParams : TParams;
aParamsSize: DWORD;
begin
aParams.Param3:=x;
aParams.Param4:=y;
aParams.Param5:=z;
aParamsSize:=SizeOf(aParams);
if GHwnd<>0 then
begin
injectfunc(@WalkCall, @aParams, aParamsSize);
end;
end;
Есть очень явное подозрение, что нужно найти W2I_Walk_Call1, 2, 3 для нашего и заработает ) Хотя не факт... Нет времени рыть...
|
|
|
12/02/2009, 11:58
|
#786
|
elite*gold: 0
Join Date: Jan 2009
Posts: 137
Received Thanks: 19
|
Объясню в чем дело... Из кода явно видно, что для правильного смещения нужно сначала вызвать подпрограммы, которые скажут серваку, что перс сдвинулся (call Address1,2,3). А потом уже в клиенте переписать значения (mov dword ptr[ecx+$20], eax) (зачем? сервак их и так клиенту вернет и сдвинет его...)
|
|
|
12/02/2009, 13:25
|
#787
|
elite*gold: 0
Join Date: Nov 2009
Posts: 96
Received Thanks: 31
|
и так хорошо и так не плохо, а че-то не так ..
Вот наверное не надо незапланированные действия по ходу сценария вставлять - это только запутает и клиент и сервер и нас - уж очень там много вызовов, проверок состояний, передача прием серверу - не найти так нам много и правильно.
само собой все произойдет - только надо щелкнуть мышкой по тропинке (ВСЕ..)
как найти эту мишень типа в которую мы подставляем цели (точку щелчка мыши) -
там наверное надо переводить коорды экранные в коорды 3D сцены .. формулка может така нужна .. потом еще вид действия надо активировать Бег , Полет, Стоять.. но это уже другая история ..
|
|
|
12/02/2009, 13:42
|
#788
|
elite*gold: 0
Join Date: Jun 2008
Posts: 142
Received Thanks: 13
|
сервер твоего перса не двигает, он только ресинки присылает, если ты пытаешься двигаться неправильно
|
|
|
12/02/2009, 13:49
|
#789
|
elite*gold: 0
Join Date: Apr 2009
Posts: 237
Received Thanks: 403
|
инжект для передвижения, что используют китайцы, т.е. который был приведен выше, аналогичен хорошо известному методу с заменой значений в памяти: переписать указатели текущего действия, снять с «ручника», задать конечные координаты… Оба варианта вполне рабочие, хотя инжект проще, ибо нет нужды контролировать достижение конечной точки и вовремя возвращать нужные указатели действия, дабы не было трудностей с графикой, клиент сам все сделает.
|
|
|
12/02/2009, 14:05
|
#790
|
elite*gold: 0
Join Date: Nov 2009
Posts: 12
Received Thanks: 1
|
Вы мне такую вещь скажите - при чём тут speedtree?
Всё для чего она нужна - это для рендера деревьев.
Камера тут не при чём. Не туда смотрите.
И всё что можно сделать толкового при помощи speedtree - это отключить отрисовку деревьев, по аналогу консольной команды d_render_forest. Остальное шелуха.
SDK на speedtree можно скачать с speedtree.com
Повеселил продавец крякнутого бота. Вобщемто так даже некрасиво делать. Для уважающего себя кодера такое действие просто мелкое.
Сломал - изволь выложить.
Глянул сайтец - имхо развод
|
|
|
12/02/2009, 18:19
|
#791
|
elite*gold: 0
Join Date: Sep 2009
Posts: 85
Received Thanks: 27
|
Процедура нормального таргета, кому надо:
Quote:
procedure Target(aPParams:PParams); Stdcall;
var
P1: DWORD;
begin
//by muzhig
{
mov edx, DWORD PTR [BaseAddress]
push MonsterID
mov ecx, DWORD PTR [edx+0x20]
add ecx, 0xEC
mov edx, CallAddress
call edx
}
P1 := aPParams^.Param1; // номер моба
asm
pushad
mov ecx,dword ptr [PW_BASE_ADDRESS]
mov ecx,dword ptr[ecx+$20]
add ecx,$ec
mov eax, P1
push eax
mov edx, $005ae040
call edx
popad
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
aParams : TParams;
begin
aParams.Param1 := idmob;//где брать idmob читайте страниц эдак 10 назад
InjectFunc(hProcess, @Target, @aParams, SizeOf(aParams));
end;
|
ЗЫ: OllyDbg можно скачать с из сайта бесплатно.
|
|
|
12/02/2009, 18:19
|
#792
|
elite*gold: 0
Join Date: Jan 2009
Posts: 137
Received Thanks: 19
|
Quote:
Originally Posted by muchenberg
Вы мне такую вещь скажите - при чём тут speedtree?
Всё для чего она нужна - это для рендера деревьев.
Камера тут не при чём. Не туда смотрите.
|
А фиг его знает при чем тут speedtree Увидел знакомые букамки. А что с elementskill.dll ? К ней можно подключится?
|
|
|
12/02/2009, 18:29
|
#793
|
elite*gold: 0
Join Date: Jan 2009
Posts: 137
Received Thanks: 19
|
Адресс иньекта для поднять айтем (скилл) $0044BF60. Иньект не писал еще Некогда
|
|
|
12/02/2009, 19:37
|
#794
|
elite*gold: 0
Join Date: Jan 2009
Posts: 137
Received Thanks: 19
|
Quote:
Originally Posted by dwar
инжект для передвижения, что используют китайцы, т.е. который был приведен выше, аналогичен хорошо известному методу с заменой значений в памяти: переписать указатели текущего действия, снять с «ручника», задать конечные координаты… Оба варианта вполне рабочие, хотя инжект проще, ибо нет нужды контролировать достижение конечной точки и вовремя возвращать нужные указатели действия, дабы не было трудностей с графикой, клиент сам все сделает.
|
Тут есть загвоздка... Я не пишу бота в прямом смысле. Мне просто нужен помощник. Ну не хочу я следить за своим здоровьем ) Хочу чтобы макрос бота пинал, а хилер банки юзал ) И не мешал при этом чатиться. Или ЧСника по обнаружению брал в таргет, приближался и шандарахал по заданной программе. Ну и просто вариант подучиться тонкостям работы с другими приложениями тоже подначивает ) Тем более, что перехват/подмену/генерацию пакетов я в свое время уже изучил в достаточной степени и она мне неинтересна сейчас как факт.
Вот потому хочу реализовать оба способа ) Просто я такой - занимаюсь в свое удовольствие )
|
|
|
12/02/2009, 19:40
|
#795
|
elite*gold: 0
Join Date: Nov 2009
Posts: 96
Received Thanks: 31
|
Quote:
Originally Posted by muzhig
Как смотрите на такое?
|
Конечно я не очень спец, но так думаю, что когда дополнительный код работает в чужем процессе - он использует регистры по своему усмртрению, а клиент по своему, разделение времени для скрытия значений регистров в стек потребует наверное че-то с прерываниями делать, просто может произойти сбой работы клиента. вот если-бы наш код был компилирован вместе с кодом клиента в одной завязке - другое дело, но не знаю .. пробывать надо.
другими словами не будет синхронизации ..
|
|
|
All times are GMT +2. The time now is 14:38.
|
|