Русский / Russian English / Английский

Сейчас на форуме: (+4 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Вопросы новичков —› Firefox 58, setBoolPref
Посл.ответ Сообщение

Ранг: 0.6 (гость)
Статус: Участник

Создано: 18 января 2020 14:13 New!
Цитата · Личное сообщение · #1

Всем хеллоу. В общем встал вопрос о нахождении функции setBoolPref в файрфокс - функция которая меняет булевые значения на странице about:config
По документации Mozilla, функция принимает char *, с именем параметра, и bool значение его
Поиском по памяти нашел изменяемую строку, ставлю HardWare Break на память - срабатывает один раз по целевому событию, хорошо.
Пройдя по стеку, составил и записал цепочку вызываемых процедур, дошел до тех, которые вызываются вне события. Картина такова:

- Имеем 4-5 процедур до хардбрика по памяти, они вызываются 1 раз в фиксированном порядке и строго по событию - назовем их группой F1
- Выше них стоят процедуры, вызывающиеся вне события - назовем их группой F2

Если брать самую высокую функцию из группы F1, то по ее ret, файл prefs.js не меняется, и действие события не закончено. Однако значение char *, и bool нужные и реальные передаются в нее и дальше вызываемым. Но кроме них передается еще какой-то адрес, который используется для определения адресов вызываемых процедур.

Если брать самую низкую функцию из группы F2, то да, она пушит нужные нам значения, вызывает самую высокую из F1, но дальше использований этих значений я не вижу.

Собственно:

1. Цель - мне нужно найти адрес этой функции, именно setBoolPref, чтобы я мог вызвать ее со своими параметрами
2. Мне нужно понять процесс как достигнуть этой цели

Я готов финансово отблагодарить того, кто мне поможет с этим вопросом. Всем thx.




Ранг: 617.6 (!)
Статус: Участник
_Вечный_Студент_

Создано: 19 января 2020 06:42 · Поправил: plutos New!
Цитата · Личное сообщение · #2

d588548 пишет:
Я готов финансово отблагодарить того, кто мне поможет с этим вопросом. Всем thx.


Так для таких вопросов есть специальные разделы: --> поиск специалистов <-- или --> запросы на взлом <--.




Ранг: 266.7 (наставник)
Статус: Участник

Создано: 19 января 2020 11:59 · Поправил: f13nd New!
Цитата · Личное сообщение · #3

Сделаем вид, что речь о методе Services.prefs.setBoolPref (если ты конечно не по яваскрипту хардварными бряками собирался ездить).
В модуле xul.dll есть функция, возвращающая интерфейс по его имени, Services.prefs это скорей всего "@mozilla.org/preferences-service;1" (строчку найдешь)
Services.prefs.setBoolPref один из методов возвращаемого ею интерфейса, вероятней всего это (прекрасно брякается при изменении булёвых настроек, первый аргумент имя опции):

ЗЫ: все изложенное справедливо для 72.0.1 (64-битный).



Ранг: 0.6 (гость)
Статус: Участник

Создано: 19 января 2020 12:34 New!
Цитата · Личное сообщение · #4

f13nd, ну то есть предлагаешь отталкиваться от "@mozilla.org/preferences-service;1" а не имени настройки ?

P.S. Функция самая высокая из группы F1, берет на вход имя булевой настройки как 2 параметр и само булево значение как 3. То есть оно в принципе все где-то рядом, но все равно непонятно, как выйти на саму setBool




Ранг: 266.7 (наставник)
Статус: Участник

Создано: 19 января 2020 12:40 New!
Цитата · Личное сообщение · #5

d588548 пишет:
редлагаешь отталкиваться от "@mozilla.org/preferences-service;1" а не имени настройки ?

По-моему между самим движком мазилы и какой-то там опцией прямая связь не обязательна. Конечно надо от сервиса настроек плясать.

d588548 пишет:
но все равно непонятно, как выйти на саму setBool

Ну только что сказал, что видимо "@mozilla.org/preferences-service;1", потому что в нем есть метод, брякающийся в нужный момент и ему передается имя нужной опции. Если что-то выглядит как утка и крякает как утка, значит это утка. Как выйти - получить адрес этого интерфейса, взять из него метод по нужному смещению.



Ранг: 0.6 (гость)
Статус: Участник

Создано: 19 января 2020 20:06 New!
Цитата · Личное сообщение · #6

f13nd,а отталкиваясь от того что имею я с множеством функций никак не выйти на то что надо ? Ну точнее более трудоемко ?




Ранг: 266.7 (наставник)
Статус: Участник

Создано: 19 января 2020 20:08 · Поправил: f13nd New!
Цитата · Личное сообщение · #7

d588548, наверное можно. Просто зачем.

ЗЫ: есть вариант вообще визором ее найти, лайк э про. Если бы файрфокс был однопоточным, наверное даже получилось бы.




Ранг: 331.5 (мудрец)
Статус: Участник

Создано: 20 января 2020 04:48 New!
Цитата · Личное сообщение · #8

d588548

> 1. Цель - мне нужно найти адрес этой функции, именно setBoolPref, чтобы я мог вызвать ее со своими параметрами

И чем же ты искать собрался, гуем в отладчике ?

Про сигнатуры никогда не слышал

f13nd

Незачем советовать то, что человек понять не может.




Ранг: 266.7 (наставник)
Статус: Участник

Создано: 20 января 2020 06:53 · Поправил: f13nd New!
Цитата · Личное сообщение · #9

difexacaw пишет:
Незачем советовать то, что человек понять не может.

Незачем советовать не советовать чего-то, если ты не смог понять, что это был сарказм, а не совет, который незачем советовать по другой причине.


 eXeL@B —› Вопросы новичков —› Firefox 58, setBoolPref

Видеокурс ВЗЛОМ