Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
russeo
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 18
#1

Каким образом зашифровать Hex строки - C++

04.02.2014, 14:08. Просмотров 613. Ответов 7
Метки нет (Все метки)

Интересует следующий вопрос, каким образом можно зашифровать hex строку в dll чтобы ее нельзя было расшифровать.
Сам в прикладном программировании ноль, просто прогер говорит что в любом случае можно будет расшифровать.
В этой строке содержаться адрес сайта с обработчиком.

Жду ответа только от знающих людей, спасибо.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2014, 14:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Каким образом зашифровать Hex строки (C++):

Каким образом переменная отсчитывает выводимые строки? - C++
Добрый день! Я новичок и это мое первое обращение за помощью к опытным программистам. В общем, дело такое. Есть следующий код. Он...

Каким образом разархивировать gzip? - C++
Здравствуйте, имеется буфер (ответ сервера на запрос), заархивированный в gzip (в заголовке - Content-Encoding: gzip) Требуется его...

GUI - каким образом лучше - C++
Подскажите как лучше реализовать GUI (в VS 2012 если быть точнее), слышал я что есть MFS как бы он вроде предназначен для создания GUI но...

Каким образом легче выучить c++ - C++
Как легче понять и выучить язык с++

Каким образом реализуется квалификатор const? - C++
Каким образом реализуется квалификатор const? Хранится ли в памяти в процессе выполнения программы какая либо информация по этому...

Каким образом параметры передаются в функцию? - C++
Задумался над тем, каким образом параметры передаются в функцию. Т.е. как именно это происходит внутри, это уже на вопрос к тому, как...

7
Тамика
Котовчанин
912 / 455 / 145
Регистрация: 16.02.2010
Сообщений: 3,144
Записей в блоге: 27
04.02.2014, 14:09 #2
Может base64 поможет... Но расшифровать ее не очень сложно.
0
russeo
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 18
04.02.2014, 15:23  [ТС] #3
Цитата Сообщение от Тамика Посмотреть сообщение
Может base64 поможет... Но расшифровать ее не очень сложно.
base64 легко расшифровать при наличии декодера, я откровенно говоря думал что base64 только для php.
0
gazlan
3133 / 1909 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
04.02.2014, 17:39 #4
Цитата Сообщение от russeo Посмотреть сообщение
в любом случае можно будет расшифровать
Если сам пароль хранится в программе, то метод шифрования уже неважен - "ключ под ковриком".
0
russeo
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 18
04.02.2014, 18:04  [ТС] #5
Цитата Сообщение от gazlan Посмотреть сообщение
Если сам пароль хранится в программе, то метод шифрования уже неважен - "ключ под ковриком".
Да там нет пароля, просто ссылка на обработчик.
Мне нужно зашифровать саму ссылку!
0
gazlan
3133 / 1909 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
04.02.2014, 19:12 #6
Цитата Сообщение от russeo Посмотреть сообщение
Да там нет пароля, просто ссылка на обработчик
Это тоже самое.

И мало того, в Hex-редакторе ваш зашифрованный текст будет бельмом в глазу. То есть, именно с него хакер и начнет. Используйте обычный XOR, если так хочется, все равно никакой большей защищенности вам не добиться.

Пример декодера для e-Book Edit Pro

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
static const char* const DecodeString(const BYTE* const pString,BYTE bySize)
{
   if (!bySize)
   {
      // Error !
      return NULL;
   }
 
   static char    pszString[MAX_PATH + 1];
   
   memset(pszString,0,sizeof(pszString));
 
   memcpy(pszString,pString,bySize);   // Always secure!
 
   bool     bPrintable = true;
 
   *pszString ^= bySize;
   
   if (!IsPrintable(*pszString))
   {
      // Error !
      return NULL;
   }
 
   for (int ii = 1; ii < (int)bySize; ++ii)
   {
      pszString[ii] ^= pszString[ii - 1];
 
      bPrintable = IsPrintable((BYTE)pszString[ii])  ?  bPrintable  :  false;
   }
 
   return bPrintable  ?  pszString  :  NULL;
}
0
russeo
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 18
04.02.2014, 19:55  [ТС] #7
Могли бы посоветовать как лучше сделать ?
0
gazlan
3133 / 1909 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
04.02.2014, 20:46 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Лучший, по моему мнению, вариант - XOR, я вам уже посоветовал.

И чтобы вы окончательно поняли всю бесполезность этой затеи, расскажу, как было сделано шифрование данных в том же e-Book Edit Pro: вычислялся Hash1 = MD5(UserData1) от блока пользовательских данных (уникален для каждого экземпляра книжки). Вычислялся Hash2 = MD5(UserData2,Hash1) от другого блока пользовательских данных и первого хэша. Вычислялся Hash3 = MD5(UserName,Hash2) от имени пользователя и предыдущего хэша. Использовался собственный алго шифрования (с собственным хэшем) для шифрования блока данных после упаковки ZIP.

Дешифровщик был написан за два месяца учеником 9-го класса и доложен на городской конференции. Учить язык C парень начал где-то месяца на три раньше. До этого никогда не видел ни компилятора, ни отладчика, ни дизассемблера, ни Hex-редактора.

Прикиньте, сколько это займет у профи. Уверен, меньше, чем у вас уйдет времени на отлов багов в защите :-)
1
04.02.2014, 20:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2014, 20:46
Привет! Вот еще темы с ответами:

Каким образом getchar() меняет содержимое массива? - C++
Здравствуйте! Почему-то наличие getchar(); в коде влияет на содержимое массива. Если данный код не менять - то выводит правильный...

Каким образом нормально считать с консоли строку? - C++
Дело в том что необходимо считывать строки вводимые с консоли. Но полноценно это не выходит. Ф-ция scanf() обеспечивает считывание только...

Каким образом программа определяет эффективный угол? - C++
Ребят, объясните одну вещь: есть программа на С++,которая вычисляет при каком угле расстояние полета тела будет максимальным, и выводит...

Каким образом auto может улучшить производительность? - C++
В книге у Мейерса говорится о том, что с точки зрения производительности выводить тип для лямбды лучше через auto. То что такая запись...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru