|
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
|
||||||
Как спрятать строки внутри программы01.09.2021, 19:36. Показов 7207. Ответов 42
Метки нет (Все метки)
Есть утилита которая вытаскивает все строки из exe-файла Strings, ну и естественно не одна она такая.
Может кто подскажет, как строки можно прятать или шифровать чтобы их невозможно было вытащить в чистом виде? Простой пример:
0
|
||||||
| 01.09.2021, 19:36 | |
|
Ответы с готовыми решениями:
42
Как задать внутри программы новое значение для строки в db Как внутри exe спрятать другую программу - запакованную в zip-архив? Как спрятать иконку программы в панели задач? |
|
Труд вопреки насмешкам
|
|||||||||||
| 01.09.2021, 20:04 | |||||||||||
|
1. Хешируете ваш пароль здесь.
2. В начале файла с кодом подключаете пространства имен System.Security.Cryptography и System.Text. 3. В публичном статическом классе пишете:
using static <ProjectName>.<ClassName>;.5. В месте проверки пароля пишете:
0
|
|||||||||||
|
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
|
||||||
| 01.09.2021, 20:06 [ТС] | ||||||
|
Речь не о пароле, а о скрытие строк
string password лишь для примера. Пусть это будет:
0
|
||||||
|
Труд вопреки насмешкам
|
||
| 01.09.2021, 20:16 | ||
|
0
|
||
|
Администратор
|
|
| 01.09.2021, 20:21 | |
|
Nalik, если цель только в том чтобы скрыть строку от програм типа Strings, то зашифруйте её и храните в виде массива байтов. На этапе исполнения дешифруйте.
Если цель в другом, то озвучьте её чтобы можно было предложить подходящее решение.
0
|
|
|
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
|
|
| 01.09.2021, 20:36 [ТС] | |
|
OwenGlendower, все верно, цель только в этом. Там нет никаких критических данных, просто есть некоторые строки которые не хотелось бы выставлять на всеобщее обозрение.
Добавлено через 38 секунд OwenGlendower, я так понимаю все сводится к тому, чтобы просто не использовать тип string?) Добавлено через 1 минуту Etyuhibosecyu, хранить пароли в программе само по себе нельзя, нет смысла их хоть как-то шифровать внутри программы. Задача простая, я просто не хочу чтобы кто-то мог вытащить из вне ссылку на мой любимый форум ![]() Добавлено через 1 минуту Но при этом я хочу иметь возможность перейти на мой любимый форум по нажатию button допустим через Process.Start
0
|
|
|
Труд вопреки насмешкам
|
||
| 01.09.2021, 20:37 | ||
|
1
|
||
|
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
|
|
| 01.09.2021, 20:39 [ТС] | |
|
Etyuhibosecyu, обсуждение криптостойкости хешей заслуживает отдельной темы, здесь не об этом)
0
|
|
|
Труд вопреки насмешкам
|
|||
| 01.09.2021, 21:06 | |||
|
0
|
|||
|
Администратор
|
||||||||||||
| 01.09.2021, 21:20 | ||||||||||||
Функция для шифрования
В коде эту функцию держать необязательно
На всякий случай. Приведенный пример защищает только от обнаружения строки с помощью утилиты strings или аналогичной ей. Любой умеющий использовать декомпилятор и хоть немного знакомый с криптографией расшифрует строки без особых усилий. Ну и ключи и вектор замените на свои значения, конечно. Также можете поиграться с ними чтобы получить зашифрованное значение максимально непохожее на строку. Etyuhibosecyu, вы перемудрили
0
|
||||||||||||
|
628 / 392 / 135
Регистрация: 06.03.2017
Сообщений: 1,469
|
|
| 01.09.2021, 21:39 | |
|
берем ILSpy, указываем путь к программе, видим исходный код)
0
|
|
|
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
|
|
| 01.09.2021, 22:17 [ТС] | |
|
OwenGlendower, это вы предлагаете заранее зашифровать строки и в коде использовать уже зашифрованные строки и на ходу их расшифровывать?)
Добавлено через 18 секунд Pilarentes, меня пока не интересуют вопросы декомпиляции )
0
|
|
|
Администратор
|
|
| 01.09.2021, 22:19 | |
|
0
|
|
|
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
|
|
| 01.09.2021, 22:29 [ТС] | |
|
OwenGlendower, наверное имеет смысл использовать это в связке с SecureString ? Чтобы из памяти не достали строку.
0
|
|
|
Администратор
|
|
| 01.09.2021, 22:38 | |
|
Nalik, я не зря уточнял требования. Защита в памяти это уже совсем другое. И нет, SecureString тут не поможет потому что чтобы открыть браузер адрес должен быть в открытом виде.
0
|
|
|
|
||
| 01.09.2021, 22:57 | ||
|
Самый простой способ уже описали -- хранить в программе в ином виде (зашифрованом, как массив байт, base64, да хоть в виде png) и в рантайме приводить к нужному. Обфускация кода для усложнения декомпилирования (я бы ожидал что на этом этапе происходит защита const string, но не особо в курсе что там к чему) и это по сути максимум что можно выжать. Либо супер упоротый вариант: - пишем либу с стартовым методом Main - перегоняем в массив byte[] и шифруем. - на запуске расшифровуем, подгружаем через Assembly.Load, через рефлексию вызываем Main. - ... - 8 упоротых сов из 16 возможных.
0
|
||
|
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
|
|
| 02.09.2021, 04:38 [ТС] | |
|
OwenGlendower, спасибо)
0
|
|
|
14301 / 9386 / 1353
Регистрация: 21.01.2016
Сообщений: 35,385
|
||
| 02.09.2021, 05:13 | ||
|
Nalik, ваша хотелка бесполезна и в принципе нереализуема. Ваше приложение в любом случае будет содержать код дешифрования строки и ключи (если таковые есть). Программы на .NET декомпилируются на раз-два. Код дешифрования воспроизводится во внешней утилите на три-четыре. Ваши строки на руках у человека.
Всякие "шифрования" строк помогут только от детей, которым всё равно в вашем приложении смотреть не на что. А того, кто реально заинтересуется, это не остановит.
1
|
||
|
Администратор
|
||
| 02.09.2021, 08:25 | ||
0
|
||
|
14301 / 9386 / 1353
Регистрация: 21.01.2016
Сообщений: 35,385
|
|
| 02.09.2021, 08:28 | |
|
OwenGlendower, что, серьёзно?) Но... зачем это было сделано?)
0
|
|
| 02.09.2021, 08:28 | |
|
Помогаю со студенческими работами здесь
20
Спрятать файл внутри другого файла без потери работоспособности обоих Как взять координаты внутри другой программы (самого окна). У меня берёт только позицию программы в экране Спрятать IP от программы Спрятать исходник программы Спрятать значек программы в трее Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|