5 / 10 / 3
Регистрация: 05.10.2010
Сообщений: 97
1

Метапрограммирование

12.04.2011, 22:32. Показов 2589. Ответов 8
Метки нет (Все метки)

Всем привет! Требуется реализовать функциональность программы, с помощью которой программа при исполнении могла бы менять свой исполняемый файл. Если конкретнее, то необходимо реализовать добавление метода к классу. Юзал мсдн, но там слишком большой объем информации на эту тему, и кроме как данамического создания методов я оттуда ничего выудить не смог. Вобщем если кто в краткой доступной форме может объяснить, как это реализовать, буду очень благодарен)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.04.2011, 22:32
Ответы с готовыми решениями:

boost::mpl и метапрограммирование вцелом
Сейчас сижу любуюсь на mpl::vector. template< typename T0, typename T1, typename T2,...

C++ vs Common Lisp: кодогенерация, метапрограммирование
Дано описание произвольного математических выражений на XML вида: <calc> <mul> ...

Интересует метапрограммирование в VBA: способы работы с Property
у класса есть три свойства и три метода. Каждый из методов заполняет свое свойство через сеттер...

[Метапрограммирование] Определить наличие поля определенного типа в объекте переданном в шаблон
Здравствуйте форумчане. Необходимо в шаблоне определить наличие поля определенного типа у объекта,...

8
5 / 10 / 3
Регистрация: 05.10.2010
Сообщений: 97
14.04.2011, 01:43  [ТС] 2
хм... Нет идей?..
0
1504 / 771 / 103
Регистрация: 22.04.2008
Сообщений: 1,610
14.04.2011, 01:45 3
Посмотрите в сторону Reflection Emit
0
1516 / 640 / 62
Регистрация: 31.03.2009
Сообщений: 2,051
14.04.2011, 04:07 4
Цитата Сообщение от dmz Посмотреть сообщение
Если конкретнее, то необходимо реализовать добавление метода к классу.

Зачем?
0
5 / 10 / 3
Регистрация: 05.10.2010
Сообщений: 97
14.04.2011, 06:07  [ТС] 5
хм, если я отвечу зачем, то ты ответишь как это сделать?=)

Для того, чтобы можно было по сети послать клиентскому приложению код функции и оно смогло расширить свой функционал для дальнейших запусков)
я понимаю, что можно придумать менее изощренный способ, нипример завести у клиента файл с конфигами и присылая экзешник с новым функционалом делать соответствующие записи в конфиге. Но меня заинтересовала возможность модификации экзешника самого клиента, во-первых, и вариант с конфигами не очень походит для программы-вируса, во-вторых=) Просто сделать так, чтоб жертва не запалила одну прогу, имея разовый доступ к компу видится не сложным, а вот за комплекс прог уже поручится сложнее...

Ну а вообще преобладает конечно просто природное любопытство)
0
1516 / 640 / 62
Регистрация: 31.03.2009
Сообщений: 2,051
14.04.2011, 06:14 6
Цитата Сообщение от dmz Посмотреть сообщение
Для того, чтобы можно было по сети послать клиентскому приложению код функции и оно смогло расширить свой функционал для дальнейших запусков)
я понимаю, что можно придумать менее изощренный способ, нипример завести у клиента файл с конфигами и присылая экзешник с новым функционалом делать соответствующие записи в конфиге.
Обычно такая функциональность реализуется ввиде плагинов. Например, определяешь заранее интерфейсы, а потом рассылаешь пользователям сборки, в которых находятся классы, реализующие эти интерфейсы; а основная программа их подгружает через рефлекшн.

Цитата Сообщение от dmz Посмотреть сообщение
Но меня заинтересовала возможность модификации экзешника самого клиента, во-первых, и вариант с конфигами не очень походит для программы-вируса, во-вторых=) Просто сделать так, чтоб жертва не запалила одну прогу, имея разовый доступ к компу видится не сложным, а вот за комплекс прог уже поручится сложнее...
Вирус на шарпе? Да ты оригинал.
0
5 / 10 / 3
Регистрация: 05.10.2010
Сообщений: 97
14.04.2011, 07:07  [ТС] 7
Цитата Сообщение от NightmareZ Посмотреть сообщение
Обычно такая функциональность реализуется ввиде плагинов. Например, определяешь заранее интерфейсы, а потом рассылаешь пользователям сборки, в которых находятся классы, реализующие эти интерфейсы; а основная программа их подгружает через рефлекшн.
Хм... а если заранее не известны все интерфейсы?

Цитата Сообщение от NightmareZ Посмотреть сообщение
Вирус на шарпе? Да ты оригинал.
Ну вообще-то я не первый=) Уже была история про девочку, которая вирус на шарпе написала.
Не надо только считать меня полным придурком) Прекрасно понимаю, что лучше писать на с или asm подобные вещи, но это подходит для вирусов, которые расчитаны на широкую публику. Моя же идея рассчитана на пару-тройку жертв, у которох
1) 100% установлен фреймворк.
2) Я могу получить кратковременный доступ к компу.

Так почему бы не воспользоваться удобностью шарпа в плане реализации клиент-серверных приложений, да и вообще удобства ооп, чтобы получить программу, с помощю которой можно управлять чужим компом?=)
Просто на с или с++ ручками, думается мне, пришлось бы работать больше чем на шарпе)

Так что... все обоснованно вполне=) Или ты думаешь иначе?
0
Кодило
251 / 179 / 23
Регистрация: 25.11.2009
Сообщений: 685
14.04.2011, 09:11 8
Я думаю, что обсуждение разработки вирусов здесь запрещено
0
Почетный модератор
Эксперт .NET
8710 / 3662 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
14.04.2011, 09:23 9
Тема закрыта. Причина написана выше.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2011, 09:23
Помогаю со студенческими работами здесь

Метапрограммирование в boost::proto (boost::spirit)
В библиотеке boost:: proto есть такой код calculator<proto::terminal<placeholder<0> >::type>...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru