![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 | |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
![]()
Всем привет. Есть задача - зашифровать исполняемый код после его выполнения.
Как я делаю ... объявляю 2 переменных, и между ними указываю код, который необходимо зашифровать после выполнения ... Код:
Код:
Цитата:
|
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Конечно бред - где у вас операция получения адреса?
ShowMessage(IntToHex(&val1, 8)); |
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
![]()
С этим моментом разобрался, спасибо ...
Код:
Код:
Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
А почему должна быть ошибка?
И кстати, системные вызовы неплохо проверять на предмет ошибок. |
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
![]()
-Jack-, посмотрите как выглядит код в дизассемблере и станет все понятно. Так можно только зашифровать данные в стеке, но никак не код. К тому же, вполне возможно, что оптимизатор может менять последовательность переменных в стеке.
Код C++ Builder 6: Код:
Код:
Цитата:
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Последний раз редактировалось Krasiosoft; 30.08.2015 в 01:35. |
|
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
![]() Цитата:
Ну да, сама процедура написана на паскале,а всё остальное на С++ Последний раз редактировалось -Jack-; 30.08.2015 в 01:40. |
|
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
![]() Цитата:
Никогда подобного не встречал, это в какой среде разработки такое можно сделать?
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Последний раз редактировалось Krasiosoft; 30.08.2015 в 01:47. |
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
![]()
Полагаю для указателей надо нужно использовать константы. Задали константам dummy-значения, скомпилировали программу, посмотрели по какому адресу получился нужный код, поменяли значения констант на нужные в каком-нить hex-редакторе. Ну или как-то извне их получать, в виде ключа программы.
Но я не работал с подобным, подозреваю может не быть доступа к этим адресам runtime, не? |
![]() |
![]() |
![]() |
#9 | |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
![]() Цитата:
Не помню, с какой версии это стало возможным, но в XE7 точно такое можно вытворять ) |
|
![]() |
![]() |
![]() |
#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 |