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

Visual C++

Войти
Регистрация
Восстановить пароль
 
zombivadim
8 / 8 / 1
Регистрация: 03.04.2016
Сообщений: 198
#1

Строки в кавычках в релиз файле - Visual C++

01.01.2017, 20:36. Просмотров 277. Ответов 9
Метки нет (Все метки)

Подскажите, заметил такую особенность, все строки заключенные в кавычки (будь то пути к файлу или комментарии ошибок), в откомпилированном exe, находятся в текстовом формате. Меня это напрягает, как мне избежать того, чтобы любой любопытный мог посмотреть, эту информацию в обычном текстовом редакторе?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.01.2017, 20:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки в кавычках в релиз файле (Visual C++):

Не собирается релиз - Visual C++
и то что дебаг версия запустилась на другом компьютере это нормально?

Релиз версия - Visual C++
1>------ Построение начато: проект: mail_spam_admin, Конфигурация: Release Win32 ------ 1>Компоновка... 1>mail_spam_admin.obj : error...

Вышел релиз GCC 5.1 - C++
С чем всех и поздравляю :) Это первый выпуск проекта версии 5 (GCC 5.0 был пропущен). Среди основных изменений: — поддержка OpenMP...

Релиз mfc приложения - Visual C++
Цель: нужно будет распространять программу. Сама программа небольшая выйдет. Подумал собрать со static linking, но собрав голый...

Не ищет нулевые строки в файле - Visual C++
#include<iostream> #include<fstream> #include<string.h> using namespace std; int podscet(char ms,int n) { int k=0; ...

отличие релиз от дебаг версии - Visual C++
компилирую программу в режиме 1.дебаг и 2.релиз; при одинаковых входных данных, первый экзешник проходит и выполняет программу правильно,...

9
quwy
Native x86
3287 / 2133 / 579
Регистрация: 13.02.2013
Сообщений: 7,104
01.01.2017, 20:49 #2
1. Придумать алгоритм шифрования или кодирования строк (да хоть base64 для начала).
2. Написать утилиту, которая будет шифровать/кодировать строки выбранным способом.
3. Написать функцию расшифровки/декодирования строк и сделать ее глобально видимой в проекте.
4. Пропустить каждую строковую константу и литерал исходников через программу из п. 2, заменив оригинальные строки, и обернуть все обращения к этим строкам функцией из п. 3.

Добавлено через 4 минуты
P.S. Однако любой мало-мальски подкованный реверсист всегда сможет восстановить строки, если захочет. Эта защита исключительно от нубов, и по другому быть просто не может.
1
zombivadim
8 / 8 / 1
Регистрация: 03.04.2016
Сообщений: 198
01.01.2017, 21:03  [ТС] #3
quwy, Я ни в одной программе не видел что бы подобная информация была в открытом виде. Либо все шифруют строки, как вы предложили, либо может есть какая нибудь опция в настройках проекта?
0
quwy
Native x86
3287 / 2133 / 579
Регистрация: 13.02.2013
Сообщений: 7,104
01.01.2017, 21:08 #4
Цитата Сообщение от zombivadim Посмотреть сообщение
Я ни в одной программе не видел что бы подобная информация была в открытом виде.
Да ну?
Строки в кавычках в релиз файле
Стандартный виндовый калькулятор (файл CALC.EXE), прекрасно видны регулярные выражения и текстовые константы.
1
quwy
Native x86
3287 / 2133 / 579
Регистрация: 13.02.2013
Сообщений: 7,104
01.01.2017, 21:12 #5
Firefox последней версии:
Строки в кавычках в релиз файле
Видны даже пути на диске разработчиков, которых на моем компьютере нет.

P.S. Можете сжать бинарник при помощи UPX, тогда строк видно не будет (но распаковывается такой EXE до исходного состояния в два клика).
0
zombivadim
8 / 8 / 1
Регистрация: 03.04.2016
Сообщений: 198
01.01.2017, 21:55  [ТС] #6
quwy, Вы эту информацию увидите в обычном блокноте?

Добавлено через 8 минут
Вы используете какой то режим в FAR? был бы благодарен за пояснение как включить такой просмотр.

Добавлено через 1 минуту
У меня все строковые константы собраны в одном месте и видны в обычном блокноте.
0
quwy
Native x86
3287 / 2133 / 579
Регистрация: 13.02.2013
Сообщений: 7,104
01.01.2017, 22:24 #7
Блокнот, или FAR, не важно. Любая программа просмотра файлов годится. Единственное, что текст может быть в разных кодировках. На скринах выше calc.exe содержит строки в UTF-16LE, а Firefox - в однобайтовой ANSI. Некоторые компиляторы и вовсе используют UTF-8. При использовани FAR файл открывается по F3, а кодировку можно переключять по Shift+F8.
0
zombivadim
8 / 8 / 1
Регистрация: 03.04.2016
Сообщений: 198
01.01.2017, 22:52  [ТС] #8
quwy, Спасибо за подробное разьяснение, начинает доходить. Только в FAR есть богатая возможность выбора кодировок.
0
quwy
Native x86
3287 / 2133 / 579
Регистрация: 13.02.2013
Сообщений: 7,104
01.01.2017, 22:55 #9
zombivadim, не только. Стандантный блокнот при открытии файла тоже позволяет выбрать между однобайтовой и юникодными. Но FAR, конечно, удобнее, там можно на лету переключать.
0
gazlan
3133 / 1909 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
01.01.2017, 23:14 #10
Hiew в помощь. Смотреть / переключать / редактировать.

Strings v2.53
Working on NT and Win2K means that executables and object files will many times have embedded UNICODE strings that you cannot easily see with a standard ASCII strings or grep programs. So we decided to roll our own. Strings just scans the file you pass it for UNICODE (or ASCII) strings of a default length of 3 or more UNICODE (or ASCII) characters. Note that it works under Windows 95 as well.
1
01.01.2017, 23:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.01.2017, 23:14
Привет! Вот еще темы с ответами:

Какие-то цифры после строки в файле - C++
Простите, что тема сдублирована, я совсем новичок, удалять не умею, запутался. После записи в файл после записанного добавляются цифры...

Сообщение об отладке при релиз компиляции - Visual C++
Visual C++ 2010. Режим отладки заменил на релиз. При компиляции в режиме релиза полулчаю сообщение: Не удается найти отладочную...

Отлаживаю программу в режиме релиз, выдает ошибку: Необработанное Исключение Microsoft C++: std::bad_alloc - Visual C++
Отлаживаю программу в режиме релиз, выдает ошибку: Необработанное исключение в "0x75cdc41f" в "Registratura.exe": Исключение Microsoft C++:...

Regex получение строки в кавычках - C#
Как получить "C:\games\file.txt" из строки типа: " Hello World ", при этом отображая все не находящееся в .


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

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

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