Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 02.02.2011, 23:14   #261
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

хм, интересно что туда передается

Добавлено через 18 минут
мне показалось или туда идет указатель на указатель на нетворк пакет)

Добавлено через 22 минуты
че-то хукнул диспатч нетворк, не дает никуда ничего сделать) вызываю процедуры свои - крит

Добавлено через 14 минут
блин, че за фигня, как будто состав нетворк пакета изменился!

Добавлено через 2 минуты
delphi Код:
public: virtual int __thiscall UNetworkHandler::DispatchNetworkQueue(struct NetworkPacket * *) public: virtual int __thiscall UNetworkHandler::AddNetworkQueue(struct NetworkPacket *)

вроде у обоих один хрен, только у одного указатель на пакет, а у другого указатель на указатель на пакет, соответственно

delphi Код:
PPNetworkPacket =^PNetworkPacket;   PNetworkPacket =^TNetworkPacket;   TNetworkPacket = packed record     id: byte;      res: byte;     id2: Smallint;     size: Cardinal;     data: Pointer;   end;
как у них может быть разное содержимое? что происходит?

Добавлено через 3 минуты
странно, почему он вызывается постоянно! это странно

причем параметр 0 всегда, хм

Добавлено через 2 минуты
да что же происходит то

Добавлено через 1 минуту
ПОМОГИТЕ КТО-НИБУДЬ
__________________
Начало.

Последний раз редактировалось supernewbie, 02.02.2011 в 23:14. Причина: Добавлено сообщение
supernewbie вне форума   Ответить с цитированием
Старый 02.02.2011, 23:34   #262
Рыцарь
 
Аватар для Morfik
 
Регистрация: 13.10.2009
Сообщений: 665
Сказал Спасибо: 38
Имеет 172 спасибок в 108 сообщенях
Morfik пока неопределено
По умолчанию

supernewbie, туда приходит параметром указатель, изначально равный нулю, где после вызова оригинала будет лежать адрес указателя где лежит пакет, тоесть работать с ним нужно после вызова оригинала.

А постоянно вызывается это как раз игра пакеты пришедшие забирает.

я чет тоже с ним копался так до ума и недовел)
Morfik вне форума   Ответить с цитированием
Старый 03.02.2011, 01:18   #263
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

как туда может приходить 0 и выходить не 0? что за черт возьми мать твою)) ну ладно, попытаюсь хукнуть в конце

Добавлено через 2 минуты
внатуре же, тока там не указатель равен нулю, а по указателю 0 лежит...

Добавлено через 54 секунды
так, блин, таблицу менять круче было, а то я в сплайсинге до конца не разобрался..

Добавлено через 47 секунд
ну давайте попробуем... узнать бы еще где у этой функции конец

Добавлено через 2 минуты
function SizeOfProc(Proc: pointer): dword; надеюсь эта штука работает

Добавлено через 8 минут
вот как я понял, сплайсинг из advApiHook строится на том, что они сохраняют старую функцию, гадят в нее джампом, и потом из новой вызывают сохраненную, это так?

Добавлено через 55 секунд
а как установить джамп не повреджая код оригинальнйо функции? и как вернутся обратно? просто сделать джамп в след строку кода в оригинальной функции после моего джампа будет достаточно?

Добавлено через 38 минут
PS попробовал делать SetLength стринг строки, и потом вставлять символы по индексам, тоже критует, отстой какой-то

Добавлено через 7 минут
да не, короче дело вообще не в том что там какие-то сокеты да че, он просто критует, какого хера - хз, ну помогите кто-нибудь(( че не так с этой стринг строкой, TList нормально в памяти размещается как-то, массивы тоже, даже динамические, если нормально память выделять, а вот с стринг строками никак!

Добавлено через 10 минут
блин нет, я явно что-то не так делаю, т.к. криты становятся просто РЕЖЕ, как вообще нужно выделять память в чужом приложении для своей дллки в нем?

Добавлено через 27 минут
я уже не знаю, НУ ЧТО тут может быть не так

delphi Код:
procedure Proc; var   i:integer;   s,s1:string;   j:cardinal; begin s:=''; if PacketsFromServer.Count>0 then begin with TFullPacketServer(PacketsFromServer.Items[0]) do begin j:=3; if id2<>-1 then inc(j,6); SetLength(s,length(s)+(length(data)*3)+j); s1:=IntToHex(id,2); s[1]:=s1[1]; s[2]:=s1[2]; s[3]:=' '; if id2<>-1 then begin s1:=IntToHex(id2,4); s[4]:=s1[1]; s[5]:=s1[2]; s[6]:=' '; s[7]:=s1[3]; s[8]:=s1[4]; s[9]:=' '; end;                  for i:=0 to length(data)-1 do begin s1:=inttohex(data[i],2); s[j+1]:=s1[1]; s[j+2]:=s1[2]; s[j+3]:=' '; inc(j,3); end; end; Writeln('FromServer:'+s); PacketsFromServer.Delete(0); end; end;
__________________
Начало.

Последний раз редактировалось supernewbie, 03.02.2011 в 01:18. Причина: Добавлено сообщение
supernewbie вне форума   Ответить с цитированием
Старый 03.02.2011, 01:22   #264
Рыцарь
 
Аватар для Morfik
 
Регистрация: 13.10.2009
Сообщений: 665
Сказал Спасибо: 38
Имеет 172 спасибок в 108 сообщенях
Morfik пока неопределено
По умолчанию

скажи внятно чего ты хочеш добится от перехваченого пакета?)
Morfik вне форума   Ответить с цитированием
Старый 03.02.2011, 01:25   #265
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

сделать из него стринг строку и вывести в консоль
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
Старый 03.02.2011, 01:41   #266
Рыцарь
 
Аватар для Morfik
 
Регистрация: 13.10.2009
Сообщений: 665
Сказал Спасибо: 38
Имеет 172 спасибок в 108 сообщенях
Morfik пока неопределено
По умолчанию

ммм, попробуй оставить свои мего операции со стрингом, но закоментить writeLn - будет крит или нет
Morfik вне форума   Ответить с цитированием
Старый 03.02.2011, 02:05   #267
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

будет, проверял всё что можно, убираю цикл в котором идет заполнение строки - нету крита
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
Старый 03.02.2011, 02:45   #268
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

supernewbie, у тебя процедура Proc вместо SendPacket что ли вызывается? Если да то где сохранение восстановление важных регистров?
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Старый 03.02.2011, 02:50   #269
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

госпади

нате всё че есть

delphi Код:
procedure Proc; var   i:integer;   s,s1:string;   j:cardinal; begin s:=''; if PacketsFromServer.Count>0 then begin with TFullPacketServer(PacketsFromServer.Items[0]) do begin j:=3; if id2<>-1 then inc(j,6); SetLength(s,length(s)+(length(data)*3)+j); s1:=IntToHex(id,2); s[1]:=s1[1]; s[2]:=s1[2]; s[3]:=' '; if id2<>-1 then begin s1:=IntToHex(id2,4); s[4]:=s1[1]; s[5]:=s1[2]; s[6]:=' '; s[7]:=s1[3]; s[8]:=s1[4]; s[9]:=' '; end;                  for i:=0 to length(data)-1 do begin s1:=inttohex(data[i],2); s[j+1]:=s1[1]; s[j+2]:=s1[2]; s[j+3]:=' '; inc(j,3); end; end; Writeln('FromServer:'+s); PacketsFromServer.Delete(0); end; end; procedure ParsingFromServer(curpck:PNetworkPacket); stdcall; var   p:pointer;   b:byte;   data1:arrayofbyte;   i:integer;   //s:PChar;   //s:string;  begin   SetLength(data1,curpck.size);   if (curpck.size>0) and (curpck.size<3000) then   for i:=0 to curpck.size-1 do   begin   p:=Pointer(cardinal(curpck.data)+i);   b:=Byte(p^);   data1[i]:=b;   end;   PacketsFromServer.Add(TFullPacketServer.create(curpck,data1));   Proc;   SetLength(data1,0);   //writeLn('FromServer:'+data);   }   //writeln('ïàðñþ '+inttostr(curpck.size));//iteln('ïàðñþ '); end; procedure AddNetworkQueue_hook(np:PNetworkPacket); stdcall; begin asm pushad end; ParsingFromServer(np); asm popad; push np; call [AddNetworkQueue_origAddr] end; end;

бредовость из-за того что я уже не знаю из-за чего критует, переделывал как мог)
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
Старый 03.02.2011, 03:18   #270
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

supernewbie,

1. если в процедуре proc закоментить вообще все то все равно крашится ?

2. procedure AddNetworkQueue_hook(np:PNetworkPacket); stdcall;
что это? stdcall; в делфи не соответвует соглашению stdcall в с++

И вообще функция UNetworkHandler::AddNetworkQueue(struct NetworkPacket *) идет thiscall, ты используешь специальный переходник для корректного вызова функции AddNetworkQueue_hook?
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



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

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


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

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!