Вниз
Скачать: 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.026 c
9-1126594429
WondeRu
2005-09-13 10:53
2006.03.26
OpenGL. Вывод одновременно растрового и векторного шрифтов. Как?


2-1141910495
11111
2006-03-09 16:21
2006.03.26
Ерунда какая-то с числами


1-1140440398
wezzz
2006-02-20 15:59
2006.03.26
Как задать ModalResult?


15-1141248590
Игорь Шевченко
2006-03-02 00:29
2006.03.26
Катя, с днем рождения!


3-1138788233
AlAnNik
2006-02-01 13:03
2006.03.26
Проблема с MSDE




   Наверх