Название: Обфускация строк бинарника Отправлено: qate от Октябрь 07, 2016, 15:53 Применял ли кто обфускацию строковых констант бинарника ?
Чтобы любопытный пользователь не смог заглянуть и посмотреть строки, некоторые из которых могут содержать чтото важное. Для целей защиты от дурака. Название: Re: Обфускация строк бинарника Отправлено: __Heaven__ от Октябрь 07, 2016, 16:12 Можно попробовать из алфавита набирать индексами нужное слово.
Можно в ресурсах хранить картинки и расшифровывать их в строки по цвету. Можно штрихкоды коды хранить в ресурсах. Название: Re: Обфускация строк бинарника Отправлено: gil9red от Октябрь 07, 2016, 16:20 Можно сжимать строку получив байтовый массив (например, алгоритмом deflate)
Байтовый массив кодировать в base64 и хранить его как строку Потом обратными получить исходную строку. Кодировать/декодировать по какому-нибудь алгоритму шифрования. Ключ, где-то спрятать среди переменных. Название: Re: Обфускация строк бинарника Отправлено: qate от Октябрь 07, 2016, 22:29 не, иметь в коде не читаемую самому же себе строку неудобно совсем
я думаю использовать чтото из https://github.com/andrivet/ADVobfuscator вот думаю какие проблемы могут быть Название: Re: Обфускация строк бинарника Отправлено: gil9red от Октябрь 07, 2016, 22:56 не, иметь в коде не читаемую самому же себе строку неудобно совсем я думаю использовать чтото из https://github.com/andrivet/ADVobfuscator вот думаю какие проблемы могут быть Вы случаем не пароли / секретные ключи храните? :) Название: Re: Обфускация строк бинарника Отправлено: Igors от Октябрь 08, 2016, 09:47 не, иметь в коде не читаемую самому же себе строку неудобно совсем Вообще-то строки должны храниться в ресурсах (не путать с Qt ресурсами)Название: Re: Обфускация строк бинарника Отправлено: Bepec от Октябрь 08, 2016, 09:51 Он имеет в виду строковые константы в коде. Которые в бинарник попадают в читаемом виде, вполне мб даже в ресурсы.
Тут нужно или обфусцировать весь бинарник после компиляции, либо писать свою "надстройку" типа moc. Готовых решений для такой задачи я не видел :) Название: Re: Обфускация строк бинарника Отправлено: qate от Октябрь 08, 2016, 10:24 Вы случаем не пароли / секретные ключи храните? :) а где же их еще хранить ? ) Название: Re: Обфускация строк бинарника Отправлено: kambala от Октябрь 08, 2016, 14:08 самое банальное — использовать шифр Цезаря
Название: Re: Обфускация строк бинарника Отправлено: qate от Октябрь 08, 2016, 18:30 самое банальное — использовать шифр Цезаря это ответ на вопрос о хранении пароля в бинарнике или обфускации строк ? Название: Re: Обфускация строк бинарника Отправлено: kambala от Октябрь 09, 2016, 01:18 обфускация :)
Название: Re: Обфускация строк бинарника Отправлено: poru от Октябрь 10, 2016, 12:32 А что если самораспаковывающийся архив? Для дурака, с первого взгляда совсем не заметно и не понятно, да и распаковка будет не на диске, а в ОЗУ.
Название: Re: Обфускация строк бинарника Отправлено: qate от Октябрь 10, 2016, 15:36 А что если самораспаковывающийся архив? Для дурака, с первого взгляда совсем не заметно и не понятно, да и распаковка будет не на диске, а в ОЗУ. 1. сторонний софт не охота тянуть, возиться с его багами 2. можно и командой распаковать, так что защиты никакой нет 3. это ничем не лучше обфускатора "на шаблонах" Название: Re: Обфускация строк бинарника Отправлено: Alex Custov от Октябрь 10, 2016, 16:12 Я использовал SimpleCrypt
Название: Re: Обфускация строк бинарника Отправлено: AlexEx от Октябрь 21, 2016, 11:41 У меня сделано просто (в VS2008, но идея понятна), строковые константы вынесены в файл asm, где видны в читаемом виде:
Код: .686 Код: extern "C" char regKey[]; Допилить до Qt-овых особенностей уже нетрудно :). Название: Re: Обфускация строк бинарника Отправлено: deMax от Октябрь 21, 2016, 13:49 Вы случаем не пароли / секретные ключи храните? :) а где же их еще хранить ? )Название: Re: Обфускация строк бинарника Отправлено: gil9red от Октябрь 21, 2016, 14:05 Вы случаем не пароли / секретные ключи храните? :) а где же их еще хранить ? )Смотря с чем работаешь :) Если к какому-то сервису обращаешься, то ему ведь передается пароль, а не хеш от пароля, а тот уже если правильный пароль хеширует и в базе сохраняет, а так отдать хеш пароля, чтобы сервис сделал хеш хеша пароля, чтобы потом ругаться :) Название: Re: Обфускация строк бинарника Отправлено: Akon от Октябрь 27, 2016, 11:19 У меня была задача - строка должна оставаться открытой (видимой) в бинарнике, например, это может быть информация об авторских правах, но стойкой к изменению, т.е. любопытный пользователь изменяет строку в HEX-редакторе, а она все равно предстает в программе в неизменном виде.
Для решения использовалось помехоустойчивое кодирование (коды Рида-Соломона). Вкратце, суть: вместо исходной строки Код: "хрен изменишь!" Код: "хрен изменишь!виьдил ывдуцщиму" Это так-называемая систематическая форма кодирования, в которой исходная информация используется в неизменном виде. Существует и несистематическая форма, в которой исходная информация в неизменном виде не присутствует, что можно использовать для целей сокрытия. Существует несколько открытых и нет С/С++ либ для решения задач, связанных с помехоустойчивам кодированием. Название: Re: Обфускация строк бинарника Отправлено: gil9red от Октябрь 27, 2016, 11:29 У меня была задача - строка должна оставаться открытой (видимой) в бинарнике, например, это может быть информация об авторских правах, но стойкой к изменению, т.е. любопытный пользователь изменяет строку в HEX-редакторе, а она все равно предстает в программе в неизменном виде. Для решения использовалось помехоустойчивое кодирование (коды Рида-Соломона). Вкратце, суть: вместо исходной строки Код: "хрен изменишь!" Код: "хрен изменишь!виьдил ывдуцщиму" Это если где-то в строке были изменены некоторые символы, а если заменить полностью строку? Название: Re: Обфускация строк бинарника Отправлено: deMax от Ноябрь 01, 2016, 08:33 Это если где-то в строке были изменены некоторые символы, а если заменить полностью строку? Можно все строки заархивировать, и в случае нарушения crc востанавливать("архив" внутри исполняемого файла). Проще asprotect использовать.Название: Re: Обфускация строк бинарника Отправлено: Akon от Ноябрь 01, 2016, 09:56 Цитировать Это если где-то в строке были изменены некоторые символы, а если заменить полностью строку? Декодер поймет, что информация не восстановима. Проверочные символы (абракадабра в конце) воспринимаются как какой-то код, и их не патчат, поскольку хз что это такое (по крайней мере на первый взгляд). Более того, их можо разместить в другом месте посреди кода. |