Посл.ответ |
Сообщение |
Ранг: 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.17↘0 Статус: Участник системщик
|
Создано: 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.13↘0 Статус: Участник
|
Создано: 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.17↘0 Статус: Участник системщик
|
Создано: 30 мая 2008 00:30 · Личное сообщение · #6
nss3.dll это С библиотека, накакого name mangling тут нет. Firefox.exe прото имеет эти ф-ции в импорте. Так что, перехватывай используя detours, или патчи саму .dll или просто перекомпиль её и замени.
| Сообщение посчитали полезным: |
Ранг: 309.8 (мудрец), 21thx Активность: 0.17↘0 Статус: Участник
|
Создано: 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.17↘0 Статус: Участник системщик
|
Создано: 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
нет
| Сообщение посчитали полезным: |