Как найти и заменить шестнадцатеричный код файлов .so, загружаемых в память во время выполнения, с помощью C или C++?
Заменить шестнадцатеричный код библиотеки общих объектов, загруженной в память
comment
это может помочь stackoverflow.com/questions/20099916/
- person Neil McGill   schedule 12.05.2020
comment
Я должен добавить, что все это ужасно зависит от ОС, поэтому вам нужно предоставить больше информации в таком вопросе. Там может быть более чистый способ достичь того, что вы хотите. Память вашего собственного кода, скорее всего, будет находиться в выгружаемой памяти только для чтения, недоступной напрямую, и вам нужно будет запросить доступ к ней у ОС. Следовательно, PTRACE_ATTACH/POKEDATA.
- person Neil McGill   schedule 12.05.2020
comment
Хорошо, ОС - android x86 с root-доступом. я знаю смещения, и я знаю шестнадцатеричный код в файлах .so, которые я хочу заменить после их загрузки в память
- person   schedule 12.05.2020
comment
Кажется, что упомянутый выше подход ptrace будет работать на Android - stackoverflow.com/questions/34433451/ однако, чтобы получить адрес для начала, вы можете использовать systutorials.com/docs/linux/man/3-dl_iterate_phdr
- person Neil McGill   schedule 12.05.2020
comment
Из этого подхода парней можно вставить слишком много, но он охватывает все необходимое - я уверен, что вы можете адаптировать это к C - ancat.github.io/python/2019/01/01/python-ptrace.html
- person Neil McGill   schedule 12.05.2020
comment
Большое спасибо за вашу помощь. Я буду смотреть в него.
- person   schedule 13.05.2020