Показать сообщение отдельно
Старый 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 вне форума   Ответить с цитированием