Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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]


В этом случае надо было обратится ко всем, а не к персонально к одному человеку. А так, это выглядит как личная переписка.


 
Дмитрий Тимохов   (2010-08-06 14:59) [41]


> oxffff ©   (06.08.10 14:34) [39]
> > Дмитрий Тимохов   (06.08.10 14:24) [38]
> > Серег, ты бы на вопросы мои ответил.
> Пока планов по раскрытию кода нет.


Ну тогда бог в помощь.
Коммерческие продукты по конструированию языков есть.
Хороших опенсорсных - нет (я не видел, когда искал в свое время, правда, давно - 6-7 лет назад). Ты мог бы быть первым автором.


 
Eraser ©   (2010-08-06 15:41) [42]

> [40] Кто б сомневался ©   (06.08.10 14:53)


> А так, это выглядит как личная переписка.

ну и что? мало ли что как выглядит.
лишь бы читать интересно было.


 
Брюнетка ©   (2010-08-06 21:12) [43]

>А Вас не удивляет, что иногда публикуют личную переписку некоторых людей, даже книжки выпускают ?

"
    - Вы бы почитали что-нибудь, - предложил он, - а то, знаете ли...
    -  Уж  и так читаю, читаю... -  Ответил Шариков  и вдруг хищно и быстро
налил себе пол стакана водки.
    - Зина, - тревожно  закричал  Филипп  Филиппович,  -  убирайте,  детка,
водку, больше уже не нужна. Что же вы читаете?
    В голове у него вдруг мелькнула  картина:  необитаемый остров,  пальма,
человек в звериной шкуре и колпаке. "Надо будет робинзона"...
    - Эту... Как ее... Переписку энгельса с этим... Как его  -  дьявола - с
Каутским.
    Борменталь остановил на полдороге  вилку с куском белого мяса, а Филипп
Филиппович  расплескал  вино.  Шариков  в  это время изловчился и  проглотил
водку.
"(с)(Булгаков М.А.)

ЗЫ Безо всяких намеков, просто вот вспомнилось -)



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2010.11.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.004 c
15-1280489099
Омлет
2010-07-30 15:24
2010.11.14
А у кого пращур из неандертальских?


2-1282687644
Просто Я
2010-08-25 02:07
2010.11.14
Так что ж такое Лейбл


3-1247500268
AndrewG
2009-07-13 19:51
2010.11.14
Blob & TOleContainer


10-1169756215
Asail
2007-01-25 23:16
2010.11.14
Неполный список книг в Excel 2003


2-1282062216
manYury
2010-08-17 20:23
2010.11.14
Свертывание TreeNode при переходе к другому TreeNode





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский