PDA

Просмотр полной версии : Системы защиты



Maxuz
19.06.2009, 12:03
Дамы и Господа! А интересной-ли покажется Вам тема про системы защит, которые вам когда-либо приходилось взламывать? Имею ввиду не сложные типа APS, DPS и посложнее, типа IMP Protection System, Max Iwamoto/CBS... Может кто-то что-то расскажет про внутреннее устройство каких-либо защит? Можно поговорить и про Alcatraz'ы и иже с ними :) :v2_rolley

breeze
19.06.2009, 12:16
Самая интересная защита была в WelcomPress, по мимо закрытого каталога диска и своей FS, код там ксорился весь, на пару шагов вперёд расксоривался (на момент исполнения), а потом обратно исполненный заксоривался вновь! тоесть банальный клик меджик буттон ничего не давал и надо было проходить сталкером очень внимательно, ибо ловушек для него там хватало, один не верный шаг и вылетаем. Красивая и сложная защита.

Maxuz
19.06.2009, 12:19
Прикольно! Это похоже на защиту на оффтопике под названием Armadillo (ща по другому называется)... Тока в Арме еще и переходы условные и безусловные были побиты :))
А где можно посмотреть на эту защиту в WelcomPress? Образ диска существует с ней?

psb
19.06.2009, 15:05
вообще эта тема на форуме уже поднималась.

---------- Post added at 17:05 ---------- Previous post was at 17:03 ----------

да, но вот каталогизировать все эти protection systems было бы прикольно:)

AAA
19.06.2009, 15:11
Коллекция протекторов и анти:
http://zx.pk.ru/showthread.php?t=5477

Maxuz
19.06.2009, 15:50
Наверное займусь! А в открытом доступе есть протектор Макса Ивамото?

AAA
19.06.2009, 19:34
есть протектор Макса Ивамото?

http://pic.ipicture.ru/uploads/090619/IQxNMU3k7D.png

http://zx.pk.ru/attachment.php?attachmentid=7034&d=1200081776

---------- Post added at 19:34 ---------- Previous post was at 19:25 ----------


да, но вот каталогизировать все эти protection systems было бы прикольно

В коллекции ZX Nostalgia, уже должно быть каталогизировано. Автор коллекции этим занимался вначале года. Я выкладывал даже некое подобие каталога из коллекции системок Keeper26

breeze
19.06.2009, 20:48
А где можно посмотреть на эту защиту в WelcomPress? Образ диска существует с ней?

у меня к сожалению копия только открытая и переведённая на чистый TR-DOS ;)

AAA
19.06.2009, 20:50
у меня к сожалению копия только открытая и переведённая на чистый TR-DOS

Последний раз переводил эту газетенку с защищенной дискеты на дискету Virtual TR DOS - тов-щ Goodbay, возможно у него есть наработки.

Rindex
19.06.2009, 21:17
Последний раз переводил эту газетенку с защищенной дискеты на дискету Virtual TR DOS - тов-щ Goodbоy, возможно у него есть наработки.

Ну, если только первый номер. На нулевом стояла вроде уже вскрытая защита.

goodboy
19.06.2009, 21:42
Последний раз переводил эту газетенку с защищенной дискеты на дискету Virtual TR DOS - тов-щ Goodbоy, возможно у него есть наработки.

а с чего ты взял что дискета `защищённая`:v2_conf2:
кроме того я переводил 0ой номер, а речь идёт про 1ый.

AAA
19.06.2009, 21:58
а с чего ты взял что дискета `защищённая`
кроме того я переводил 0ой номер, а речь идёт про 1ый.

Че то отлажилось, что журнал с защитой был. Значит общибся.

Rindex
19.06.2009, 22:07
Че то отлажилось, что журнал с защитой был.

Вот (http://www.zx.pk.ru/showpost.php?p=192662&postcount=50) оригинал, что говорил breeze в "защищённой прессе". А далее уже там начались безуспешные поиски не битой версии журнала. Только название журнала - Welcome Press #2, естественно.

klondike
28.07.2009, 17:56
Немного опишу свою защиту im2REMix.

Все начинается в бейсике, где путем подмены № оператора для RETURN происходит достаточно банальный запуск кода, следующего за REM. Мелочи типа отличия реальных адресов от визуальных даже не буду упоминать )
Далее в коде идет замена адреса тела бейсик программы, которое находится в адресном пространстве сохранной переменной, идет замена в стеке адреса возврата на № оператора.
Следует невнятный и не очевидный возврат в бейсик, подмена адреса потока вывода на экран, вновь подменяется номер оператора для return на оператор, следующий после REM, запуск конечного кода происходит по команде PRINT `USR0, где usr0 - переменная которая ложно заменяется в раннее выполненном коде на что то, имеющее вид осмысленного и адекватного, а на деле нужна лишь инициализация видео вывода, что достигается символом "`"
А! Вспомнил! :)
Там еще поток обработки ошибки подменяется, и если не учесть подмененный видео поток идет ложная ветвь кода, вызванная сообщением об ошибке - "переменная не найдена"
А сама переменная пытается замениться стринговой, якобы дающей право запустить код.

Т.е. выполнение бейсика происходит не однократно, тело бейсика находится в разных адресах, и каждый раз переход в код и возврат в бейсик выполняется весьма нетрадиционно.
Многочисленные ложные запуски приводят к кускам пересекающимся кода, которые в итоге выводят на ксорки не имеющие адекватного исполнения, т.к. привязаны к IM2 и R

Богато используются дефолт значения регистров и переменных (бейсик и системных).
Адресация IX,IY + недокументированные команды.
Выполняется код, проходящий через текстовую надпись в бейсике.
Используются штатные куски ПЗУ, даже, простигоподи, чертов язык калькулятора используется.

После реального запуска кода идет сложный, имеющий вид невнятного, пересекающийся с уже ранее исполняемыми (в том числе - ложные ветви) участками кода. Код путанный и самозаменяемый по ходу выполнения. Код петляет несколько циклов прерываний.
Наличие конструкций типа LDIR с перекрытием самой себя, отхватыванием по im2 зависшего длинного цикла, пространные куски самогенерируемого кода, недокументированные команды достаточно усложняют понимание.
В итоге - выход на ксорки, которые защищены от переноса в памяти, самомодифицируемы и защищены привязкой к R, что делало невозможным их отладку до выхода STS
Ксорок было что то порядка 30-40 шт. )
Ксорки ставились автоматически путем подсчета счетчика R для сгенерированной цепочки и параллельного написания ксорящей конструкции с учетом расчета абсолютной привязки и коррекции по R.

В итоге- выход на лоадер сектора, защищенного по фиксированному ключу, а вот это самое слабое звено всего процесса.


Сие творение писалось долго и кропотливо, местами – в два лица. Богато используется опыт снятия фирменных защит.
Цель была одна – порадовать истинных взломщиков компиляцией чужих и собственных разработок.

daniel
30.07.2009, 09:03
написано заманчиво

Maxuz
31.07.2009, 11:59
2klondike: А "живой" защиты не осталось, чтобы посмотреть так сказать в действии? :))

klondike
31.07.2009, 12:48
2klondike: А "живой" защиты не осталось, чтобы посмотреть так сказать в действии? :))

Конечно осталась!
В разделе RIP Group - http://zxaaa.untergrund.net/RIP.html

На счет наличия последней версии не уверен, поэтому не описывал ее тонкости:
В последней версии была защита от nmi путем размещения минимально возможного стека в экранной области.
Так же была реализована защита от популярной прошивки, не помню ее название, там где ресет - вызывал выход в бейсик и по nmi был размещен простенький монитор, плюс в бейсике были команды +- для скорости tape загрузки, и по * вызывался все тот же монитор.
При нажатии на ресет был реализован переход по нужному адресу с выводом сообщения "nmi/reset pressed" :)

Так же у меня на образах, любезно перенесенных с реала alexeenko, сохранилась утилита, которая ставила защиту.
Сегодня уезжаю в отпуск, вернусь 14.09 - могу выложить.

unbeliever
01.08.2009, 18:52
Так же была реализована защита от популярной прошивки, не помню ее название, там где ресет - вызывал выход в бейсик и по nmi был размещен простенький монитор, плюс в бейсике были команды +- для скорости tape загрузки, и по * вызывался все тот же монитор.

Turbo-90 она называлась

Barmaley_m
17.08.2009, 22:46
Сие творение писалось долго и кропотливо, местами – в два лица.
Звучит очень заманчиво!

Боюсь, что самым сложным при создании такой защиты было написание протектора, т.е. программы, которая ставит все эти ксорки.

Держу пари, что у автора защиты была также книга Яна Логана и Френка О Хары "Полный дизассемблер ПЗУ".

К сожалению, исполнение текстовых строк из ПЗУ сделает защиту неработоспособной на иных прошивках, кроме стандартной.

Жаль, в те времена не было так распространено самогенерирование кода и полиморфные ксорки, как сейчас!

Уже лень делать какую-либо защиту на тех принципах :)