Вниз
Скачать: CL | DM;

Подмена DLL   Найти похожие ветки 

← →
Новичоккк   (2006-03-06 15:21) [0]

Имеется DLL с множеством функций (её размер 7mb что уже о многом говорит). Мне надо назначить на одну из функций свое дополнительное действие. Возможно ли это? Вызовы всех функций переадресовывать на стандуртную DLL... Как реализовать? Что для этого надо? Насколько тяжело?


← →
Alkid ©   (2006-03-06 15:23) [1]

Всё зависит от количества функций, экспортируемых этой DLL.


← →
Новичоккк   (2006-03-06 15:29) [2]

Т.е. надо получить список импортируемых функций? А как узнать число параметров и проче... Или это не надо? Никогда не занимался подобным...


← →
Alkid ©   (2006-03-06 15:31) [3]


> .е. надо получить список импортируемых функций? А как узнать
> число параметров и проче... Или это не надо? Никогда не
> занимался подобным...

Для получения списка экспортируемых функций можешь юзать
dumpbin. Если имена декорированные, то из них спокойно достаёшь параметры и тип результата. Если нет, то хуже - надо искать доп. информацию. А где - неизвестно.


← →
Alkid ©   (2006-03-06 15:32) [4]

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


← →
Новичоккк   (2006-03-06 15:45) [5]

Наверное в моем случае это не реально:
File Type: DLL

 Section contains the following exports for Engine.dll

          0 characteristics
   4265DEB7 time date stamp Wed Apr 20 08:46:47 2005
       0.00 version
          1 ordinal base
       9540 number of functions
       9540 number of names

   ordinal hint RVA      name

1    0 0000B4BA ??0?$TArray@E@@QAE@ABV0@@Z
...
9540 2543 0065AF10 intUShadowBitmapMaterialexecDestroy

 Summary

    3954000 .data
       C000 .idata
     17A000 .rdata
      88000 .reloc
     450000 .text


← →
Alkid ©   (2006-03-06 15:47) [6]


> ??0?$TArray@E@@QAE@ABV0@@Z

Поясни. DLL дельфёвая? TArray на мысли наводит.
А вообще - 1-ая запись - декорированное имя. Последняя - нет.
Можно, опять же, вариант с заглушкой попробовать провернуть.


← →
Новичоккк   (2006-03-06 16:00) [7]

Переписывать 9540 функций - не реально

      8952 22F7 00003E3B ?undefinePaths@FPathBuilder@@QAEXPAVULevel@@@Z
      8953 22F8 00011234 ?walkMove@APawn@@QAE?AW4ETestMoveResult@@VFVector@@AAUFCheckResult@@PAVAActor@@M @Z
      8954 22F9 00005088 ?walkReachable@APawn@@QAEHVFVector@@HPAVAActor@@@Z
      8956 22FA 005E238C GPackage
      8955 22FB 00011BE9 _DllMain@12
      8957 22FC 00760378 autoclassAAIController
      8958 22FD 0075A180 autoclassAAIMarker
      8959 22FE 007631E0 autoclassAAIScript
      8960 22FF 00752098 autoclassAActor


← →
jack128 ©   (2006-03-06 16:13) [8]

а зачем вручную?? Написать прогу, которая сгерит исходник заклушек для этих 10000 функций..


← →
Alkid ©   (2006-03-06 16:13) [9]


> Переписывать 9540 функций - не реально

Это, наверное, и не обязательно. Однако, а что ты вообще хочешь сделать?
Мож тебе и не нужны все эти хакерские приколы?


← →
Новичоккк   (2006-03-06 16:20) [10]

А как будет выглядить объявление хотя бы для функции:
?undefinePaths@FPathBuilder@@QAEXPAVULevel@@@Z

Мне нужно выполнять свой код при вызове одной из функций, экспортируемой этой библиотекой. По-моему это можно сделать только таким способом.


← →
Alkid ©   (2006-03-06 16:45) [11]


> Мне нужно выполнять свой код при вызове одной из функций,
>  экспортируемой этой библиотекой. По-моему это можно сделать
> только таким способом.

А зачем, если не секрет? :)

> ?undefinePaths@FPathBuilder@@QAEXPAVULevel@@@Z

 А я тебе так просто этого не скажу, чессное слово :) Ты думаешь я умею раздекорировать имена вот так, на лету? :)


← →
Новичоккк   (2006-03-06 17:27) [12]

Долго объяснять. Это относится не к взлому, а к защите софта.

> А я тебе так просто этого не скажу, чессное слово :) Ты
> думаешь я умею раздекорировать имена вот так, на лету? :
> )

Мне бы направление, куда копать

> Если имена декорированные, то из них спокойно достаёшь параметры
> и тип результата. Если нет, то хуже - надо искать доп. информацию.
>  А где - неизвестно.

Т.е. вот это:
     8957 22FC 00760378 autoclassAAIController
     8958 22FD 0075A180 autoclassAAIMarker
     8959 22FE 007631E0 autoclassAAIScript
     8960 22FF 00752098 autoclassAActor

просто так оттранслировать не получится?


← →
Styx_   (2006-03-06 17:41) [13]

К защите America"s Army?


← →
Новичоккк   (2006-03-06 18:07) [14]

А возможно как-нибудь следить за обращениями к этой DLL с помощью API? Может это будет проще?


← →
Новичоккк   (2006-03-06 18:08) [15]

Надо перехватывать только одну функцию



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.027 c
2-1142113329
anonymous-
2006-03-12 00:42
2006.03.26
Как отловить изменение windowstate формы?


2-1142325914
KyRo
2006-03-14 11:45
2006.03.26
Изменения типа данных


2-1141894640
nap<>
2006-03-09 11:57
2006.03.26
Про формы :)


3-1138806707
Serg2103
2006-02-01 18:11
2006.03.26
SCOPE_IDENTITY() не всегда корректно выполняется


15-1141632664
Бугага
2006-03-06 11:11
2006.03.26
Запустить PHP скрипт в планировщике




   Наверх