Сейчас на форуме: Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+3 невидимых)

 eXeL@B —› Программирование —› перехват nss функций в firefox'e
Посл.ответ Сообщение

Ранг: 7.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 28 мая 2008 16:39
· Личное сообщение · #1

Делаю стандартный (с помощью либы мс-рем'a) перехват:
Код:
function Nfunc(data:pchar): Integer; stdcall;
begin
MessageBox(0,data,'some data',0);
Result:=Tfunc(data:pchar);
end;


В месаджбоксе вижу данные которые идут на функцию, но при исполнении строки Result:=Tfunc(data:pchar); лиса вылетает с ошибкой. С другими апи (winsock,wininet) все работает.

Как это исправить????




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 28 мая 2008 19:40 · Поправил: s0larian
· Личное сообщение · #2

А какую ты ф-цию ты пытаешься перехватить? В firefox-е куча COM-образных интерфейсов использующих их собственный XPCOM, и все c++ имена пройдут через name mangling (decoration).



Ранг: 7.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 28 мая 2008 20:43
· Личное сообщение · #3

Ну например HASH_Update с либы nss3.dll , у меня со всеми функциями с этой либы такая фигня



Ранг: 253.9 (наставник)
Активность: 0.130
Статус: Участник

Создано: 28 мая 2008 20:45
· Личное сообщение · #4

eminem
уверен что там stdcall?

-----
MicroSoft? Is it some kind of a toilet paper?




Ранг: 7.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 28 мая 2008 20:47 · Поправил: Модератор
· Личное сообщение · #5

ставил cdecl , всеравно не пашет.
s0larian а как сделать перехват через name mangling (decoration) ???




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 30 мая 2008 00:30
· Личное сообщение · #6

nss3.dll это С библиотека, накакого name mangling тут нет. Firefox.exe прото имеет эти ф-ции в импорте. Так что, перехватывай используя detours, или патчи саму .dll или просто перекомпиль её и замени.



Ранг: 309.8 (мудрец), 21thx
Активность: 0.170
Статус: Участник

Создано: 30 мая 2008 01:18
· Личное сообщение · #7

interlockedexchange в iat firefox.exe....

-----
Shalom ebanats!




Ранг: 7.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 30 мая 2008 17:49
· Личное сообщение · #8

SLV можно конкретней как использувать функцию interlockedexchange в моем случае??




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 30 мая 2008 19:51
· Личное сообщение · #9

eminem, он имеет ввиду что указатель в IAT божно заменить. Замена машинного слова (32 бит) производится спец. инструкцией, или вот этой ф-цией:

msdn.microsoft.com/en-us/library/ms683590(VS.85).aspx



Ранг: 7.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 02 июня 2008 15:50
· Личное сообщение · #10

вопрос решен) всем спасибо.



Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 03 июня 2008 01:30
· Личное сообщение · #11

ну а поделиться со всеми решением ?



Ранг: 7.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 04 июня 2008 12:57
· Личное сообщение · #12

нет


 eXeL@B —› Программирование —› перехват nss функций в firefox'e
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати