|
|
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
EoltФункции стека можно реализовать с использованием массива переменной длинны, или буфера памяти выделяемого через VirtualAlloc Будет ли стек виден как "другая память" внутри нашего процессора. То есть, на уровне инструкций этого псевдо-процессора стек будет просто отдельным "закрытым" устройством или он будет объединен с "другая памятью" и просто предоставлять к ней доступ (как стек в классических процессорах, просто доступ в память по указателю SP/BP) Ну и другой ключевой вопрос: Откуда будет поступать инструкции Как они будут идентифицироваться В принципе, исполнительное устройство тоже команды может брать из другого (очередного) стека ))) Т.е. будет 3-х/4-х стековая машина: стек инструкций стек данных стек возврата (сохраненное состояние, которое нужно восстановить при возврате из подпрограмм/прерываний) дополнительный стек для временных данных - х.з. зачем, но подозреваю, что ряд алгоритмов заточенных под стековые машины без него будет тяжело переносить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 13:58 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
[quot Leonid Kudryavtsev Вроде так и не сказано, "зачем это надо?". [/quot] Например я хочу засекретить работу какого-нибудь участка кода программы. Если его скомпилировать в нативное приложение, хакер используя дизассемблер и отладчик легко поймет логику работы и взломает программу. Но если его скомпилировать в код виртуальной машины, просто взлом уже не возможен, нужен как минимум сложный анализ работы ВМ, что сильно удорожает взлом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 14:02 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
Eolt[ Например я хочу засекретить работу какого-нибудь участка кода программы. Если его скомпилировать в нативное приложение, хакер используя дизассемблер и отладчик легко поймет логику работы и взломает программу. Но если его скомпилировать в код виртуальной машины, просто взлом уже не возможен, нужен как минимум сложный анализ работы ВМ, что сильно удорожает взлом. Мне кажется что хакеру не нужно реверс-инжинерить весь алгоритм. Возможно я не знаю специфики их работы но основное направление хакерства - это ломание процедуры проверки регистрации. Для этого не нужно реверсить всё. И сильно сомневаюсь что хакер глубоко копает идеи. Он - практик. Если вы хотите спасать вашу идею или ноу-хау от кражи - то тут мне кажется лучше защищаться как-то по другому. Продавать не приложение а сервис там... Продавать физическое устройство без которого ваше ПО не работает. USB-брелок. Не уверен что это на 100% удобно. Надо курить форумы железячников. Но вобщем как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 14:35 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
авторпримитивные типы данных (любые которые укладываются в диапазон от 8 до 128 бит) int 8,16,32,64,128? float 16,32,64,128 ? битовые наборы, короткие строки? SSE/AVX что-то напоминает Eolt. JIT - отсуствует а как же скорость обеспечить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 16:17 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
Изопропила как же скорость обеспечить? написать полноценный компилятор из байткода в нативный код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 17:12 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
EoltИзопропила как же скорость обеспечить? написать полноценный компилятор из байткода в нативный код На написание хорошего компиллятора уходят годы. А с учётом того что ты спрашиваешь самые общие вопросы по стеку - можно предположить что на вхождение в саму теорию еще годик-два накинуть. Вобщем сфера эта узкая. Специфичная. И мало кто ей хочет заниматься. Я где-то читал что Касперыч использует подобную вирт-машину. И вроде-бы она от версии к версии меняет свой микро-код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 17:15 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
maytonНа написание хорошего компиллятора уходят годы. Тут не C++ надо компилировать, а код типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Это даже не компилятор, а транслятор из одного низкоуровневого языка в другой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 17:20 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
EoltЭто даже не компилятор, а транслятор из одного низкоуровневого языка в другой В какой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 17:25 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
maytonEoltЭто даже не компилятор, а транслятор из одного низкоуровневого языка в другой В какой? Байткод в ассемблер x86 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 17:30 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
Eoltmaytonпропущено... В какой? Байткод в ассемблер x86 Бро. Тут есть какие-то взаимоисключающие параграфы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 17:35 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
Скомпилировал и выполнил первый рабочий код Выражение: 1+2+3-7 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. в бинарном виде код занял 88 байт, потому как добавлены поля для отладочной информации. В режиме Release размер будет меньше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 18:00 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
Eoltmaytonпропущено... В какой? Байткод в ассемблер x86 ИМХУ Антивирусы поубивают такую нездоровую активность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 18:41 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevНу и другой ключевой вопрос: Откуда будет поступать инструкции Поскольку ВМ написана на языке высокого уровня, то можно использовать любой удобный вариант: - Массив инструкций - какая-нибудь сложная конструкция из вложенных массивов и структур авторКак они будут идентифицироваться Можно сделать тупой вариант. Один большой switch и куча case`ов. Но это слишком примитивно. Я хочу сделать адресный интерпретатор и прямой шитый код По скорости работы практически ничем не отличается от нативного кода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 19:58 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
EoltСкомпилировал и выполнил первый рабочий код Выражение: 1+2+3-7 оптимизатор должен сделать push 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 23:22 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
Изопропилоптимизатор должен сделать push 0 у тебя с математикой туго видимо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 23:24 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
Изопропилоптимизатор должен сделать push 0 push -1 , конечно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 23:24 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
Прикольное видео прямо по-теме байткода и виртуальным машинам: [youtube= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 23:26 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
EoltПо скорости работы практически ничем не отличается от нативного кода блажен кто верует ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 23:32 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
Изопропилблажен кто верует я не верю, я знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2016, 01:38 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
EoltИзопропилблажен кто верует я не верю, я знаю У меня возникли сомнения в твоей компетенции. Ты так легко жонглируешь словами и бравируешь своей уверенностью что я должен задать вопрос. У тебя есть опыт разработки компилляторов? P.S. Положа руку на сердце я сам не специалист именно в области компилляции. Но слушая тебя - берёт оторопь! Кто ты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2016, 01:07 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
Все играюсь с виртуальной машиной. Идея безусловно работает. Можно даже программки писать в байт-коде. Только это трудно. Нужно визуализировать в голове работу стека. Этакий тренажер для мозгов :) Появилась мысль написать транслятор какого-то скриптового языка в байт-код ВМ. Это намного интереснее, чем просто реализовывать команды ВМ по-списку, точно не зная понадобятся они или нет. Пока думаю над языками: JavaScript, VBScript, OberonScript. Для первых двух есть готовые реализации синтаксических анализаторов. Oberon - довольно симпатичный язык с красивым паскалевским синтаксисом. Но практически мёртвый, как и все детища Вирта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2016, 21:37 |
|
||
|
Виртуальный ассемблер для виртуальной стековой машины.
|
|||
|---|---|---|---|
|
#18+
EoltНужно визуализировать в голове работу стека. Этакий тренажер для мозгов :) этим должен заниматься компилятор «человек должен думать, а машины должны работать». ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 00:06 |
|
||
|
|

start [/forum/topic.php?fid=16&gotonew=1&tid=1340805]: |
0ms |
get settings: |
4ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
137ms |
get topic data: |
6ms |
get first new msg: |
4ms |
get forum data: |
1ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 412ms |

| 0 / 0 |
