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

Не работает инжект движения

-

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

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

Ответ
 
Опции темы
Старый 26.06.2015, 04:35   #31
 Разведчик
Аватар для Fess88
 
Fess88 никому не известный тип
Регистрация: 11.05.2014
Сообщений: 6
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Не работает инжект движения

А у меня крошит клиент после
Цитата:
call CallAddress1

после этого в память не пишется оставшаяся часть инжекта( Скрин прилагаю.

[Ссылки могут видеть только зарегистрированные пользователи. ]

Подскажите, в чем проблема, плиз, уже вторую неделю мучаюсь( Вот сам инжект:

Код:
void MemReader::MoveTo(float x, float y, float z, int walkmode)
{
						   //2					    8					   14	                        21                                 30                       36                         43                      49                                       59                      65                      71                     77                   82                      88                  93                      99                 104                     110
char fdata[]="\x60\xA1\x11\x11\x11\x11\x8B\xB8\x22\x22\x22\x22\x8B\x8F\x33\x33\x33\x33\x6A\x01\xBA\x11\x11\x11\x11\xFF\xD2\x10\x8B\xF0\x8D\x94\x24\x22\x22\x22\x22\x52\x68\x44\x44\x44\x44\x8B\xCE\xE8\xAB\x23\x20\x21\x8B\x8F\x22\x22\x22\x22\x6A\x00\x56\x6A\x01\xE8\xAC\x34\x31\x32\x8B\x8F\x22\x22\x22\x22\x8B\x81\x22\x22\x22\x22\x8B\x88\x22\x22\x22\x22\xB8\x99\x99\x99\x99\x89\x81\x22\x22\x22\x22\xB8\x99\x99\x99\x99\x89\x81\x22\x22\x22\x22\xB8\x99\x99\x99\x99\x89\x81\x22\x22\x22\x22\x61\xC3";
        
        DWORD ga=GA;    
	DWORD func1=F_MOVE1;       
	DWORD func2=F_MOVE2;
        DWORD func3=F_MOVE3;
        DWORD ofs1=OFS1;
	DWORD ofs2=OFS2;
	DWORD ofs3=OFS3;
	DWORD ofs4=OFS4;
	DWORD ofs5=OFS5;
	DWORD ofs6=OFS6;
	DWORD ofs7=OFS7;
	DWORD ofs8=OFS8;

	DWORD wmode=1; if (walkmode==0) wmode=0;

	x = GameToClientX(x);
	y = GameToClientY(y);
	z = GameToClientZ(z);
		 
	memcpy(fdata+2,&ga,4);		
        memcpy(fdata+8,&ofs1,4);
	memcpy(fdata+14,&ofs2,4);
        memcpy(fdata+21,&func1,4);
        memcpy(fdata+30,&ofs3,4);
        memcpy(fdata+36,&wmode,4);
        memcpy(fdata+43,&func2,4);
        memcpy(fdata+49,&ofs2,4);
        memcpy(fdata+59,&func3,4);
        memcpy(fdata+65,&ofs2,4);
	memcpy(fdata+71,&ofs4,4);
        memcpy(fdata+77,&ofs5,4);
	memcpy(fdata+82,&x,4);
	memcpy(fdata+88,&ofs6,4);
        memcpy(fdata+93,&z,4);
        memcpy(fdata+99,&ofs7,4);
        memcpy(fdata+104,&y,4);
        memcpy(fdata+110,&ofs8,4);

        InjectAndExecute(fdata,120);
В ASM-виде:

Код:
 pushad
  mov eax, dword ptr [GameAdress]
  mov edi, dword ptr [eax+$28]
  mov ecx, dword ptr [edi+$13F0]
  push 1
  call CallAddress1
  mov esi, eax
  lea edx, dword ptr [esp+$1C]
  push edx
  push flying
  mov ecx, esi
  call CallAddress2
  mov ecx, dword ptr [edi+$13F0]
  push 0
  push esi
  push 1
  call CallAddress3
  mov ecx, dword ptr [edi+$13F0]
  mov eax, dword ptr [ecx+$18]
  mov ecx, dword ptr [eax+$0]
  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
  Ответить с цитированием
Старый 26.06.2015, 13:43   #32
-= Мастер Света =-
 Рыцарь-лейтенант
Аватар для Smertig
 
Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
Отправить сообщение для Smertig с помощью ICQ Отправить сообщение для Smertig с помощью Skype™
 
По умолчанию Re: Не работает инжект движения

Цитата:
xFF\xD2\x10\x8B\xF0\x8D\x94

Должно соответствовать этому куску:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Судя по тому, что дальше идут двойки в памяти, которые должны были замениться на числа, копирование чисел кривое - нужно поправить смещения
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
  Ответить с цитированием
Старый 26.06.2015, 22:55   #33
 Разведчик
Аватар для Fess88
 
Fess88 никому не известный тип
Регистрация: 11.05.2014
Сообщений: 6
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Не работает инжект движения

Smertig, ты имеешь в виду поправить смешения (т.е вставку в нужные места массива адресов и оффсетов) внутри массива fdata?
  Ответить с цитированием
Старый 26.06.2015, 22:57   #34
-= Мастер Света =-
 Рыцарь-лейтенант
Аватар для Smertig
 
Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
Отправить сообщение для Smertig с помощью ICQ Отправить сообщение для Smertig с помощью Skype™
 
По умолчанию Re: Не работает инжект движения

Именно так. С таким количеством memcpy и "магических чисел" легко запутаться
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
  Ответить с цитированием
Старый 30.07.2015, 20:07   #35
 Пехотинец
Аватар для pwgamer
 
pwgamer никому не известный тип
Регистрация: 11.11.2010
Сообщений: 67
Популярность: 16
Сказал(а) спасибо: 58
Поблагодарили 8 раз(а) в 5 сообщениях
 
По умолчанию Re: Не работает инжект движения

А чем может отличаться win 10 от win 7? Движение на 7 работает, на 10 вылетает игра при инжекте.
  Ответить с цитированием
Старый 30.07.2015, 20:54   #36
 Старший сержант
Аватар для N00bSa1b0t
 
N00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядом
Регистрация: 09.04.2010
Сообщений: 204
Популярность: 5518
Сказал(а) спасибо: 49
Поблагодарили 512 раз(а) в 198 сообщениях
 
По умолчанию Re: Не работает инжект движения

Цитата:
А чем может отличаться win 10 от win 7

Работой с памятью.
Старый инжект, применимый к 1.5.2, приводит к неопределенному поведению, и в один прекрасный момент может произойти разыменовывание нулевого указателя, что вызовет исключение и краш клиента.
На 7-ке этот момент происходит намного реже, чем на 8 и 10ке.
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]-cофт и прочее для комфортной игры в PW.
PW Everyday Helper Bot

Последний раз редактировалось N00bSa1b0t; 30.07.2015 в 20:58.
  Ответить с цитированием
Старый 30.07.2015, 21:31   #37
 Пехотинец
Аватар для pwgamer
 
pwgamer никому не известный тип
Регистрация: 11.11.2010
Сообщений: 67
Популярность: 16
Сказал(а) спасибо: 58
Поблагодарили 8 раз(а) в 5 сообщениях
 
По умолчанию Re: Не работает инжект движения

Что на вин10 адрес куда лететь не туда записываются? И когда руками летаю, в разные места пишет?
  Ответить с цитированием
Старый 30.07.2015, 21:41   #38
 Старший сержант
Аватар для N00bSa1b0t
 
N00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядом
Регистрация: 09.04.2010
Сообщений: 204
Популярность: 5518
Сказал(а) спасибо: 49
Поблагодарили 512 раз(а) в 198 сообщениях
 
По умолчанию Re: Не работает инжект движения

Цитата:
Что на вин10 адрес куда лететь не туда записываются? И когда руками летаю, в разные места пишет?

Нет.
Я имел в виду, что 10 винда по-другому может подчищать память за игрой, например.
Или по-другому работает механизм переключения потоков. Старый инжект вызывает неопределенное поведение из-за "состояния гонки" потоков. В 7-ке потоки исполняются в одном порядке, в 10-ке чуть по-другому, чуть в другой момент времени идет переключение, и поэтому один поток получает управление раньше, чем это в 7, и обращается по нулевому указателю.
Но это лишь мои догадки, чем может быть вызван краш. Только майкрософт знает, что они изменили во внутренней кухне винды.

Но суть в том, что инжект движения работает под 7-кой по счастливой случайности. И вполне возможно через пару часов использования краш таки будет, как это происходит в "PW CrazyBot 1.5.1" [http://zhyk.ru/forum/showthread.php?t=930853]

А решения данной проблемы два:
1) Либо использовать инжект автопути, он работает на 10. Но он не умеет, например, вертикально взлетать вверх. Ну и не работает при открытых диалоговых окнах. Хотя найти флаг блокировки интерфейса не составляет труда. А вот чинить вертикальный взлет сложнее.
2) Изменить старый инжект движения. Но это нужно знать ассемблер и тому подобное.
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]-cофт и прочее для комфортной игры в PW.
PW Everyday Helper Bot
  Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
diagnost (31.07.2015), pwgamer (30.07.2015), reshacker (13.01.2016)
Старый 07.08.2015, 19:25   #39
 Пехотинец
Аватар для diagnost
 
diagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражания
Регистрация: 02.01.2010
Сообщений: 95
Популярность: 1542
Сказал(а) спасибо: 110
Поблагодарили 460 раз(а) в 288 сообщениях
 
По умолчанию Re: Не работает инжект движения

На сегодняшний момент пользуюсь вот этим инжектом, посылка идет через строку(Windows 10 и Delphi XE8, по методу shura_luka):
Код:
CPU Disasm
Address   Hex dump          Command                                  Comments
09800000    60              PUSHAD
09800001    B8 00000000     MOV EAX,0
09800006    8B00            MOV EAX,DWORD PTR DS:[EAX]
09800008    8B40 1C         MOV EAX,DWORD PTR DS:[EAX+1C]
0980000B    8B78 28         MOV EDI,DWORD PTR DS:[EAX+28]
0980000E    8B8F 11111111   MOV ECX,DWORD PTR DS:[EDI+11111111]
09800014    6A 01           PUSH 1
09800016    BA 00000000     MOV EDX,0
0980001B    FFD2            CALL EDX
0980001D    8D4C24 1C       LEA ECX,[ESP+18]
09800021    89C6            MOV ESI,EAX
09800023    51              PUSH ECX
09800024    BA 00000000     MOV EDX,0
09800029    52              PUSH EDX
0980002A    89F1            MOV ECX,ESI
0980002C    BA 00000000     MOV EDX,0
09800031    FFD2            CALL EDX
09800033    8B8F 22222222   MOV ECX,DWORD PTR DS:[EDI+22222222]
09800039    B8 00000000     MOV EAX,0
0980003E    89F2            MOV EDX,ESI
09800040    83C2 20         ADD EDX,20
09800043    8902            MOV DWORD PTR DS:[EDX],EAX
09800045    B8 00000000     MOV EAX,0
0980004A    89F2            MOV EDX,ESI
0980004C    83C2 24         ADD EDX,24
0980004F    8902            MOV DWORD PTR DS:[EDX],EAX
09800051    B8 00000000     MOV EAX,0
09800056    89F2            MOV EDX,ESI
09800058    83C2 28         ADD EDX,28
0980005B    8902            MOV DWORD PTR DS:[EDX],EAX
0980005F    6A 01           PUSH 1
09800061    56              PUSH ESI
09800062    6A 01           PUSH 1
09800064    BA 00000000     MOV EDX,0
09800069    FFD2            CALL EDX
0980006B    61              POPAD
0980006C    C3              RETN
Никто еще не решил проблему с вылетами? У гео бота появилось 2 инжекта движения(старый и новый), меня интересует новый, не поделитесь?(свои наработки в инжекте, параллельно исправляю тут, но до конца от вылетов так и не избавился)

Последний раз редактировалось diagnost; 14.09.2015 в 09:16.
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Vb.net инжект движения bestbeer Общение разработчиков 0 10.01.2014 09:08

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

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

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