реклама на сайте
подробности

 
 
> abort handler. вопрос к гуру: как узнать адрес, куда пишутся данные?
max sagaydachny
сообщение Oct 23 2007, 12:56
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 23-10-07
Пользователь №: 31 645



имеется устройство с процессором arm946es.
его родной firmware позволяет запускать бинарные файлы с SD карточки.
в результате запуска стартует не родная операционная система, а код из бинарного файла.

цель проекта: запустить процесс в уже работающей операционной системе.
для этого код из бинарного файла должен передать управление обратно на ROM, чтобы продолжилась загрузка операционной системы ( скорее всего с этим у нас проблем нет )

вопрос: как к нашему коду вернется управление после старта операционной системы?
ответ: используя Protection Unit мы пытаемся не позволить операционной системе установить ее родной abort handler
проблема в том, что минимальный размер страницы при использовании Protection Unit - 4kb
a нам нужно не позволить записать только 4(8?) байтов в vector table (data abort handler и prefetch abort handler )

тоесть наш обработчик должен иметь возможность узнать, что и куда в этом сегменте пытались записать.
если записываемый адрес не наш abort handler - нам нужно записать эти данные как и предполагал их записать "чужой" код.
получается, что нам нужен парсер инструкциЙ STR.
изобретать велосипед не хочется. скорее всего этот код давно существует.
мне не удалось этот код найти.
я смотрел проекты: qemu, skyeye, softgun, swarm
немного тяжело анализировать такие большие проекты, когда мне всего лишь нужен парсер для двух инструкций STR.

вопрос: где такой код искать, который позволяет узнать, по какому адресу предполагалась запись?
также возможно мы используем совершенно не правильный подход для решения нашей проблемы.


выслушаю и приму любые дикие идеи.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dron_Gus
сообщение Oct 25 2007, 14:47
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



2 defunct

На мой взгляд автор хочет подменить Дата Аборт не для вызовов через него. Дата Аборт необходим для перехвата доступа к таблице векторов прерывания (задав первые хх Кб как Read Only). Что в свою очередь необходимо для того чтобы ОС не смогла модифицировать заранее записанные туда "свои" вектора. Через котрые уже можно (но оч. сложно) получить управление. Для того и спрашивалось про парсер инструкций и их эмуляцию... ИМХО.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
defunct
сообщение Oct 25 2007, 15:22
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Dron_Gus @ Oct 25 2007, 17:47) *
На мой взгляд автор хочет подменить Дата Аборт не для вызовов через него. Дата Аборт необходим для перехвата доступа к таблице векторов прерывания (задав первые хх Кб как Read Only). ...

Я тоже так вначале подумал, но афтар пишет:

Цитата
зачем менять обработчики IRQ и FIQ?

тобиш FIQ/IRQ, он хочет оставить оригинальные "ОСовые"

Ну а дальше все чудесатее и чудесатее:
Цитата
я примерно знаю, с какими адресами оперирует операционная система.
на основе этого я могу написать свой data abort handler
мы его собираемся менять, чтобы иметь возможность получить управление обратно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- max sagaydachny   abort handler. вопрос к гуру: как узнать адрес, куда пишутся данные?   Oct 23 2007, 12:56
- - scifi   Такая штука реализована в Linux. Ссылка на код ест...   Oct 24 2007, 05:32
|- - max sagaydachny   scifi - спасибо за идею defunct подробнее: 1) ш...   Oct 25 2007, 12:33
|- - defunct   Цитата(max sagaydachny @ Oct 25 2007, 15...   Oct 25 2007, 13:23
- - defunct   Цитатаa нам нужно не позволить записать только 4(8...   Oct 25 2007, 11:42
- - Dron_Gus   Это уже сродни вирусописательству. Там тоже решают...   Oct 25 2007, 12:40
|- - max sagaydachny   Цитата(Dron_Gus @ Oct 25 2007, 15:40) Это...   Oct 25 2007, 13:28
|- - defunct   Цитата(max sagaydachny @ Oct 25 2007, 16...   Oct 25 2007, 13:32
|- - max sagaydachny   defunct я думаю, что родной дата аборт хандлер там...   Oct 25 2007, 13:50
|- - defunct   Цитата(max sagaydachny @ Oct 25 2007, 16...   Oct 25 2007, 13:54
|- - max sagaydachny   abort handler - это обработчик ситуации, когда сов...   Oct 25 2007, 14:24
|- - defunct   Цитата(max sagaydachny @ Oct 25 2007, 17...   Oct 25 2007, 14:38


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 11th August 2025 - 13:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01366 секунд с 7
ELECTRONIX ©2004-2016