Форум: "Прочее";
Текущий архив: 2010.11.14;
Скачать: [xml.tar.bz2];
ВнизYar.net для Rouse Найти похожие ветки
← →
oxffff © (2010-08-04 16:14) [0]Александр, приветствую.
Наконец-то от меня появился первый screenshot.
http://santonov.blogspot.com/2010/08/yarnet-in-wild.html
Собственно, что сейчас есть и над чем я последнее время работаю.
1. Построение семантического дерева.
2. Обходчик дерева с вызовом генератора кода.
3. Сам генератор кода для .NET. Пока формируется код на MSIL ассемблере. Далее отдается ILasm.exe.
Ничего не мешает использовать .NET unmanaged API c формированием кода. Собственно Barry рассказал как это устроено в Delphi.NET в моем вопросе
http://stackoverflow.com/questions/3222328/what-ways-exists-to-generate-msil-from-unmanaged-code
Остается только узучить эти структруры и использовать их.
Но пока не принципиально.
4. Вполне возможно, что все же мой одногруппник по универу примет участии в x86 backend.
Так что я работаю все свое свободное время над YAR.
← →
Димка На (2010-08-04 18:54) [1]lurkmore.ru/Файл:11318-131945-5c812c9bc8c08b83a416dccd875eac53.jpg
← →
Игорь Шевченко © (2010-08-04 19:13) [2]а че, у Розыча мыла нет ?
← →
GanibalLector © (2010-08-04 20:21) [3]Так а что это будет-то?
← →
oxffff © (2010-08-04 20:24) [4]
> Игорь Шевченко © (04.08.10 19:13) [2]
Не знаю.
← →
oxffff © (2010-08-04 20:31) [5]
> GanibalLector © (04.08.10 20:21) [3]
> Так а что это будет-то?
Я собственно работаю над ЯП.
Пока не волшебник, пока только учусь.
А Rouse были другие интересы.
← →
Rouse_ © (2010-08-04 22:26) [6]Спасиб Сереж, завтра с работу буду изучать...
Все что говорили тогда в плане создания компилятора под твой пикод остается в силе...
← →
Rouse_ © (2010-08-04 22:28) [7]Точнее морф-компилера :)
← →
Rouse_ © (2010-08-04 22:34) [8]
> GanibalLector © (04.08.10 20:21) [3]
>
> Так а что это будет-то?
Пока первоначальная задумка - предоставить пользователю среду, в которой он может писать на понятном ему языке программирования код и получать в результате обьектник из защищенный метаморфом. Исхода из Серегиных наработок - задача вполне осуществима, но нужно много и плотно думать над реализацией :)
← →
oxffff © (2010-08-04 22:55) [9]Вечер добрый, Саш.
Собственно сейчас я стараюсь предусмотреть построение семантического дерева. И обходчика-генератора, который вызывается back-end целевой машины. Видимо генерация этого back-end будет за тобой.
Вот его частичный интерфейс.
TAbstractBackEnd=class
procedure AddIntegers(paramA,ParamB:TValueExpression;var AssignResultTo:TValueExpression);virtual;abstract;
procedure MultiplyIntegers(paramA,ParamB:TValueExpression;var AssignResultTo:TValueExpression);virtual;abstract;
procedure SubIntegers(paramA,ParamB:TValueExpression;var AssignResultTo:TValueExpression);virtual;abstract;
......................................
procedure AssignOp(Dest,Source:TValueExpression);virtual;abstract;
procedure InitializeOp(Dest,Source:TValueExpression);virtual;abstract;
function CreateCallFrame
(const MethodImpl:TMethodImplementation):ICallFrame;virtual;abstract;
end;
← →
Rouse_ © (2010-08-04 23:04) [10]Меня в первую очередь интересует, как я и говрил в прошлый раз, наличие пикода, который можно отобразить в машкодах - это конечная цель.
По интерфейсу пока рано - ибо не факт что конечные реализаторы морфа будут владеть паскалем, но тут уж посмотрим, благо есть с чего стартовать :)
← →
Дмитрий Тимохов (2010-08-05 00:00) [11]шо то я ничего не понимаю.
если это частная переписка, то в мыло.
если переписка для просвещения сообщества, то пишите понятней.
← →
Дмитрий Тимохов (2010-08-05 00:05) [12]Эта... добавлю. Меня более второй вариант удовлетворяет - пишите понятней, я тоже немного в теме защит. Поэтому интересно, что там может получиться с метаморфом и пикодом.
← →
я наблюдаю (2010-08-05 01:20) [13]Удалено модератором
← →
brother © (2010-08-05 05:10) [14]очень похоже на личную переписку, модераторы - ау! ;)
зы но я не против, интересно, что дальше будет)
← →
Rouse_ © (2010-08-05 09:25) [15]Ну личная - не личная, однако кому-то может понравиться идея и он сможет присоединиться к проекту. А вдруг? :)
← →
Думкин © (2010-08-05 09:52) [16]Походу пацаны, это был пеар.
← →
Димка На (2010-08-05 12:06) [17]Речь идет о подобии виртуальной машины (всегда разной) для защиты некоторых частей приложения?
← →
Rouse_ © (2010-08-05 12:09) [18]О ней, родимой...
← →
Димка На (2010-08-05 12:23) [19]идея не нова, вчера только слышал об этом, еще о том, что уже и реализация есть отечественная. не про вас ли говорили :)
← →
Rouse_ © (2010-08-05 12:57) [20]Нет не про нас, да и такого плана реализаций я пока что не встречал...
Обычно морф идет уже на основе машкода...
← →
Димка На (2010-08-05 13:43) [21]www.vmprotect.ru мне про это говорили, оно?
← →
Rouse_ © (2010-08-05 14:19) [22]Этот как раз навесняк на машкод... Не то
← →
Кто б сомневался © (2010-08-05 14:30) [23]А зачем это надо было переносить в публичные обсуждения обращаясь персонально к одному из участнику форума? Очень сырой проект, масштабный, на который уйдет не один год. Чтобы похвастаться своим ЧСВ?
← →
oxffff © (2010-08-05 14:39) [24]
> Кто б сомневался © (05.08.10 14:30) [23]
> А зачем это надо было переносить в публичные обсуждения
> обращаясь персонально к одному из участнику форума? Очень
> сырой проект, масштабный, на который уйдет не один год.
> Чтобы похвастаться своим ЧСВ?
Извини, я не хотел тебя обидеть.
← →
Дмитрий С © (2010-08-05 14:57) [25]О, ща начнется :)
> Rouse_ © (05.08.10 14:19) [22]
>
> Этот как раз навесняк на машкод... Не то
А вы планируете компилятор непосредственно из, например, паскаля в код вашей машины?
← →
Суслик_ (2010-08-05 15:31) [26]я шо тут не понимаю.
для задач защиты достаточен очень простой (скажем, тупой) язык.
такой язык написать самому можно за 1 рабочий день. вернее парсер с построителем синтаксического дерева. и особой теории знать не надо - автомат простой с алгоритмом обратной польской нотации.
потом надо на основе дерева строить какой-то свой код.
либо машинный, либо пи-код. да мало ли идей.
на таком языке можно писать ответственные части программы.
в чем изюм текущего поста? чем отличается YAR от других парсеров-токенайзеров-анализаторов?
← →
oxffff © (2010-08-05 15:55) [27]Деревья разные бывают.
-Дерево разбора
-Синтаксическое
-Семантическое(аннотированное синтаксическое)
о каком речь?
Я так понял, Дмитрий, речь шла о Yacc?
yacc работает с первым деревом.
P.S. YAR - это я язык высого уровня над котором я работаю.
С различными кодогенераторами, общий принцип которых я сейчас пытаюсь структурировать и обобщить. Дабы выставить некий абстрактный интерфейс для заинтересованных. Одним в одном из таких кодогенераторов заинтересован Rouse.
← →
oxffff © (2010-08-05 15:56) [28]Rouse, ты полгода назад когда мы пили пиво спросил, через сколько можно что-либо увидеть. Я как раз ответил полгода. Вот теперь я просто сообщил.
← →
Дмитрий Тимохов (2010-08-05 16:17) [29]Сергей. Дело, конечно, хорошее.
Но по моей памяти YACC строит именно ситаксическое дерево на основе кс грамматики.
Хотя могу ошибаться - давно последний раз писал что-то в этой области.
Я думаю, что сайт тебе надо сделать, или на sourceforge.net открыть проект.
← →
oxffff © (2010-08-05 16:25) [30]Не суть. Только yacc строит автомат.
А вот после yacc начинается самое интересное.
← →
Дмитрий Тимохов (2010-08-05 16:46) [31]насколько я помню lex + yacc дают в результате код автомати, который строит синт. дерево, пригодное для пикодинься и дальнейшего вычисления.
вот ты бы и рассказал, что там такого интересного.
я тоже не новичок в синт. разборе и построении интерпретаторов.
плавали знаем.
← →
oxffff © (2010-08-05 18:11) [32]
> Дмитрий Тимохов (05.08.10 16:46) [31]
Автомат не строит дерево. И уж тем более не строит синтаксическое.
А работает он по дереву разбора. Поскольку продукции не обязаны
соответствовать синтаксису языка.
Собственно в составе YAR есть мои аналоги yacc и lex + некоторые мои дополнения к yacc. Также в составе YAR есть другие построители автоматов LL, CYR, operator precedence.
Собственно после yacc начинается сам язык. И уж его автор выбирает, то что он хочет видеть.
перегрузка операторов
ООП
bounded полиморфизм
замыкания
продолжения
сборка мусора
и др.
+ собственно задачу от четкого разделения front от backend никто не отменял. Так что достаточно странно слышать о языке за один день.
← →
Дмитрий Тимохов (2010-08-05 21:40) [33]Ну что же. Благое дело.
Опенсорсный будет проект?
Можно было бы потестировать.
ЗЫ 1 день - это время написания токенайзера и анализатора для задачи, достаточной для написания защиты. С генерацией кода и вируалкой повозиться придется, но этого все равно у тебя не будет, т.к. у тебя задача иная.
Хотя, если есть готовый продукт, почему бы не начать использовать.
← →
Riply © (2010-08-05 22:48) [34]> [23] Кто б сомневался © (05.08.10 14:30)
> А зачем это надо было переносить в публичные обсуждения обращаясь персонально к одному из участнику форума?
А Вас не удивляет, что иногда публикуют личную переписку некоторых людей, даже книжки выпускают ? :)
Может потому, что из нее можно вынести что-то новое, для себя или (как минимум) посмотреть
в каком направлении, при решении данной задачи, двигались другие ?
Мне, например, было интересно читать данную ветку.
> Очень сырой проект,
Никто и не говорил, что проект готов к всеобщему применению :)
> масштабный, на который уйдет не один год.
И что ?
> Чтобы похвастаться своим ЧСВ?
Не надо по себе мерять.
Например, просто рассказать в "потрепаться" о том чем занимаешся,
а, может, и найти единомышленников, если кого заинтересует.
Наконец, как говорил Леонид Трояновский: лучший способ проверки своего кода- его публикация :)
← →
Rouse_ © (2010-08-05 23:51) [35]
> oxffff © (05.08.10 15:56) [28]
> Rouse, ты полгода назад когда мы пили пиво спросил, через
> сколько можно что-либо увидеть. Я как раз ответил полгода.
> Вот теперь я просто сообщил.
И правильно сделал :)
ЗЫ: Ребят, вы сейчас делите шкуру неубитого медведя, а именно, начинаете обсуждать перспективы даже не оформившегося проекта, более того даже осуждать, причем не вникая хотя-бы в суть оного...
Не превращайтесь в политиков - ляпнуть абы что и сделать умное лицо, знаний много не надо...
← →
trsas © (2010-08-06 03:06) [36]
> ЗЫ: Ребят, вы сейчас делите шкуру неубитого медведя, а именно,
> начинаете обсуждать перспективы даже не оформившегося проекта,
> более того даже осуждать, причем не вникая хотя-бы в суть
> оного...
А какой тогда смысл выносить эту тему на общедоступный форум?
← →
oxffff © (2010-08-06 09:16) [37]
> trsas © (06.08.10 03:06) [36]
Внимательно читаем?
Раздел PS [27]
+ [28]
← →
Дмитрий Тимохов (2010-08-06 14:24) [38]Серег, ты бы на вопросы мои ответил.
Если проприетарный продукт с закрытым кодом, то не интересно. Подобные закрытие продукты есть. Если опенсорсный, то это уже интересней намного.
← →
oxffff © (2010-08-06 14:34) [39]
> Дмитрий Тимохов (06.08.10 14:24) [38]
> Серег, ты бы на вопросы мои ответил.
Пока планов по раскрытию кода нет. Из открытого останется лишь только backend интерфейс, который бы позволил генерировать код в конкретную целевую машину.
Однако допускаю, что доступ к коду может быть открыт лишь тем лицам, у которых есть соизмеримые по трудозатратам наработки и которые были готовы объединить усилия в этих областях.
← →
Кто б сомневался © (2010-08-06 14:53) [40]
> Riply © (05.08.10 22:48) [34]
В этом случае надо было обратится ко всем, а не к персонально к одному человеку. А так, это выглядит как личная переписка.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2010.11.14;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.004 c