LINUX.ORG.RU

строки в бинарнике


0

0

Встала такая проблемма что необходимо
скрыть текстовые строки в бинарнике.
Посоветуйте пожалуйста какой-либо способ или тулзу
чтобы это без особого гемороя сделать,
возможно на этапе компиляции какие-то методы есть ?

Самое простое что в голову приходит это пакер какой-нибудь.
Но тотже UPX как просто пакует, также просто и распаковывает.
А мне необходимо чтобы увидеть строки было не совсем таки
элементарной задачей.

anonymous

что мешает зашифровать их чем-нить простеньким a'la rc4 или blowfish?

// wbr

klalafuda ★☆☆
()

> Встала такая проблемма что необходимо скрыть текстовые строки в бинарнике.

<telepathy> Пароли пытаешься скрыть? Советую просто хранить их md5-хеш, у введённой строки его вычислять и сравнивать с сохранённым. </telepathy>

> Но тотже UPX как просто пакует, также просто и распаковывает.

Помнится, чтобы upx не распаковал файл, в заголовке меняли какой-то байт... Гугель в помощь.

gaa ★★
()

у меня в связи с темой возник вопрос - если зашифроват ьвсе строки в base64, сложно ли в полученном бинарнике будет найти начало и конец base64 строки, чтобы "расшифровать"?

chicane
()
Ответ на: комментарий от chicane

> у меня в связи с темой возник вопрос - если зашифроват ьвсе строки в base64, сложно ли в полученном бинарнике будет найти начало и конец base64 строки, чтобы "расшифровать"?

нет, не сложно. програмка поиска на десять минут :)

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

в таком случае найти ключ для других алгоритмов шифрования (обратимых я полагаю), будет тоже храниться в открытом виде и программа будет тоже на пару минут :) нет?

chicane
()
Ответ на: комментарий от chicane

DRM надо юзать для этих целей.

anonymous
()
Ответ на: комментарий от chicane

> в таком случае найти ключ для других алгоритмов шифрования (обратимых я полагаю), будет тоже храниться в открытом виде и программа будет тоже на пару минут :) нет?

ключ ещё найти нужно, что при грамотном подходе можно очень сильно осложнить. в то время как вхождения base64 ищется тупо по набору символов без всяких ухищрений.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda


ps: гуглить по ключу "Volume 0x0b, Issue 0x3a, Phile #0x05 of 0x0e", так описаны некоторые идеи.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от chicane

> в таком случае найти ключ для других алгоритмов шифрования (обратимых я полагаю), будет тоже храниться в открытом виде и программа будет тоже на пару минут :) нет?

А вы его поXOR-те :-) Кстати строки тоже можно поXOR-ить, но это слабая защита...

Возможно вам подойдет использовать zlib и огромный массив char * (строк), т.е. хранить их в бинарнике в сжатом виде. Можно до кучи еще и поXOR-ить.

saper ★★★★★
()

может ROT13 пойдет =)

cobold ★★★★★
()

Вам потом надо эти строки обратно расшифровывать?

anonymous
()

Че вы кинулись, он поганый-проприетарщиег!

Придави в себе копираста! Не дай другу стать копирастом!

anonymous
()

Все вышепредложенные методы обломаются об мега-метод вылавливания строковых констант, если ты не будешь "открывать" строки для себя самого на считанные доли секунд, на время пока они тебе нужны будут.

Ну а мега-метод заключается в том, что-бы ulimit-ом разрешить дампить корки, и свалить запущенную прогу послав ему SIGSEGV, а дальше уже по корке копать все строки расшифрованные ;)

fmj
()
Ответ на: комментарий от fmj

> Ну а мега-метод заключается в том, что-бы ulimit-ом разрешить дампить корки, и свалить запущенную прогу послав ему SIGSEGV, а дальше уже по корке копать все строки расшифрованные ;)

никто не мешает написать простенький виртуальный процессор с хитрожопой организацией памяти, в которой линейных строк попросту не будет ;)

да, абсолютной защиты по всей видимости не существует. вопрос лишь в соотношении затрат на защиту и взлом.

// wbr

klalafuda ★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.