 |
Walk Injection - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок |
29.08.2013, 19:38
|
#1
|
|
|
|
Разведчик
|
 Регистрация: 20.08.2013
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Walk Injection
Лазил по сайту нашел вот этот код:
Код:
- procedure WalkCall(aPParams:PParams);Stdcall;
- var CallAddress1,CallAddress2,CallAddress3:Pointer;
- x,y,z:single;
- flying:DWORD;
- begin
- CallAddress1:=Pointer($00468070);
- CallAddress2:=Pointer($0046BCB0);
- CallAddress3:=Pointer($00468470);
- x:=aPParams^.Param4;
- y:=aPParams^.Param5;
- z:=aPParams^.Param6;
- flying:=aPParams^.Param1;
- asm
- pushad
- mov eax, dword ptr [PW_GAMERUN_ADDR]
- mov esi, dword ptr [eax+$20]
- mov ecx, dword ptr [esi+$FE0]
- push 1
- call CallAddress1
- mov edi, eax
- lea eax, dword ptr [esp+$0C]
- push eax
- push flying
- mov ecx, edi
- call CallAddress2
- mov ecx, dword ptr [esi+$FE0]
- push 0
- push 1
- push edi
- push 1
- call CallAddress3
- mov eax, dword ptr [PW_GAMERUN_ADDR]
- mov eax, dword ptr [eax+$20]
- mov eax, dword ptr [eax+$FE0]
- 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 Walk(x,y,z:single);
- var aParams: TParams;
- begin
- ReadProcessMemory(aHandle,ptr(BaseWalkMode),@WalkMode,1,readwrite); //BaseWalkMode = GA +20 +61C
- if WalkMode = 0 then aParams.Param1:=0 else aParams.Param1:=1;
- aParams.Param3:=x;
- aParams.Param4:=y;
- aParams.Param5:=z;
- InjectFunc(aHandle,@WalkCall,@aParams,SizeOf(aParams));
- end;
Как я понял это инжект передвижения.
Прошу рассказать что вот это?:
x:=aPParams^.Param4;
x:=aPParams^.Param5;
x:=aPParams^.Param6;
Последний раз редактировалось Dinmaite; 29.08.2013 в 22:35.
|
|
|
30.08.2013, 20:47
|
#2
|
|
|
|
Пехотинец
|
 Регистрация: 13.08.2013
 Сообщений: 68
 Популярность: 829
 Золото Zhyk.Ru: 100
 Сказал(а) спасибо: 25
Поблагодарили 13 раз(а) в 6 сообщениях
|
Re: Walk Injection
228116, вынесение значений, переданных процедуре, в переменные.
Добавлено через 2 минуты
Не совсем понятно на что вы рассчитываете, когда одна из функций на ассемблере устареет.
Поправить вы её явно не сможете. Будете ждать готового решения?
Последний раз редактировалось Desmond Hume; 30.08.2013 в 20:49.
Причина: Добавлено сообщение
|
|
|
01.09.2013, 11:16
|
#3
|
|
|
|
Разведчик
|
 Регистрация: 01.07.2009
 Сообщений: 21
 Популярность: 44
 Сказал(а) спасибо: 76
Поблагодарили 15 раз(а) в 5 сообщениях
|
Re: Walk Injection
Возможно, так будет понятней
Код:
float x;
float y;
float z;
__asm
{
pushad
MOV EDI,y
MOV ESI,x
MOV EAX,DWORD PTR DS:[BA] // base_addr
PUSH 0 // ; /Arg7 = 00000000
PUSH EDI // ; |Arg6
MOV ECX,DWORD PTR DS:[EAX+0x1C] // ; |
PUSH ESI // ; |Arg5
PUSH 0 // ; |Arg4 = 00000000
PUSH 0 // ; |Arg3 = 00000000
PUSH 0 // ; |Arg2 = 00000000
PUSH 0x14A // ; |Arg1 = 0000014A
mov edx,0x0441A60
call edx // ; \elementc.00438770
MOV EDX,DWORD PTR DS:[BA] //; elementc.009C14F8
XOR EAX,EAX
MOV AL,0
PUSH 0 //; /Arg7 = 00000000
MOV ECX,DWORD PTR DS:[EDX+0x1C] //; |
MOV EDX,z //; |
PUSH EAX //; |Arg6 = 00000000
PUSH EDX //; |Arg5 = Âûñîòà ïîëåòà
PUSH 1 //; |Arg4 = 00000001
PUSH 0 //; |Arg3 = 00000000
PUSH 0 //; |Arg2 = 00000000
PUSH 0x14A //; |Arg1 = 0000014A
mov edx,0x0441A60
CALL edx //; \elementc.00438770
popad
}
|
|
|
01.09.2013, 12:18
|
#4
|
|
|
|
Разведчик
|
 Регистрация: 04.09.2010
 Сообщений: 20
 Популярность: 10
 Сказал(а) спасибо: 14
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Walk Injection
|
|
|
01.09.2013, 14:47
|
#5
|
|
|
|
Рыцарь-лейтенант
|
 Регистрация: 31.01.2011
 Сообщений: 413
 Популярность: 14489
 Золото Zhyk.Ru: 300
 Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
|
Re: Walk Injection
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
|
|
|
01.09.2013, 14:47
|
#6
|
|
|
|
Разведчик
|
 Регистрация: 13.04.2013
 Сообщений: 5
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Walk Injection
 |
Цитата: |
 |
|
|
|
|
|
|
|
а каким образом можно добиться универсального кода? |
|
 |
|
 |
|
Если вы имеете в виду смену оффсетов при очередном патче, то:
Там же открытым текстом написано - "Вынести оффсеты в файл" и что бы бот считывал оффсеты из файла. Вам останется при очередном патче зайти в файл и прописать туда правильные оффсеты.
Оффтоп:
Я знаю как считать с .txt файла, но многие создают .ini файлы, вот с ними я еще не разбирался, как создавать их, и почему именно .ini.
А если вы имеет в виду независимость от операционной системы(Windows, Linux), то:
Нужно брать кросплатформенную библиотеку(например QT) и использовать при написании кода только ее функции, классы и переменные.
|
|
|
01.09.2013, 16:03
|
#7
|
|
|
|
Разведчик
|
 Регистрация: 01.07.2009
 Сообщений: 21
 Популярность: 44
 Сказал(а) спасибо: 76
Поблагодарили 15 раз(а) в 5 сообщениях
|
Re: Walk Injection
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
[Помогите!] Как найти Walk адресы?
|
Jok3r666 |
Общение разработчиков |
9 |
02.11.2014 03:57 |
Walk Injection
|
samosi |
Общение разработчиков |
7 |
30.06.2012 22:46 |
[Помогите!] Walk Inject
|
DAcorp |
Общение разработчиков |
2 |
14.09.2011 02:01 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 05:10.
|
 |