|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
29.08.2015, 20:43 | #1 | |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
Работа с памятью
Всем привет. Есть задача - зашифровать исполняемый код после его выполнения.
Как я делаю ... объявляю 2 переменных, и между ними указываю код, который необходимо зашифровать после выполнения ... Код:
Код:
Цитата:
|
|
29.08.2015, 20:57 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Конечно бред - где у вас операция получения адреса?
ShowMessage(IntToHex(&val1, 8)); |
29.08.2015, 23:28 | #3 | |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
С этим моментом разобрался, спасибо ...
Код:
Код:
Цитата:
|
|
30.08.2015, 00:55 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
А почему должна быть ошибка?
И кстати, системные вызовы неплохо проверять на предмет ошибок. |
30.08.2015, 01:28 | #5 | |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
-Jack-, посмотрите как выглядит код в дизассемблере и станет все понятно. Так можно только зашифровать данные в стеке, но никак не код. К тому же, вполне возможно, что оптимизатор может менять последовательность переменных в стеке.
Код C++ Builder 6: Код:
Код:
Цитата:
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Последний раз редактировалось Krasiosoft; 30.08.2015 в 01:35. |
|
30.08.2015, 01:37 | #6 | |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
Цитата:
Ну да, сама процедура написана на паскале,а всё остальное на С++ Последний раз редактировалось -Jack-; 30.08.2015 в 01:40. |
|
30.08.2015, 01:43 | #7 | |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
Цитата:
Никогда подобного не встречал, это в какой среде разработки такое можно сделать?
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Последний раз редактировалось Krasiosoft; 30.08.2015 в 01:47. |
|
30.08.2015, 01:47 | #8 |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
Полагаю для указателей надо нужно использовать константы. Задали константам dummy-значения, скомпилировали программу, посмотрели по какому адресу получился нужный код, поменяли значения констант на нужные в каком-нить hex-редакторе. Ну или как-то извне их получать, в виде ключа программы.
Но я не работал с подобным, подозреваю может не быть доступа к этим адресам runtime, не? |
30.08.2015, 01:52 | #9 | |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
Цитата:
Не помню, с какой версии это стало возможным, но в XE7 точно такое можно вытворять ) |
|
30.08.2015, 01:58 | #10 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
Никогда подобного не делал, но через переменные это не получиться сделать. В C++ есть label и goto, но как взять адрес label, не знаю, а так бы это был отличный вариант.
Ааа, ясно)) просто у меня все еще старенькие Delphi 7 и C++ Builder 6.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с памятью в С++ | Пaвeл | Общие вопросы C/C++ | 24 | 14.10.2013 09:31 |
Работа с памятью | mufesto | Win Api | 1 | 30.01.2012 15:13 |
работа с памятью | Mr_ViK | Win Api | 13 | 16.01.2012 01:53 |
Работа с памятью. | nazavrik | Общие вопросы C/C++ | 0 | 07.10.2009 23:17 |
Работа с памятью | Shurik Hacker | Общие вопросы Delphi | 7 | 22.06.2007 20:51 |