Сейчас на форуме: bartolomeo, tyns777 (+6 невидимых)

 eXeL@B —› Программирование —› Скрипты в драйвере
Посл.ответ Сообщение

Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 02 февраля 2011 19:58
· Личное сообщение · #1

В драйвере нужно проверять правила. И правил этих очень много. Хардкодить правила как код чтобы учесть все условия - запаримся потом это тестировать. И умрем при попытке дописывать новые правила. Я уже поглядываю в сторону всяких скриптов, например lua. А если сядем писать свое, то чувствую по итогу родим свой мини-скриптовый язык с интерпретатором...

Проверки правил будут вестить на PASSIVE_LEVEL. По идее ничего не мешает. Но смущают только вопросы производительности.

Собственно вопрос: кто-то пробовал в драйвер впихивать интерпретатор каких-то скриптовых языков? Может есть что-то более легковесное как коммандные оболочки...

-----
Реверсивная инженерия - написание кода идентичного натуральному




Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 02 февраля 2011 20:16
· Личное сообщение · #2

mail-index.netbsd.org/tech-kern/2010/10/05/msg008900.html это таки возможно...

-----
Реверсивная инженерия - написание кода идентичного натуральному




Ранг: 590.6 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 02 февраля 2011 21:09
· Личное сообщение · #3

А поставить запрос в пендинг и перенести в юзерленд проверку никак?

-----
старый пень




Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 02 февраля 2011 22:15
· Личное сообщение · #4

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

-----
Реверсивная инженерия - написание кода идентичного натуральному





Ранг: 251.8 (наставник), 17thx
Активность: 0.120
Статус: Участник
Seeker

Создано: 02 февраля 2011 23:17 · Поправил: =TS=
· Личное сообщение · #5

Вместо Lua можете попробовать Squirrel, он более привычен

-----
DREAMS CALL US





Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 03 февраля 2011 05:13
· Личное сообщение · #6

> Собственно вопрос: кто-то пробовал в драйвер впихивать интерпретатор каких-то скриптовых языков?

Лет 10 назад mamaich прикручивать к SoftIce'у скриптовый SeeR. Но это такое глюкавое убожество, что лучше даже не браться. Из чисто сишного с биндингом, чтобы полезло в дрова есть питон. Еще gentee сишный и не большой.



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 03 февраля 2011 12:03
· Личное сообщение · #7

Я посмотрел тесты скорости скриптовых языков и попустился: LuaJit работает в 10 раз медленнее Си. Так что мы просто реализуем патерн "интерпретатор", и будет это натив.

-----
Реверсивная инженерия - написание кода идентичного натуральному





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 03 февраля 2011 13:08
· Личное сообщение · #8

Байткодом делайте, это само быстро будет.

-----
Yann Tiersen best and do not fuck




Ранг: 6.7 (гость)
Активность: 0=0
Статус: Участник

Создано: 03 февраля 2011 13:16
· Личное сообщение · #9

DrGolova
Лет 10 назад mamaich прикручивать к SoftIce'у скриптовый SeeR..

Где можно почитать про это?



Ранг: 255.8 (наставник), 19thx
Активность: 0.150.01
Статус: Участник
vx

Создано: 03 февраля 2011 19:12 · Поправил: Clerk
· Личное сообщение · #10

> Проверки правил будут вестить на PASSIVE_LEVEL.
Тогда не имеет значения кпл. Совершенно нет разницы в моде, отличен лишь механизм колбеков. Нет никакой проблемы с решением вашей задачи. Вон к примеру варя это ядерный скрипт.




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 04 февраля 2011 00:03
· Личное сообщение · #11

PE_Kill пишет:
Байткодом делайте, это само быстро будет.

...а можно подробнее?

-----
the Power of Reversing team





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 04 февраля 2011 06:36
· Личное сообщение · #12

Ну сделать компилятор и интерпретатор байткода. Интерпретатор построить на хендлерах. Каждый хендлер обрабатывает свой байт. Ну и реализацию хендлеров можно оптимизировать. Т.е. суть байткода - уйти от строкового парсера на более низкий уровень, за счет чего скорость исполнения увеличивается в десятки раз.

-----
Yann Tiersen best and do not fuck





Ранг: 52.0 (постоянный), 146thx
Активность: 0.030.08
Статус: Участник

Создано: 06 февраля 2011 23:33
· Личное сообщение · #13

вот такой еще есть движок
www.compuphase.com/pawn/pawn.htm
довольно шустренький



Ранг: -0.9 (гость)
Активность: 0.010
Статус: Участник

Создано: 12 февраля 2011 08:03
· Личное сообщение · #14

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



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 28 февраля 2011 15:28
· Личное сообщение · #15

vw_ пишет:
Лет 10 назад mamaich прикручивать к SoftIce'у скриптовый SeeR..

Где можно почитать про это?

можно поискать обломки reversing.net
если не забуду - посмотрю что осталось на винте. тоже прикручивал этот SeeR 8 лет назад к своему коду.


 eXeL@B —› Программирование —› Скрипты в драйвере
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати