![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
В моей программе есть кусок кода, а именно шифрование и дешифрование.
Как "закрыть" (защитить) выполнение этого куска, т.к. есть такие программы (типа HackMan или SoftIce), которые могут просмотреть, что происходит при выполнении той или иной процедуры. Или всякие мониторы... и.т.д.??! |
|||
|
||||
Guest |
|
|||
Unregistered |
||||
|
||||
z-END |
|
|||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: 11 Всего: 102 |
Актаульная тема, блин...
Вот только в WASM для меня еще сложнее чем китайская иероглифопись ![]() если кто может перевести ети статьи в что-нить хоть отдаленно напоинающее дельфийский код буду очень признателен. ЗЫ а вот MD5 тут совершенно нипричем... хэш он и в африке хэш - (це вообщето для проверки подлинности используется а никик не для шифрования... т.к. восстановить зашифрованный текст ну нереально) -------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Вторая ссылка не подойдет... А первая - то что надо (через открытие файлов \\.\SICE и \\.\NTICE)... Только это мало чего даст. Тот кому надо будет взглянуть на твою прогу, просечет, что ты проверяшь на SoftIce, и уберет эту проверку нафиг... -------------------- С уважением, г-н Посол. |
|||
|
||||
Guest |
|
|||
Unregistered |
А вот еще
А кроме всего, есть спецовые компаненты для защиты программ, но ИМХО это изврат! Пару лет назад налетал я на интересную статеечку о защите программ от всяких дебагеров, СофтАйсов и т.д., но че то найти её не могу, как только найду выложу! |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Мы будем ждать...
|
|||
|
||||
Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
Привожу модуль поимки отладчика SoftICE:
unit Unit2; interface implementation uses Windows,unit1; function Otlad95:boolean; var HF:THandle; begin result:=false; HF:=CreateFile('\\.\SICE',GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0); if (HF<>INVALID_HANDLE_VALUE) then begin CloseHandle(HF); result:=true; end; end; function OtladNT:boolean; var HF:THandle; begin result:=false; HF:=CreateFile('\\.\NTICE',GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0); if (HF<>INVALID_HANDLE_VALUE) then begin CloseHandle(HF); result:=true; end; end; initialization if Otlad95 or OtladNT then begin // здесь, что необходимо сделать при обнаружении // например написать в заголовке об обнаружении // но, можно например перезагрузить или выключить компьютер, // только не забудь получить приоритет в NT form1.caption:='Поймали'; halt; end; end. Код компилируется, но я не проверял ловит ли он его или нет, но поидее должен работать. Между прочим, если провериш, то скажи результат ![]() -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
этот код(про софтайс), вообще-то, не новый и разраьотчики таких программ, наверняка об этом знают.
|
|||
|
||||
Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
Попробуй использовать комплекс
перекрытие кода; скрытыми командами передачи управления; также попробуй реализовать так называемый "Динамический фуфел". Суть приема заключается в том, что засоряющие байты никак не обходятся командами передачи управления. Они замещаются безобидными командами (NOP, STI и пр.) уже в ходе выполнения программы, но заведомо до первого запуска подпрограмм, содержащих эти "фуфели". Другими словами, защищаемый от дизассемблирования фрагмент программы действительно не может быть запущен в том виде, в каком программа находится на диске(скорее компьютер зависнет). Запустившись программа считывает откудато данные(например на нулевой дорожке или "зазоре" между разделами дисковой подсистемы), необходимые для устронения засоряющих байтови заменяет на команды не влияющие на ход программы. можно зашифровать прогу сделать пристыковачный модуль (не зашифрованный), который при загрузке будет расшифровывать прогу от отладчиков защищенного режима также эффектифно использовать их ошибки. Например как SoftICE попадается на потере одного трассировочного прерывания после префиксной команды CS:(КОП 2Eh). сам не пытался реализовать, но в книге "Ассемблер в задачах защиты информации" Бурдаев О.В. Иванов М.А. Тетерин И.И. можно найти примеры. -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |