 |
Не копает... - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок |
11.11.2016, 17:17
|
#1
|
|
|
|
|
|
Разведчик
|
 Регистрация: 24.10.2011
 Сообщений: 8
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Не копает...
Пытаюсь выкопать итем с помощью инжекта не получая список ресов и выбирания собсна из него (ибо тупо не выводит этот чертов список).
Пакет копания:
36 00 61 12 10 C0 00 00 00 00 00 00 00 00 00 00 00 00
Я так понял что ID это 0х1261.
Ставлю в инжект:
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
|
ASM asm = new ASM(memories[0]);
asm.Pushad();
asm.Mov_ECX_DWORD_Ptr(0x00EF8344);
asm.Mov_ECX_DWORD_Ptr(0x1c);
asm.Mov_ECX_DWORD_Ptr(0x34);
asm.Push68(1);
asm.Push68(0x1261);
asm.Call_Adr(0x8AF070);
asm.Popad(); |
|
 |
|
 |
|
ииии ничего не происходит. Ни краха ничего.
К клиенту аттачится (отображает имя перса).
Может кто помочь?
|
|
|
|
11.11.2016, 18:13
|
#2
|
|
|
|
|
|
Разведчик
|
 Регистрация: 21.10.2013
 Сообщений: 4
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 9 раз(а) в 8 сообщениях
|
Re: Не копает...
давно этим не занимался, нашел у себя это:
инжект сбора реса:
60 6A 01 68 11 11 11 11 8B 0D 22 22 22 22 8B 49 2C B8 33 33 33 33 FF D0 61 C3
где:
11 11 11 11 - WID
22 22 22 22 - GA
33 33 33 33 - walkPick_addr
asm:
Код:
0x60, //pushad
0x6A,0x00, //PUSH 0x0
0x68,0x11,0x11,0x11,0x11, //PUSH Id
0x8B,0x0D,0x22,0x22,0x22,0x22, //MOV ECX,DWORD PTR DS:[GA]
0x8B,0x49,0x2C, //MOV ECX,DWORD PTR DS:[ECX+0x2C]
0xB8,0x33,0x33,0x33,0x33, //MOV EAX, 0x004816B0
0xFF,0xD0, //CALL EAX
0x61, //popad
0xC3 //RETN
Последний раз редактировалось gta4user; 11.11.2016 в 18:52.
|
|
|
|
11.11.2016, 19:29
|
#3
|
|
|
|
|
|
Разведчик
|
 Регистрация: 24.10.2011
 Сообщений: 8
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Не копает...
Отправка этого не пашет:
60 6A 01 68 72 0c 10 c0 8B 0D ec 8a ef 00 8B 49 2C B8 70 f0 8a 00 FF D0 61 C3
Как и инжект этого:
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
|
ASM asm = new ASM(memories[0]);
asm.Pushad();
asm.Push6A(0);
asm.Push68(0x0c72);
asm.Mov_ECX_DWORD_Ptr(0x00EF8344);
asm.Mov_ECX_DWORD_Ptr(0x1c);
asm.Mov_ECX_DWORD_Ptr(0x34);
asm.Mov_EAX(0x8AF070);
asm.Call_EAX();
asm.Popad(); |
|
 |
|
 |
|
ну или как в int запихнуть uint? (вставляю 2 байта от ID а не 4).
|
|
|
|
12.11.2016, 00:27
|
#4
|
|
|
|
|
|
Разведчик
|
 Регистрация: 05.09.2010
 Сообщений: 32
 Популярность: 1182
 Сказал(а) спасибо: 38
Поблагодарили 12 раз(а) в 10 сообщениях
|
Re: Не копает...
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
|
|
Отправка этого не пашет:
60 6A 01 68 72 0c 10 c0 8B 0D ec 8a ef 00 8B 49 2C B8 70 f0 8a 00 FF D0 61 C3
Как и инжект этого:
ну или как в int запихнуть uint? (вставляю 2 байта от ID а не 4).
|
|
 |
|
 |
|
Из своего старого ресокопа на основе выложенной тут когда-то библиотеки:
Код:
public void Take_lut(int wid, byte lut_type)
{
ASM asm = new ASM(this.memory);
asm.Pushad();
asm.Mov_ECX(PWOffssAndAddrss.base_address);
asm.Mov_ECX_DWORD_Ptr_ECX();
asm.Mov_ECX_DWORD_Ptr_ECX_Add(0x1C);
asm.Mov_ECX_DWORD_Ptr_ECX_Add(0x28);
asm.Push68(lut_type); // 0 - лут на земле 1 - шахта
asm.Push68(wid);
asm.Mov_EBX(PWOffssAndAddrss.Digging);
asm.Call_EBX();
asm.Popad();
asm.Ret();
asm.RunAsm();
}
Что касается "ну или как в int запихнуть uint?", то просто приводил WID к значению int:
Код:
Personage.Take_lut((int)lutWID, type);
|
|
|
|
13.11.2016, 14:34
|
#5
|
|
|
|
|
|
Разведчик
|
 Регистрация: 21.10.2013
 Сообщений: 4
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 9 раз(а) в 8 сообщениях
|
Re: Не копает...
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
|
|
asm.Mov_EAX(0x8AF070);
asm.Call_EAX();
|
|
 |
|
 |
|
Странный адрес для функции pickWalk, может быть в нём дело.
Вот освежил немного свой код и проверил (работает):
Код:
BYTE Packet[26] ={
0x60, //pushad
0x6A,0x01, //PUSH 0x1
0x68,0x11,0x11,0x11,0x11, //PUSH resWID
0x8B,0x0D,0x22,0x22,0x22,0x22, //MOV ECX,DWORD PTR DS:[GA]
0x8B,0x49,0x34, //MOV ECX,DWORD PTR DS:[ECX+0x34]
0xBA,0x33,0x33,0x33,0x33, //MOV EDX, 0x004C4CA0 (PWI pickWalk addr)
0xFF,0xD2, //CALL EDX
0x61, //popad
0xC3 //RETN
};
memcpy(Packet+4,&resWID,4); // внедряем WID ресурса
memcpy(Packet+10,&GA,4); // внедряем GA
memcpy(Packet+18,&pickWalk_addr,4); // внедряем адрес pickWalk
|
|
|
|
14.11.2016, 22:07
|
#6
|
|
|
|
|
|
Разведчик
|
 Регистрация: 24.10.2011
 Сообщений: 8
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Не копает...
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
|
ASM asm = new ASM(memories[2]);
asm.Pushad();
asm.Push6A(0x1);
asm.Push68(0x1cef);
asm.Mov_ECX_DWORD_Ptr(0x00EF8344);
asm.Mov_ECX_DWORD_Ptr_ECX_Add(0x1c);
asm.Mov_ECX_DWORD_Ptr_ECX_Add(0x34);
asm.Mov_EDX(0x008AF070);
asm.Call_EDX();
asm.Popad();
asm.Ret(); |
|
 |
|
 |
|
ничего не выдает.
Отправка:
60 6A 01 68 C0 10 1C EF 8B 0D 00 EF 8A EC 8B 49 34 BA 00 8A F0 70 FF D2 61 C3
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
|
byte[] pp = {0x60, 0x6A, 0x01, 0x68, 0xC0, 0x10, 0x1C, 0xEF, 0x8B, 0x0D, 0x00, 0xEF, 0x8A, 0xEC, 0x8B, 0x49, 0x34, 0xBA, 0x00, 0x8A, 0xF0, 0x70, 0xFF, 0xD2, 0x61, 0xC3 };
ps.Send(pp); |
|
 |
|
 |
|
ничего не дает.
Добавлено через 17 минут
как воспроизвести этот пакет:
36 00 EF 1C 10 C0 00 00 00 00 00 00 00 00 00 00 00 00
так что бы к ресу он бежал сам? (отправка этого пакета сработает если перс стоит на ресе)
Последний раз редактировалось Arsen0208; 14.11.2016 в 22:25.
Причина: Добавлено сообщение
|
|
|
|
14.11.2016, 22:40
|
#7
|
|
|
|
|
|
Разведчик
|
 Регистрация: 21.10.2013
 Сообщений: 4
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 9 раз(а) в 8 сообщениях
|
Re: Не копает...
Arsen0208, откуда берёшь 00 8A F0 70 ?
я уже написал, странный адрес, слишком большое значение..
добавлено:
а ещё байты в асме справа налево строятся в адресах..
Последний раз редактировалось gta4user; 14.11.2016 в 22:50.
|
|
|
|
14.11.2016, 23:29
|
#8
|
|
|
|
|
|
Разведчик
|
 Регистрация: 24.10.2011
 Сообщений: 8
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Не копает...
WID выходит 4 байта и его нельзя преобразовать, или я не правильный WID ввожу...
Добавлено через 7 минут
таки косяк с адресом вышел, я думал нужно подставлять
Mining = 008AF070
не заметил что есть
PickWalk = 004C46D0
все равно ничего не делает кстати..
Добавлено через 12 минут
Думаю дело в WIDишнике. Как ты кстати его получаешь?
Последний раз редактировалось Arsen0208; 14.11.2016 в 23:41.
Причина: Добавлено сообщение
|
|
|
|
14.11.2016, 23:53
|
#9
|
|
|
|
|
|
Разведчик
|
 Регистрация: 21.10.2013
 Сообщений: 4
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 9 раз(а) в 8 сообщениях
|
Re: Не копает...
ставлю бряк на адрес 004A4709 или 004BEF38, копаю рес, ловлю WID из регистра EBX
|
|
|
|
14.11.2016, 23:56
|
#10
|
|
|
|
|
|
Разведчик
|
 Регистрация: 24.10.2011
 Сообщений: 8
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Не копает...
а сколько байт он у тебя? 2 или 4? если 4 то как мне его запихивать в С# не подскажешь?
Добавлено через 3 минуты
Для твоего способа нужен аттач к клиенту, я так понял. У меня просто клиент с Темидой поэтому сразу в руины.
Последний раз редактировалось Arsen0208; 15.11.2016 в 00:00.
Причина: Добавлено сообщение
|
|
|
|
15.11.2016, 00:06
|
#11
|
|
|
|
|
|
Разведчик
|
 Регистрация: 21.10.2013
 Сообщений: 4
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 9 раз(а) в 8 сообщениях
|
Re: Не копает...
4 байта, записываю его в DWORD и потом с помощью memcpy заливаю прямо в массив байт, как в примере выше
добавлено:
если темида. то:
сложный способ1: packet listener, pandora или искать в памяти, для меня первые два варианта проще )
сложный способ2: снимаешь темиду
простой способ: заменяешь на elementclient.exe от PWI
Последний раз редактировалось gta4user; 15.11.2016 в 00:26.
|
|
|
|
15.11.2016, 00:19
|
#12
|
|
|
|
|
|
Разведчик
|
 Регистрация: 24.10.2011
 Сообщений: 8
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Не копает...
лол изменил строчку:
asm.Push68(0x10c0); (адрес внутри)
и добавил:
asm.Push_DWORD_Ptr(сюда 2 последних байта ИДшника)
Клиент крахнулся но зато рес был выкопан. 
Добавлено через 10 минут
Нахожу через пакетлист.
Как мне сделать так что бы клиент не крашился?
Последний раз редактировалось Arsen0208; 15.11.2016 в 00:29.
Причина: Добавлено сообщение
|
|
|
|
15.11.2016, 00:44
|
#13
|
|
|
|
|
|
Разведчик
|
 Регистрация: 21.10.2013
 Сообщений: 4
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 9 раз(а) в 8 сообщениях
|
Re: Не копает...
хотелось бы посмотреть память которую ремотТредишь. если сможешь - покажи)
|
|
|
|
15.11.2016, 00:47
|
#14
|
|
|
|
|
|
Разведчик
|
 Регистрация: 24.10.2011
 Сообщений: 8
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Не копает...
|
|
|
|
15.11.2016, 00:58
|
#15
|
|
|
|
|
|
Разведчик
|
 Регистрация: 21.10.2013
 Сообщений: 4
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 9 раз(а) в 8 сообщениях
|
Re: Не копает...
инжект обычно делают так:
1 -VirtualAllocEx
2- WriteProcessMemory
3- CreateRemoteThread
мне бы посмотреть то, что ты пишешь в память на пункте 2
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
[Программа] Ломает шмот
|
Alexandre288 |
Общение и обсуждение Perfect World |
0 |
17.08.2013 05:39 |
|
+FF0 +18 -(1-копает, двигается....
|
krysun |
Общение разработчиков |
5 |
29.01.2012 17:18 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 01:30.
|
 |