Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Вниз

Подмена 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 вся ветка

Форум: "Прочее";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.085 c
15-1141295917
ALEXD31
2006-03-02 13:38
2006.03.26
Магнитооптический диск с файловой системой HTFS


2-1142259818
MixAnOL
2006-03-13 17:23
2006.03.26
ActiveX


9-1126253501
RzCoDer
2005-09-09 12:11
2006.03.26
ладшафт в OpenGL


15-1141641383
vecna
2006-03-06 13:36
2006.03.26
Как в Windows XP включить 256 цветов?


2-1141852506
Новочеркасский Волк
2006-03-09 00:15
2006.03.26
Как заставит два TClientSocket одновременно отправлять текст???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский