запротектить строки
От: niXman Ниоткуда https://github.com/niXman
Дата: 11.05.14 17:55
Оценка:
привет!

есть программа на С++, и, к примеру, в программе есть такая строка:
int main() {const char *str = "123456"; }

теперь, если скомпилять такую программу и просмотрет экзешник даже в текстовом редакторе, то мы сможем без труда найти эту строку.

как одно из решений, думаю, поступить так:
1. каждую такую строку оборачиваем, к примеру, в 'const char* protect_string(const char *str) {return str;}', т.е. получится такое: 'const char *str = protect_string("123456");'
2. пишем парсер исходников, который запускается в 'pre-build steps'
3. парсер, находя такую функцию, берет ее аргумент, кодирует каким-то алгоритмом, вырезает 'protect_string()', и вставляет результат, к примеруц получится такое: 'const char *str = "a7d6e844a178c5";'
4. после этого исходники компиляются
5. программа протектится специальным протектором, который не позволяет проводить дизасемблирование, отладку, етц...
6. уже во время работы программы, для использования этих строк, происходит декодирование
вопрос в том, как быть с ключем, которым кодировались строки? ибо если его не закодировать, то возможно кто-то таки раскусит и ключ и алгоритм кодировани.

кто-то задумывался о чем-то подобном?

спасибо.


12.05.14 15:36: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.