|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Nov 2005
Сообщений: 1,058
|
Вам в каком месте по подробней?
Вам нужно получить экземпляр класса Box. Согласно принципам di вы не вызываете new Box(), а используете статический класс Factory с методом getBox(), который возвращает вам объект реализующий интерфейс IBox. Внутри Factory может быть все что угодно. Например класс Box будет представлять из себя строку, которая загружается как байтмассив, как вариант там могут быть пачки функций, которые навешиваются на динамический класс. Для дополнительной защиты можно снимать хэши и проверять их (сделать отдельно класс с таблицами соответствия). В итоге через Factory мы будем получать только правильные подписанные классы. При этом можно проверять подпись как у вновь создаваемого класса, так и у вызывающего. Получится очень милая атмосфера паранои и недоверия в приложении. |
|
|||||
а что, если злоумышленник переопределит этот Фэктори класс и метод getBox? То есть, если подставной класс Фэктори будет зарегистрирован раньше инициализации секьюр модуля
Добавлено через 1 минуту Я так понимаю отловить имена классов не так сложно в дампе памяти?
__________________
To beer or no to beer? That is the question... |
|
|||||
Регистрация: Mar 2007
Сообщений: 545
|
|
|
|||||
Регистрация: Nov 2005
Сообщений: 1,058
|
О это будет мазохизм.
|
|
|||||
Ну это понятно. Вопрос в том как это предотвратить.
__________________
To beer or no to beer? That is the question... |
|
|||||
Регистрация: Nov 2005
Сообщений: 1,058
|
Необходимость замены _всех_ классов в подгруженном приложении считается решением задачи?
|
|
|||||
[+ 1.0 08.10.14]
блогер
Регистрация: Mar 2010
Адрес: x = stage.stageWidth/2 y= stage.stageHeight/2
Сообщений: 293
Записей в блоге: 2
|
Я вообще ничего не понял. Может быть пространства имен могут помочь ?!
Добавлено через 2 минуты Вообще забейте на злоумышленников, абсолютно все можно разобрать, попилить, переписать ... просто времени займет чуть больше, после ваших потуг. |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
я подозреваю, тут чисто академический интерес?
|
|
|||||
нет это не академический интерес, а вполне практический для текущего проекта. Не думаю что просто будет распознать подгрузку секьюр модуля этим методом, только если просмотреть дамп оперативки. Ну точнее распознать можно но фактически подменить крайне проблематично. Так что нужно просто придумать и сделать защиту от подмены классов загруженного секур ядра. Тоесть загрузчик и ядро моего "производства". Пока я услышал но еще не попробовал идею с продгрузкой ядра не в текущий домен и использования интерфейса как защиты от просмотра кода при дебаге. Вопрос в том теперь можно ли из подгруженной СВФ в другой апп.домен тягать методы загрузчика?
Добавлено через 20 часов 28 минут мда жаль. вроде никак.
__________________
To beer or no to beer? That is the question... |
Часовой пояс GMT +4, время: 18:24. |
|
« Предыдущая тема | Следующая тема » |
|
|