Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2015, 01:48   #1
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Шифрую функцию XOR'ом....
Всё-равно ключ светится... Как убрать с кода все уязвимые участки?

Код:
Crypt:   
   mov	si,sCrypt                          ; адресс начала шифруемого участка кода
nextCrypt:
   xor	byte[si],69h
   inc	si
   cmp	si,eCrypt                          ; хвост шифруемого участка кода
   jna	nextCrypt 

sCrypt:
;============;....шифруемый участок кода
eCrypt:
Если раскрыть карты, то снимаю с пароля юзера контрольную сумму и использую её в качестве маски де/шифратора уязвимой функции. Вопрос в том: - "Как скрыть саму маску?"
Нашедшего выход - затаптывают первым..

Последний раз редактировалось Аватар; 09.09.2015 в 23:31.
R71MT вне форума Ответить с цитированием
Старый 08.09.2015, 08:41   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от R71MT Посмотреть сообщение
"Как скрыть саму маску?"
Выполнять шифрование или дешифровку на стороннем устройстве.
В рамках памяти ЭВМ скрыть не удастся, разве что запутать сильно сильно.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 08.09.2015, 09:43   #3
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

WorldMaster, спасибо, ясно....

..хоть ты вывернись, всё-равно нужна проверка... , которая светится
Нашедшего выход - затаптывают первым..

Последний раз редактировалось Аватар; 09.09.2015 в 23:30.
R71MT вне форума Ответить с цитированием
Старый 08.09.2015, 10:03   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Очевидно, что ключ "светится" на областях, представленных нулевыми байтами.
Если исключить эти области из шифрования нельзя, тогда генерите маску(ключ) очень большой длины (в идеале длина ключа должна быть сопоставима с длиной шифруемого текста. И символы ключ должны быть случайные - см. невзламываемый шифр Вернама).
если это не подходит - меняйте алгоритм шифрации.


p.s. можно, наверное, придумать алгоритм, когда набор последовательных нулевых байт (ну, скажем, более NN байт подряд) заменяется на спец.маркер и шифруется отдельно, например заменяется на значение равное общему числу нулей и все нули заменяются случайными значениями.
Но это уже самодеятельность. Проще сгенерить ключ очень большой длины и использовать XOR или использовать другие алгоритмы (блочные шифры, например), которые лишены данного недостатка.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.09.2015, 10:36   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
p.s. можно, наверное, придумать алгоритм, когда набор последовательных нулевых байт (ну, скажем, более NN байт подряд) заменяется на спец.маркер
rle свое придумываем?..
p51x вне форума Ответить с цитированием
Старый 08.09.2015, 10:45   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
rle свое придумываем?..
ага, оно! Только совмещённое с xor
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.09.2015, 18:38   #7
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

....чтот я мутно монял...
Имею пароль, с которого снимаю контрольную сумму, которую использую в качестве ключа дешифратора. Шифрую программу в-ручную "HIEW"'ом , и чё мне нужно сделать, повторите ещё раз пожалуйста...

...если CRC юзера совдает с ключом, то ОК.. Но всё-равно нужна проверка. Возможно-ли её убрать!

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
и все нули заменяются случайными значениями.
.всё-равно, в итоге нужна проверка.
Я уверен, что хакерюги юзают другие варианты, и можно обойтись без тестов, в явном их виде

Ну и чего форум за чат держать? Кнопка Правка не заметна?
Модератор
Нашедшего выход - затаптывают первым..

Последний раз редактировалось Аватар; 09.09.2015 в 23:32.
R71MT вне форума Ответить с цитированием
Старый 10.09.2015, 11:33   #8
taras-proger
Подтвердите свой е-майл
 
Регистрация: 12.11.2014
Сообщений: 470
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Очевидно, что ключ "светится" на областях, представленных нулевыми байтами.
И как же это противник поймёт, что они нулевые? Ведь в любом
Код:
MOVE AX,0
, или
Код:
CMP AX, 0
0 понятен только по семантике самой операции, а по условию даже её код не известен. а перебирать все встречающиеся в шифровке комбинации байтов - это даже дольше, чем "в лоб" все возможные комбинации, так как или будут повторы, или надо отдельно проверять каждую комбинацию на предмет новизны, перебирая всю предшествующую ей шифровку. А вот длина ключа - это да, дырища. Возможных значений двубайтного слова всего 65536, а возможных байтов так и вовсе 256, так что перебрать байты и слова можно быстро и как только в расшифровке появился осмысленный код, значит ключ найден. Единственные же места, где ключ может именно светиться в готовом виде, это там, где его хранят легальные шифратор с дешифратором. В данном случае код легального дешифратора.

Цитата:
Сообщение от R71MT Посмотреть сообщение
всё-равно, в итоге нужна проверка.
Вот её и надо выносить в защищённую память аппаратного ключа, или своего сервера.

Последний раз редактировалось Stilet; 21.09.2015 в 07:03.
taras-proger вне форума Ответить с цитированием
Старый 15.09.2015, 00:59   #9
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от taras-proger Посмотреть сообщение
Вот её и надо выносить в защищённую память
..это не дело! Куда? во-внешний файл?
Пусть будет внутри проги... Мож флаги контролировать?? Как вообще это делается?! Хэши, контрольные суммы снимаю, но сравнения никуда не могу спрятать. Привязывать к железу/сидюку тож не вариант, нужно-же проверять?

..если вся защита летит к чертям одной инструкций (JZ-->JNZ), то что это за-защита?!
Нашедшего выход - затаптывают первым..

Последний раз редактировалось R71MT; 15.09.2015 в 01:02.
R71MT вне форума Ответить с цитированием
Старый 15.09.2015, 01:02   #10
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

...если вся защита летит к чертям одной инструкций (JZ-->JNZ), то что это за-защита?!
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зашифровать зашифровать фамилию, имя, отчество, группу студента Юленька*** Microsoft Office Excel 1 11.07.2011 17:03
Как зашифровать php код? kolchakA PHP 1 21.03.2010 20:11
Как зашифровать пароль? DeToxic Помощь студентам 3 29.03.2009 13:16
Как зашифровать EXE файл? AngelOfDeath Безопасность, Шифрование 1 09.04.2008 19:56
Как зашифровать папку UnD)eaD)Snake Общие вопросы Delphi 6 15.08.2007 17:14