Я использую Firefox версии 10.0.2 в Linux (CentOS). Из дескриптора памяти (mm_struct) Firefox я знаю расположение раздела кода Firefox. Код надстроек или расширений Firefox также должен храниться где-то в памяти, и само приложение Firefox должно знать об этом коде. Кто-нибудь знает, где в памяти находятся надстройки или расширения Firefox? Связаны ли они с разделом кода Firefox? Как мне их найти? Спасибо за любой вклад.
Кто-нибудь знает, где в памяти находятся надстройки или расширения Firefox? Как я могу найти их в памяти
Ответы (1)
Расширения написаны на JavaScript, поэтому их код будет просто лежать в куче.
person
Boris Zbarsky
schedule
10.03.2012
Спасибо. Вы знаете, как найти их в памяти?
- person Fengwei Zhang; 12.03.2012
Другой вопрос: в большинстве систем есть методы защиты NX, и как расширения могут выполняться в куче? Спасибо!
- person Fengwei Zhang; 12.03.2012
Вам придется работать с внутренними структурами данных, чтобы найти что-то в памяти. Что касается NX, то с NX нет препятствий для интерпретации вещей. Для JIT можно было бы перевернуть бит NX, прежде чем генерировать jitcode и помечать его как исполняемый...
- person Boris Zbarsky; 12.03.2012
Извините, что продолжаю беспокоить вас. Я использовал дескриптор памяти (mm_struct) Firefox и узнал расположение кучи. Далее я хочу узнать код расширения в куче. Должен ли я смотреть на исходный код Firefox? Я скачал исходный код, он кажется очень большим файлом, и я не знаком с исходным кодом Firefox. Не могли бы вы дать мне несколько указаний, где я могу найти эти внутренние структуры данных? Огромное спасибо!
- person Fengwei Zhang; 13.03.2012
Я понятия не имею, как добраться туда из кучи C. Точное место, где эти вещи будут жить в памяти, полностью зависит от того, что делает распределитель во время выполнения. Однако я предлагаю посмотреть, как работает интерпретируемый код... код расширения в куче не является машинным кодом.
- person Boris Zbarsky; 13.03.2012