Dll в C#

Всем привет.У меня такая проблема я пишу Dll injection на C#.Тобеж моя Dll должна внедрится в процесс. У меня внедрение в процесс проходит намано но после этого ничего не происходит поидее должна быть какая - то функция типо точка входа, которая после внедрения будет выполняться, но какая я так и не нашел. Я делал Dll на C++ там есть функция DllMain(...){/ * code * /} в нее я писал то что мне нужно было сделать после внедрения и она нормально вызывалась, есть ли что-то подобное на C# ? если можно приведите небольшой пример dll с точкой входа, чтоб она выводила сообщение к примеру
14 ответов

Как-то не по-кулхацкерски это
Для работы вируса необходим .NET версии 3.0  или более поздней (с)   


alexroot2, Хотите внедрить managed-dll в unmanaged-процесс?    Я думаю, что такие фокусы не прокатят 


Я не совсем понимаю что имеется в виду "managed-dll в unmanaged-процесс" ?Я думаю внедрить C# dll вполне возможно, причем дело даже не во внедрении, внедрить то я внедрил dll в процесс,просто после внедрения никакая функция не вызывается.  Дело в том что я не знаю как в C# dll задать явную точку входа.Единственное что нашел по этому поводу это пример где сталкнулись с такой же проблемой, но там как я понял после долгих раздумий решили не делать dll injection ))))http://social.msdn.microsoft.com/Forums/en...c-ec964f489db6/Вообщем надеюсь ктонить ченить подскажет ))


And there's the problem of getting the CLR loaded and initialized so it can run your managed code.  There's no way to get that done unless the app you are infecting has already loaded the correct version of the CLR.   You'll need to write unmanaged C/C++ code and something like SetWindowsHookEx() to get your code activated.
alexroot2, это именно то, о чём я говорю...


Тобеж как я понял кроме как C/C++ + hook ничего не выйдет. Отстойно )) у меня проект просто на C# написан и переписывать его на C++ Это очень жестоко. 


alexroot2, ну там говорится, что для того, чтобы сделать managed-код работоспособным, надо, чтобы приложение, в которое внедряется dll-ка каким-то макаром загрузило нужную версию CLR(в зависимости от того какая версия нужна DLL-ке)то бишь если на машине не установлен .NET, либо установлен, но более ранней версии, то ничего у Вас не выйдет.


static void Main() { } - не работает? Вроде при компиляции dll по умолчанию эта ф-ия считается точкой входа... я говорю в принципе, не про внедрение конкретно...


-Mikle-, нет к сожалению не работает, я уже че только не пробывал и в конструктор класса запихивал код, нихрена не работает (( 


alexroot2, ну конечно не будет работать  Говорят же CLR нужно загрузить)


Partizan  , ты знаешь как это сделать? ))) ото я чето по гуглу полазил и ничего особо не понял ((


alexroot2, не....я извращениями крайне редко занимаюсь...


alexroot2, не верю, что нет инфы по этой теме. Dll injection - это же тааак классно  Вот, например: http://www.google.ru/search?hl=ru&clie...mp;aq=f&oq=


Partizan, пасиб за помощь, буду чехлитьIdsa, спасибо за ссылку вроде че-то нашел, ща буду разбираться.  
Dll injection - это же тааак классно
согласен на все 100 % ))).  Только как я понял за последние несколько дней C# в этом вопросе не рулит (((


Только как я понял за последние несколько дней C# в этом вопросе не рулит
Ну дык. Не очень популярное это явление? Для того, чтобы подцепить маленькую сборочку, приходится загружать такую дуру (я про CLR). Как-то не по-кулхацкерски это А то, что это возможно, - факт1. Word, Excel (наверное, и другие программы, составляющие Office) умеют работать с managed-плагинами2. Sql Server позволяет писать хранимки и функции на .NET