Показано с 1 по 10 из 13
Древовидный режим
-
08.11.2024, 03:28 #2
- Регистрация
- 18.04.2018
- Адрес
- HP-Compaq DX2300 microtower PC
- Сообщений
- 270
- Сказал(а) спасибо
- 69
- Поблагодарили 1818 раз(а) в 397 сообщениях
Re: универсальный патчер памяти процесса для линукса
В линуксе есть возможность доустановить для любого пакета его отладочную информацию. Я проделал это с glibc, чтобы появились файлы с debug-инфой для загрузчика /usr/lib64/ld-2.17.so
на снимке МС в правой панели рядом с /usr/lib64/ld-2.17.so появилась ссылка на ld-2.17.so.debug,
а левая панель МС открыта в папке реального расположения файлов .debug
документация и сам загрузчик сообщают, что его можно запускать, указав в качестве параметра имя файла приложения.
вот я запускаю загрузчик в терминале:
Код:[user@hostname lib64]$ ./ld-2.17.so Usage: ld.so [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...] You have invoked `ld.so', the helper program for shared library executables. This program usually lives in the file `/lib/ld.so', and special directives in executable files using ELF shared libraries tell the system's program loader to load the helper program from this file. This helper program loads the shared libraries needed by the program executable, prepares the program to run, and runs it. You may invoke this helper program directly from the command line to load and run an ELF executable file; this is like executing that file itself, but always uses this helper program from the file you specified, instead of the helper program file specified in the executable file you run. This is mostly of use for maintainers to test new versions of this helper program; chances are you did not intend to run this program. --list list all dependencies and how they are resolved --verify verify that given object really is a dynamically linked object we can handle --inhibit-cache Do not use /etc/ld.so.cache --library-path PATH use given PATH instead of content of the environment variable LD_LIBRARY_PATH --inhibit-rpath LIST ignore RUNPATH and RPATH information in object names in LIST --audit LIST use objects named in LIST as auditors
Код:/usr/lib64/ld-2.17.so /opt/1cv8/x86_64/8.3.25.1374/1cv8
IDA-free-8.4 не захотела начать отладку ld-2.17.so, выругалась:
Input file is a dynamic library, it cannot be run by itself.
Please specify the host application (Debugger, Process options)
в файле ida64 сделал исправление (patch) {0F 85 -> 90 E9}:
offset:19D90B: 0F 85 5D FC FF FF jnz -0x3A3 ; HACK: jnz -> jmp {0F 85 -> 90 E9} to debug ld.so
либа /usr/lib64/ld-2.17.so скопирована с именем /usr/lib64/_my_ld т.к. почти наверняка я захочу её патчить в процессе изучения, ida64 пропатчена, согласилась выполнять отладку /usr/lib64/_my_ld
в меню "Debugger" -> "Process options..." указан параметр процесса Parameters: /opt/1cv8/x86_64/8.3.25.1374/1cv8
установленная отладочная информация для библиотек glibc, в отладчике проявляет себя именами функций, типами параметров и локальных переменных, структурами с именами полей:
наиболее интересные для изучения функции:
ld.so:_dl_open
libc.so:__mprotect"кинжал хорош для того, у кого он есть, и плохо тому у кого он не окажется в нужное время"
Похожие темы
-
уни-патч для линукса и для макоси
от HPDX2300 в разделе Установка и администрирование 1С - ПредприятиеОтветов: 49Последнее сообщение: Вчера, 23:02 -
Проблема с размером процесса
от denis.zubarev. в разделе Конфигурирование, программирование 1С - ПредприятиеОтветов: 2Последнее сообщение: 22.07.2013, 16:14 -
Запись игрового процесса с компа
от Deus Ex в разделе Железо (hardware)Ответов: 40Последнее сообщение: 10.05.2013, 21:56 -
Патчер для 7%ЕСХН
от ЛюдмилаЧ в разделе ПолезностиОтветов: 0Последнее сообщение: 31.01.2011, 15:37 -
Установка Линукса.
от Большой Брат в разделе LINUXОтветов: 18Последнее сообщение: 09.11.2007, 05:26
Социальные закладки