Сейчас на форуме: jinoweb (+6 невидимых) |
eXeL@B —› Программирование —› Visor оптимизация. |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 07 мая 2018 19:19 · Поправил: difexacaw · Личное сообщение · #1 Здрасте. Вернулся к задаче защиты(OP). Поработав неделю, возник тупик. Тоесть нужен свежий взгляд. Задача сложная, не из прикладного прог-я. Даже я мозг хорошо на ней поломал, решения не видно, тёмный лес Кратко что есть визор. Это надстройка над кодом, по факту трассировка инструкций путём выделения линейных блоков и их исполнение напрямую в буферах, после чего визор получает управление, раскодирует новый блок и цикл замыкается. Это крайне годный способ решения многих задача, но он упирается в ключевую проблему - тайминг. Это решалось двумя путями - блочное исполнение и выделение итераций(эта задача поднималась и была решена). Третий и единственный путь оптимизации - выделение повторений по статистике вызовов в общем случае или каким то прочим путём в динамике. Некоторый код, для которого соблюдаются опред. критерии отпускается напрямую на выполнение на cpu. Выход из кода может контролироваться прямым его патчем - ветвление на массив всех возможных ветвлений, что приведёт к получению управления надстройкой при любом ветвлении(ret/jmp etc). В моём случае работа визора сводится к выделению потоков данных(DFG), а точнее это связывание событий по времени(src-dst для указателей в виде маркеров в памяти), без промежуточных деталей(DFG). Те исполнение кода приводит к динамик выделению dfg и урезанию её, что сводится лишь к причинно-следственным связям(PFG), через пересылки данных маркируется указатель. Задача следующая. Каким то образом модифицировать уже исполненный код, путём патча; при этом должна как то быть выделена dfg и быстро обработана(работа механизма конечно же должна быть быстрее гораздо чем прямое выполнение кода). Все логические цепочки вроде как приводят к невозможности решения(главное в нём - профайл - определение FG должно быть быстрее прямого исполнения). У меня походу полная засада с данной задачей. Тем более что её даже нельзя чётко сформулировать. ----- vx |
|
Создано: 19 июня 2018 03:22 · Личное сообщение · #2 shellstorm Когда происходит выборка данных на чтение, а они изменены - нужен поиск соотвествия: произвольный адрес:описатель. Варианта решения есть лишь два - авл, это довольно быстрый механизм, но на каждой итерации это использовать не годится - профайл сядет. Второй вариант таблицы трансляции, быстро но требует много памяти. Задача не решена, по причине профайла. ----- vx |
<< . 1 . 2 . |
eXeL@B —› Программирование —› Visor оптимизация. |
Эта тема закрыта. Ответы больше не принимаются. |