сложнопонимаемый алгоритм

ZXNet эхоконференция «code.zx»

От psb Кому All 11.04.2006

Hello, All есть задача: написать простую программу так, чтоб при ковырянии в ней было ооочень сложно понять, что она делает. например, ксорка. если её записать в обычном своем виде, то мы запросто увидим, что она и как делает (это ж просто цикл!). если вытворять хитрости с кодом, типа, скажем, чтоб прыгала с адреса на адрес (используя стек), то это тоже не эффективно: достаточно посидеть и можно понять, что делается. это не обязательно ксорка, это может быть любой алгоритм... главное, чтоб было оочень трудно понять, как он работает. мне на ум приходит только создание виртуального процессора, со своей системой команд и его эмуляция. но и даже тогда, разобрав ядро, можно будет составить перечень команд и уже легко понять алгоритмы (пример - спековский калькулятор в пзу.. дизасмом ниче не увидишь, но зная команды можно разобраться (хоть и отн. долго)). может, кто-нить знает, как можно еще затруднить чтение алгоритма? может, 2 виртуальных процессора?;)

От Slavik Tretiak Кому All 11.04.2006

Hello, Titus достаточно просто: пишешь свой ассемблер, который каждую комманду может отассемблировать в разных вариациях. допустим: LD HL,100 ┌─- code ─── PUSH DE PUSH BC EX AF,AF' PUSH AF LD B,15 LD HL,85 L0 ADD A,(HL) SUB B INC HL DJNZ L0 POP AF EX AF,AF' POP BC POP DE └── code ─── и так по 4-8 вариантов на каждую комманду. тормозить будет и объём кода вырастет, но разбираться в нём надо будет ооочень долго ;)

От Константин Жуков Кому All 11.04.2006

Hello, Titus Hе тратьте время на ерунду. Время, когда на Спектруме можно было защитить программу было и ушло. Более менее надёжный вариант защиты кода программы, это использование аппаратного ключа типа тех, что вставляют в LPT на IBMках. Hо и здесь найдутся умельцы, правда уже в меньшем количестве, которые его взломают. Кстати, а что защищать-то собрался? Объект-то хоть стоящий?

От Игорь Афонькин Кому All 11.04.2006

Hello, Titus Помнится еще в школе написал програмку типа хитрого скроллера, фишка была в оптимизации по памяти, т.е. требовалось запихать в минимальный объем, в качестве оптимайзера были применены куча условных и безусловных переходов. Когда друган сел разбирать ее "на запчасти" чтобы посмотреть как это работает, черз день выдал фразу: "работать недолжно, ибо бред, но РАБОТАЕТ"... ;) О какой либо защите я тогда даже не задумывался...

От Андрей Александрович Титов Кому All 11.04.2006

Hello, psb А для чего такие извраты? Все равно крекнут :v2_wink2: (если надо будет)

От Андрей Александрович Титов Кому All 11.04.2006

Hello, psb psb> не, конечно крекнут, если прям HАДО:) но надо чтоб желание КРЕКАТЬ psb> пропало;) Вряд ли пропадет, из принципа крекнут :) Хотя зачем крекать, если сейчас в любом эмуляторе программу останови и все готово.

От psb Кому All 11.04.2006

Hello, Titus Tit> А для чего такие извраты? Tit> Все равно крекнут (если надо будет) не, конечно крекнут, если прям HАДО:) но надо чтоб желание КРЕКАТЬ пропало;)

От psb Кому All 11.04.2006

Hello, Sinus Sin> пишешь свой ассемблер... во, а это даже интересно!:))) блин, классно придумано:)) практически то, что надо:)

От Владимир Кладов Кому All 11.04.2006

Hello, newart Пишешь свой ассемблер... Для таких извратов существуют МАКРОСЫ и DEFINE's. В нормальных ассемблерах, по крайней мере.

От Вячеслав Калинин Кому All 11.04.2006

Hello, Jukov Juk> Hе тратьте время на ерунду. Время, когда на Спектруме можно было Juk> защитить программу было и ушло. Более менее надёжный вариант защиты Juk> кода программы, это использование аппаратного ключа типа тех, что Juk> вставляют в LPT на IBMках. Hо и здесь найдутся умельцы, правда уже в Juk> меньшем количестве, которые его взломают. Juk> Кстати, а что защищать-то собрался? Объект-то хоть стоящий? Про спектрум вроде никто и не говорил...

От Orionsoft Кому All 12.04.2006

Hello, psb psb> но надо чтоб желание КРЕКАТЬ пропало это неистребимо !

От SMT Кому All 12.04.2006

Hello, Vladimir Kladov Vla> Пишешь свой ассемблер... Для таких извратов существуют МАКРОСЫ и Vla> DEFINE's. В нормальных ассемблерах, по крайней мере. не поможет. как он будет выбирать разные варианты одного макроса.. и хакер быстро составит таблицу соответсвий кусков кода и изначальных макросов, т.е. потратит времени меньше, чем создатель защиты. вообще-то, в вирмейкерских журналах всяких движков мутирования кода - тонны

От van Yu Shinn Кому All 12.04.2006

Hello, psb Чеpнов - Об одном методе маскиpовки программ http:/www.citforum.ru/security/articles/mask/

От Hиколай Истомин Кому All 12.04.2006

Hello, Orionsoft Hа PC есть вполне ходовой софт для которого нет кряков. Hикто не спорит, что в принципе взломать можно всё, но можно причинить при этом такой геморрой что ломающий помучается и решит "ну его нафиг".

От Николай Истомин Кому All 12.04.2006

Hello, Orionsoft Hа PC есть вполне ходовой софт для которого нет кряков. Hикто не спорит, что в принципе взломать можно всё, но можно причинить при этом такой геморрой что ломающий помучается и решит "ну его нафиг".

От psb Кому All 12.04.2006

Hello, Sinus ну.. вообще говоря, мне это нуна применительно к спектруму.. и не для ЗАЩИТЫ программ.. это-то конечно, те времена уже прошли.. и я учитываю эмуляторы. так вот в том и хрень, что даже имея эмулятор, одуренные возможности для отладки, кряканья и т.п., было сложно понять, что же там и как вычисляется.. чтобы проще было _догадаться_ о сути происходящего, чем влезть в код и понять. пока не скажу, зачем именно, но мож когда сделаю;)

От Slavik Tretiak Кому All 12.04.2006

Hello, Электрик не замучаешься. просто такой софт никому не нужен (читать не нужен тем, кто может сломать)

От Slavik Tretiak Кому All 12.04.2006

Hello, psb ну вот тебе нормальный вариант: наклепая макросов тонну или асм напиши, который будет делать тоже, только ещё и по рандому выбирать. а если ещё и левые куски кода (особо ничего не делающие) такой асм вставлять будет, то цены б ему на было. правда сам потом заколебёшся отлаживать свой же код ;)

От Slavik Tretiak Кому All 12.04.2006

Hello, Jukov в этой версии не сработает, сработает в следующей. я тоже знаю одну забавную феньку которую не проглотит 90% процентов эмулей, ну и что с этого?

От psb Кому All 12.04.2006

Hello, Sinus в общем, примерно я прикинул, что можно сделать:) всем спасибо:)

От Константин Жуков Кому All 12.04.2006

Hello, psb Hа любой эмулятор найдётся проруха. Hе такие они идеальные, я знаю одну феньку, которая прокатит на любом реале, но на UNREALE не сработает.

От Robus Кому All 12.04.2006

Hello, psb psb> есть задача: написать простую программу так, чтоб при ковырянии в ней psb> было ооочень сложно понять, что она делает. psb> psb> например, ксорка. если её записать в обычном своем виде, то мы psb> запросто увидим, что она и как делает (это ж просто цикл!). если psb> вытворять хитрости с кодом, типа, скажем, чтоб прыгала с адреса на psb> адрес (используя стек), то это тоже не эффективно: достаточно psb> посидеть и можно понять, что делается. psb> psb> это не обязательно ксорка, это может быть любой алгоритм... главное, psb> чтоб было оочень трудно понять, как он работает. мне на ум приходит psb> только создание виртуального процессора, со своей системой команд и psb> его эмуляция. но и даже тогда, разобрав ядро, можно будет составить psb> перечень команд и уже легко понять алгоритмы (пример - спековский psb> калькулятор в пзу.. дизасмом ниче не увидишь, но зная команды можно psb> разобраться (хоть и отн. долго)). psb> psb> может, кто-нить знает, как можно еще затруднить чтение алгоритма? psb> может, 2 виртуальных процессора?;) Когда-то я такое очень любил ... И сделал две свои защиты ... первая была в программе http://zxaaa.narod.ru/DEMO/ZXCLUB.ZIP она простая , а вот вторая была основана именно на безумно запутанном коде http://www.entire.nm.ru/speccy/PITON.SCL ... В итоге в игре 9 килобайт занимает сама игра, а 10 килобайт занимает защита. Эта игра была спором с моим другом Fine Soft'ом, я написал на него "фак" а он его должен был убрать ... Так это и не свершилось ...

От Владимир Кладов Кому All 12.04.2006

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

От Slavik Tretiak Кому All 13.04.2006

Hello, Titus Titus воть ;) инструкция: после запуска беспорядочно и быстро нажимать на кнопки мыши. если нижняя часть бордюра перекрасится с чёрного на какой-нибудь другой, то у вас реал или хороший эмуль. unreal не проходит. zemu пока не тестил (хотя по идее должно работать) зы. возможно будут работать старые досовские эмули. зыы. возможны глюки на реале если мышка с контроллером. ┌─- code ─── ORG #8000 LD BC,#FADF LD H,0 LOOP HALT LD DE,1000 IN A,(C) AND 7 OUT (#FE),A LD L,A LOOP0 IN A,(C) AND 7 OUT (#FE),A DEC DE LD A,D OR E JP NZ,LOOP0 IN A,(C) AND 7 SUB L OR H LD H,A OUT (#FE),A XOR A IN A,(#FE) OR #E0 INC A JP Z,LOOP RET └── code ─── зыыы. это ещё не все забавные феньки

От Андрей Александрович Титов Кому All 14.04.2006

Hello, Vladimir Kladov Vla> Элементарный трюк (не смотрел этот, возможно, это оно и есть): в Vla> реале на/отжатие клавы происходит в любой момент времени, а не только Vla> на границе кадров, и еще есть дребезг контактов. А оно надо? Vla> По-моему, так совсем ни к чему. А чего смотреть, и так видно, что это оно и есть :v2_smile:

От Slavik Tretiak Кому All 14.04.2006

Hello, Titus конечно это никому не надо. просто я отвечал товарищу Жукову, что фишек которые не эмулируют эмуляторы есть тонны, причём самые элементарные. сэмулировать можно всё со 100% точностью для софта который будет работать на эмулируемой машине (не факт что 100% будет для зрителя ;) ). только вот действительно, а оно надо? зы. если кому действительно охота погонять эмули на предмет опроса УВВ, то вот более правильный вариант ┌─- code ─── ORG #8000 LD BC,#FADF LD H,0 LOOP HALT LD DE,800 IN A,(C) AND 7 OUT (#FE),A LD L,A LOOP0 IN A,(C) AND 7 OUT (#FE),A SUB L OR H LD H,A DEC DE LD A,D OR E JP NZ,LOOP0 LD A,H OUT (#FE),A XOR A IN A,(#FE) OR #E0 INC A JP Z,LOOP RET └── code ───

От Андрей Александрович Титов Кому All 14.04.2006

Hello, Sinus Sin> конечно это никому не надо. Sin> просто я отвечал товарищу Жукову, что фишек которые не эмулируют Sin> эмуляторы есть тонны, причём самые элементарные. Так поделись тоннами. Про фреймовый опрос периферии все понятно, а кроме него что-нить стоящее есть? :v2_wink2:

От Robus Кому All 14.04.2006

Hello, Titus У меня такой вопрос, а если я выложу свой эмулятор, то вы согласитесь его протестировать ? У меня где-то глюк, но опознать я его не могу ... Я прикреплю игры, которые не работают на нём. Или вы сами в TRD добавити ваши работы, которые не заработают и вы сможете определить лажу. Поскольку я уже сотню раз проходил команду за командой, но так и не нашёл изъяна. Он работает под ХР, но видео-режим выбирает 51 герц, других вариантов я не делал, поскольку это не соответствует настоящему Speccy. Hу что, согласитесь потратить свё время на выявление ошибок ?

От Андрей Александрович Титов Кому All 15.04.2006

Hello, Robus Rob> Hу что, согласитесь потратить свё время на выявление ошибок ? A zxall попробовать не судьба? :v2_blush:

От Robus Кому All 15.04.2006

Hello, Titus Tit> A zxall попробовать не судьба? Hе понял ... Что имелось в виду ??? zxall это какой-то эмуль ? програма ?

От Андрей Александрович Титов Кому All 15.04.2006

Hello, Robus Rob> Hе понял ... Что имелось в виду ??? zxall это какой-то эмуль ? Rob> програма ? zexall [http://www.mdfsnet.f9.co.uk/Software/Z80/Exerciser/Spectrum/] А так же читать документ emuls-z80test.zip в теме 'команда bit n,(hl)',','... Titus aka Андрей Александрович Титов

От Дмитрий Крапивин Кому All 26.05.2006

Hello, Robus Rob> Эта игра была спором с моим другом Fine Soft'ом, я написал на него Rob> "фак" знакомая история...мне подбросили защищенный файл, который нужно было сломать без Shadow RAM, насколько помню там было два вложенных цикла ксорки (всего около 56000 проходов) с регистром R...но еще был IM2, обработчик которого считал контрольную сумму основной проги...и кажется использовал её в качестве параметра ксорки. Я пропыхтел пять часов, но в итоге честно хакнул её, впарив некоторое подобие трояна. Круче защиты не видел, нуднее - да, старый Alcatraz...

От Yuri Potapov Кому All 27.05.2006

Hello, Dimasty это разное... это не сложнопонимаемыо - это лажа... у робуса круче