Программинг Форум для тем связанных с программированием
01.02.2011, 01:14
#231
Местный
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
да я всё пытаюсь параметры из стека достать в переменные, потом обратно в стек засунуть, но делфи упорно срет в стек мне
пытаюсь решить проблему, через va_list, но че-то хз как с ним работать
Добавлено через 12 минут
я щас опять буду орать "помогите", ну че делать с этой хренью
__________________
Н а ч а л о .
Последний раз редактировалось supernewbie, 01.02.2011 в 01:14 .
Причина: Добавлено сообщение
01.02.2011, 01:52
#232
Местный
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
supernewbie , ты вроде там защиту пытался обойти леймгварда, он что тебе дал хукнуть сендпакет?
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
01.02.2011, 02:10
#233
Рыцарь
Регистрация: 26.06.2009
Сообщений: 2,433
Сказал Спасибо: 154
Имеет 692 спасибок в 426 сообщенях
Код:
память:
1
2
3
4
5
6
7
8 < тут и ВЫШЕ твой компилятор делает push и остальную хрень
9 < тут хрень, этот адрес получаем так: asm mov stackaddr, ebp;
10 < тут адрес возврата, я тебе стопицот раз писал чтобы ты нагуглил пример как его достать.
11 < тут параметр1
13 < тут параметр2
14 < тут параметр3
15 < и так далее
16
Добавлено через 4 минуты
Цитата:
Сообщение от
destructor
9 < тут хрень
зная этот адрес можем к нему прибавить Х и получить другой адрес:
Цитата:
Сообщение от
destructor
11 < тут параметр1
__________________
Шожиделать.. ботить хочется..
Последний раз редактировалось destructor, 01.02.2011 в 02:11 .
Причина: Добавлено сообщение
01.02.2011, 05:15
#234
Местный
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
только все равно ничерта не работает...
delphi Код:
procedure HookSendPacket; stdcall
begin
asm
mov eax, [ebp+8 ]
mov this, eax
mov eax, [ebp+12 ]
mov format , eax
end ;
k:=0 ;
asm
mov eax, [ebp+16 ];
mov tmp1, eax
end ;
for i := 0 to length ( format ) -1 do
begin
if ( format[i] = 'Q' ) or ( format[i] = 'b' ) then
begin
params[k] := pointer ( Integer ( tmp1) +( k*4 ) ) ;
params[k+1 ] := pointer ( integer ( tmp1) +( k*4 ) +4 ) ;
Inc ( k, 2 ) ;
end
else
begin
params[k] := pointer ( integer ( tmp1) +( k*4 ) ) ;
Inc ( k) ;
end ;
end ;
MessageBoxA( 0 , format , 'FromClient' , 0 ) ;
asm
jmp origSendPacket;
end ;
end ;
Добавлено через 27 минут
ДА ПОМОГИТЕ КТО-НИБУДЬ
__________________
Н а ч а л о .
Последний раз редактировалось supernewbie, 01.02.2011 в 05:15 .
Причина: Добавлено сообщение
01.02.2011, 08:57
#235
Рыцарь
Регистрация: 26.06.2009
Сообщений: 2,433
Сказал Спасибо: 154
Имеет 692 спасибок в 426 сообщенях
Цитата:
Сообщение от
supernewbie
begin
asm
mov eax, [ebp+8]
mov this, eax
mov eax, [ebp+12]
mov format, eax
end;
эт чо?
Добавлено через 11 секунд
Цитата:
Сообщение от
supernewbie
asm
mov eax, [ebp+16];
mov tmp1, eax
end;
а это?
Добавлено через 59 секунд
Цитата:
Сообщение от
supernewbie
for i := 0 to length(format)-1 do
begin
if (format[i] = 'Q') or (format[i] = 'b') then
begin
params[k] := pointer(Integer(tmp1)+(k*4));
params[k+1] := pointer(integer(tmp1)+(k*4)+4);
Inc(k, 2);
end
else
begin
params[k] := pointer(integer(tmp1)+(k*4));
Inc(k);
end;
это ваще чо?
__________________
Шожиделать.. ботить хочется..
Последний раз редактировалось destructor, 01.02.2011 в 08:57 .
Причина: Добавлено сообщение
01.02.2011, 21:14
#236
Местный
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
))
1. Сохраняю указатель на this и pchar строку формата пакета
2. сохраняю адрес первого параметра в tmp1
3. раскладываю параметры по массиву
Добавлено через 2 часа 41 минуту
ПОМОГИТЕ КТО-НИБУДЬ
Добавлено через 1 час 16 минут
получилось
__________________
Н а ч а л о .
Последний раз редактировалось supernewbie, 01.02.2011 в 21:14 .
Причина: Добавлено сообщение
01.02.2011, 22:59
#237
Местный
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
supernewbie , дак и что не получается? удалось хоть 1байтную команду вызывать, напрмер показать инвертарь?
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
02.02.2011, 00:31
#238
Местный
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
да мне не вызвать надо было, а хук поставить и парсить пакет без гавняканья стека, но щас не об этом, это сделал
---
проблема в том, что есть 2% шанс что что-то пойдет не так, не знаю что именно, но клиент крашится
delphi Код:
procedure ParsingFromServer;
var
np:PNetworkPacket;
s:string ;
p:pointer ;
begin
try
np:=tmp1;
s:=IntToHex ( np.id ,2 ) +' ' ;
if np.size >0 then
for i:=0 to np.size -1 do
begin
p:=Pointer ( cardinal ( np.data ) +( i*1 ) ) ;
s:=s+IntToHex ( byte ( p^) ,2 ) +' ' ;
end ;
except
s:=s+'ERROR PACKET' ;
end ;
end ;
procedure AddNetworkQueue_hook; stdcall;
begin
asm
mov tmpPointer, ecx
mov eax, [esp+4 ]
mov tmp1, eax
end ;
ParsingFromServer; //если убрать вызов парсера то всё ок
asm
mov ecx, tmpPointer
jmp AddNetworkQueue_origAddr
end ;
end ;
шо делать пасаны?
стек ведь должен очищатся после вызова парсера, что опять может быть?
Добавлено через 30 минут
короче если в парисинге делать даже цикл в котором
s:=s+' '; то уже креш может быть, втф?
__________________
Н а ч а л о .
Последний раз редактировалось supernewbie, 02.02.2011 в 00:31 .
Причина: Добавлено сообщение
02.02.2011, 00:42
#239
Рыцарь
Регистрация: 26.06.2009
Сообщений: 2,433
Сказал Спасибо: 154
Имеет 692 спасибок в 426 сообщенях
Цитата:
Сообщение от
supernewbie
mov eax,* [esp+4]
mov tmp1, eax
вротмненоги, убери это
Добавлено через 45 секунд
Цитата:
Сообщение от
supernewbie
procedure AddNetworkQueue_hook; stdcall;
это функция и у нее есть параметр, пропиши его и все извращения со стеком компилятор сделает сам
Добавлено через 1 минуту
важна только эта строчка
Цитата:
Сообщение от
supernewbie
mov tmpPointer, ecx
__________________
Шожиделать.. ботить хочется..
Последний раз редактировалось destructor, 02.02.2011 в 00:42 .
Причина: Добавлено сообщение
02.02.2011, 00:44
#240
Местный
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
лучше скажи, что делать, т.к. по ходу, если я долго обрабатываю пакет то идет крит
__________________
Н а ч а л о .
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 16:10 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!