|
Взятие таргета - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок |
29.03.2020, 18:55
|
#1
|
|
|
|
Разведчик
|
Регистрация: 23.12.2009
Сообщений: 42
Популярность: 275
Сказал(а) спасибо: 33
Поблагодарили 3 раз(а) в 2 сообщениях
|
Взятие таргета
Пытаюсь эмулировать взятие в таргет цели. Нашел функцию, которая берет этот самый таргет
Код:
CPU Disasm
Address Hex dump Command Comments
00451E2F 90 NOP
00451E30 /$ 8B5424 04 MOV EDX,DWORD PTR SS:[ARG.1] ; elementclient.00451E30(guessed Arg1)
00451E34 |. 8B42 10 MOV EAX,DWORD PTR DS:[EDX+10]
00451E37 |. 83F8 34 CMP EAX,34
00451E3A |. 75 34 JNE SHORT 00451E70
00451E3C |. 8B42 0C MOV EAX,DWORD PTR DS:[EDX+0C]
00451E3F |. 8B10 MOV EDX,DWORD PTR DS:[EAX]
00451E41 |. C781 F40A0000 MOV DWORD PTR DS:[ECX+0AF4],0
00451E4B |. 8BC2 MOV EAX,EDX
00451E4D |. 8991 F00A0000 MOV DWORD PTR DS:[ECX+0AF0],EDX
00451E53 |. 8B0D EC3E9B00 MOV ECX,DWORD PTR DS:[9B3EEC]
00451E59 |. 50 PUSH EAX ;<-- тут WID моба
00451E5A |. 68 9C469500 PUSH 0095469C ; UNICODE "Select %x"
00451E5F |. 68 00FFFFFF PUSH -100
00451E64 |. 51 PUSH ECX
00451E65 |. E8 B6E7FDFF CALL 00430620
00451E6A |. 83C4 10 ADD ESP,10
00451E6D |. C2 0400 RETN 4
00451E70 |> 83F8 27 CMP EAX,27
00451E73 |. 75 0A JNE SHORT 00451E7F
00451E75 |. C781 F00A0000 MOV DWORD PTR DS:[ECX+0AF0],0
00451E7F \> C2 0400 RETN 4
00451E82 90 NOP
Я попытался сэмулировать этот код на AutoIt:
Код:
Func SelectTarID($id)
Local $pRemoteThread, $vBuffer, $loop, $result, $OPcode
; --- save the position of the allocated memory ---
$pRemoteMem = DllCall($kernel32, 'int', 'VirtualAllocEx', 'int', $PROCESS_INFORMATION[1], 'ptr', 0, 'int', 0x46, 'int', 0x1000, 'int', 0x40)
; --- build up the asm code ---
$OPcode &= '60'
$OPcode &= '68'&_hex($id) ; PUSH EAX <---- EAX contains Mob-ID, $id - something like 2148547734
$OPcode &= '689C469500' ;00451E5A |. 68 9C469500 PUSH 0095469C
$OPcode &= '6800FFFFFF' ;00451E5F |. 68 00FFFFFF PUSH -100
$OPcode &= '689B4578' ;00451E64 |. PUSH ECX <-- временно пытаюсь засунуть значение, которое получил в OllyDbg
$OPcode &= 'E8B6E7FDFF' ;00451E65 |. E8 B6E7FDFF CALL 00430620
$OPcode &= '61' ;Высвобождаю регистр
$OPcode &= '61' ;Высвобождаю регистр
$OPcode &= '61' ;Высвобождаю регистр
$OPcode &= 'C3'
; --- enter the asm code to to a dllstruct, which can be used with WriteProcessMemory ---
$vBuffer = DllStructCreate('byte[' & StringLen($OPcode) / 2 & ']')
For $loop = 1 To DllStructGetSize($vBuffer)
DllStructSetData($vBuffer, 1, Dec(StringMid($OPcode, ($loop - 1) * 2 + 1, 2)), $loop)
Next
; --- now letz write the code from our dllstruct ---
DllCall($kernel32, 'int', 'WriteProcessMemory', 'int', $PROCESS_INFORMATION[1], 'int', $pRemoteMem[0], 'int', DllStructGetPtr($vBuffer), 'int', DllStructGetSize($vBuffer), 'int', 0)
; --- now we run the asm code we've just written ---
$hRemoteThread = DllCall($kernel32, 'int', 'CreateRemoteThread', 'int', $PROCESS_INFORMATION[1], 'int', 0, 'int', 0, 'int', $pRemoteMem[0], 'ptr', 0, 'int', 0, 'int', 0)
; --- wait till the thread did his job ---
Do
$result = DllCall('kernel32.dll', 'int', 'WaitForSingleObject', 'int', $hRemoteThread[0], 'int', 50)
Until $result[0] <> 258
Sleep(250)
; --- close everything we've opened ---
DllCall($kernel32, 'int', 'CloseHandle', 'int', $hRemoteThread[0])
DllCall($kernel32, 'ptr', 'VirtualFreeEx', 'hwnd', $PROCESS_INFORMATION[1], 'int', $pRemoteMem[0], 'int', 0, 'int', 0x8000)
Return True
EndFunc ;==>
Это крашит клиент((( Я не прошу решить мою проблему, я лишь прошу помощи. В какую сторону копать?
|
|
|
03.04.2020, 03:07
|
#2
|
|
|
|
Разведчик
|
Регистрация: 24.11.2010
Сообщений: 12
Популярность: 580
Сказал(а) спасибо: 1
Поблагодарили 2 раз(а) в 2 сообщениях
|
Re: Взятие таргета
Взятие в таргет. SummerPW 1.5.5
Код:
procedure TargetCall(aPParams: PParams); stdcall;
var
CallAddress: Pointer;
P1: DWord;
begin
P1 := aPParams^.WID; //WID моба - к примеру $80107A73
CallAddress := Pointer($0080DED0);
asm
MOV EDI, P1
MOV EAX, DWORD PTR DS:[$E444A4]
PUSH EDI
MOV ECX, DWORD PTR DS:[EAX + $20]
ADD ECX, $0F4
CALL CallAddress
end;
end;
Ты кажется что-то не то нашел
|
|
|
Пользователь сказал cпасибо:
|
|
03.04.2020, 21:00
|
#3
|
|
|
|
Разведчик
|
Регистрация: 23.12.2009
Сообщений: 42
Популярность: 275
Сказал(а) спасибо: 33
Поблагодарили 3 раз(а) в 2 сообщениях
|
Re: Взятие таргета
Благодарю за ваш ответ, для меня очень интересно разобратся с самим процессом инекций. Прошу прощения за такое упущение - я искал на клиенте 1.3.6.
Я почитал ваш asm код, и мне сама модификация интересна. Могли б вы показать код, как он в оригинале клиента выглядит? (OllyDbg, CE).
|
|
|
23.04.2020, 17:08
|
#4
|
|
|
|
Разведчик
|
Регистрация: 24.11.2010
Сообщений: 12
Популярность: 580
Сказал(а) спасибо: 1
Поблагодарили 2 раз(а) в 2 сообщениях
|
Re: Взятие таргета
Есть тема на форуме, https://zhyk.ru/forum/showthread.php?t=207760 там все наглядно рассказано как искать.
|
|
|
04.09.2020, 21:42
|
#5
|
|
|
|
Разведчик
|
Регистрация: 05.07.2011
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Взятие таргета
Подскажите можно ли как искать адреса для инжекта без запуска отладчика. Когда я запускаю клиент под отладкой то клиент просто вылетает с ошибкой.
|
|
|
05.09.2020, 10:14
|
#6
|
|
|
|
Маршал
|
Регистрация: 05.05.2009
Сообщений: 875
Популярность: 48955
Золото Zhyk.Ru: 850
Сказал(а) спасибо: 155
Поблагодарили 739 раз(а) в 274 сообщениях
|
Re: Взятие таргета
|
|
|
06.09.2020, 14:20
|
#7
|
|
|
|
Разведчик
|
Регистрация: 24.11.2010
Сообщений: 12
Популярность: 580
Сказал(а) спасибо: 1
Поблагодарили 2 раз(а) в 2 сообщениях
|
Re: Взятие таргета
|
|
|
11.09.2020, 20:00
|
#8
|
|
|
|
Разведчик
|
Регистрация: 05.07.2011
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Взятие таргета
К сожалению телекинезом не обладаю, но не помешало бы ). Я имел ввиду когда в CE выполняю пункт 'Кто получает доступ к адресу' то клиент сразу с этой ошибкой вылетает. В x32dbg и OllyDbg просто вылетает клиент.
Последний раз редактировалось nind; 11.09.2020 в 20:08.
|
|
|
11.09.2020, 23:44
|
#9
|
|
|
|
Маршал
|
Регистрация: 05.05.2009
Сообщений: 875
Популярность: 48955
Золото Zhyk.Ru: 850
Сказал(а) спасибо: 155
Поблагодарили 739 раз(а) в 274 сообщениях
|
Re: Взятие таргета
|
|
|
13.09.2020, 08:57
|
#10
|
|
|
|
Разведчик
|
Регистрация: 05.07.2011
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Взятие таргета
Удалось запустить под отладкой хоть и криво(ошибка отображается, но клиент не закрывается). Нашел адрес функции для взятия в таргет, делаю инжект. Функция взятия в таргет срабатывает, то есть моб в таргете, но когда нажимаю любой скилл, ESC или переключаю таргет происходит дисконект. Как быть в таком случае ?
|
|
|
01.10.2020, 02:08
|
#11
|
|
|
|
Разведчик
|
Регистрация: 18.09.2015
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Взятие таргета
А не проще будет отправить пакет? оО
|
|
|
01.10.2020, 08:18
|
#12
|
|
|
|
Маршал
|
Регистрация: 05.05.2009
Сообщений: 875
Популярность: 48955
Золото Zhyk.Ru: 850
Сказал(а) спасибо: 155
Поблагодарили 739 раз(а) в 274 сообщениях
|
Re: Взятие таргета
|
|
|
01.10.2020, 21:27
|
#13
|
|
|
|
Разведчик
|
Регистрация: 18.09.2015
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Взятие таргета
Там в вызове ошибка, или я ошибаюсь?
e8 b6 e7 fd ff = call 0xfffde7bb
Последний раз редактировалось lethargy; 01.10.2020 в 21:30.
|
|
|
02.10.2020, 09:51
|
#14
|
|
|
|
Маршал
|
Регистрация: 05.05.2009
Сообщений: 875
Популярность: 48955
Золото Zhyk.Ru: 850
Сказал(а) спасибо: 155
Поблагодарили 739 раз(а) в 274 сообщениях
|
Re: Взятие таргета
|
|
|
03.10.2020, 14:04
|
#15
|
|
|
|
Разведчик
|
Регистрация: 18.09.2015
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Взятие таргета
Да, действительно. Разобрался в чем проблема. Я просто перевернул байты, потому что привык делать вызов по адресу в регистре. А в данном случае идет вызов относительно текущего адреса. 0xfffde7bb на самом деле = -137285. На скрине выше тоже такой же пример.
UPD: Но проблема все равно скорее всего там. Адрес выделятся всегда в разное место, а тут его захардкодили и оно указывает всегда в разное место.
Последний раз редактировалось lethargy; 03.10.2020 в 14:31.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
[Помогите!] Инжект таргета и др.
|
Jok3r666 |
Общение разработчиков |
11 |
19.01.2015 06:43 |
[Файл] ХП таргета в процентах
|
Aghast |
Rising Force Online |
0 |
10.11.2011 14:42 |
[Помогите!] Утилита для таргета.
|
NekitoS |
Общение разработчиков |
3 |
21.09.2011 00:53 |
[Помогите!] id таргета
|
k2_target |
Общение и обсуждение Aion |
3 |
04.07.2011 12:43 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 10:26.
|
|