Показано с 1 по 10 из 13
Комбинированный просмотр
-
11.11.2024, 18:59 #1
- Регистрация
- 18.04.2018
- Адрес
- HP-Compaq DX2300 microtower PC
- Сообщений
- 269
- Сказал(а) спасибо
- 69
- Поблагодарили 1818 раз(а) в 397 сообщениях
Re: универсальный патчер памяти процесса для линукса
находим вызовы call_init - они все в файле glibc-src/elf/dl-init.c в процедуре _dl_init
Код:void internal_function _dl_init (struct link_map *main_map, int argc, char **argv, char **env) { ElfW(Dyn) *preinit_array = main_map->l_info[DT_PREINIT_ARRAY]; ElfW(Dyn) *preinit_array_size = main_map->l_info[DT_PREINIT_ARRAYSZ]; unsigned int i; if (__builtin_expect (GL(dl_initfirst) != NULL, 0)) { call_init (GL(dl_initfirst), argc, argv, env); <====== здесь вызов call_init GL(dl_initfirst) = NULL; } /* Don't do anything if there is no preinit array. */ if (__builtin_expect (preinit_array != NULL, 0) && preinit_array_size != NULL && (i = preinit_array_size->d_un.d_val / sizeof (ElfW(Addr))) > 0) { ElfW(Addr) *addrs; unsigned int cnt; if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_IMPCALLS, 0)) _dl_debug_printf ("\ncalling preinit: %s\n\n", main_map->l_name[0] ? main_map->l_name : rtld_progname); addrs = (ElfW(Addr) *) (preinit_array->d_un.d_ptr + main_map->l_addr); for (cnt = 0; cnt < i; ++cnt) ((init_t) addrs[cnt]) (argc, argv, env); } /* Stupid users forced the ELF specification to be changed. It now says that the dynamic loader is responsible for determining the order in which the constructors have to run. The constructors for all dependencies of an object must run before the constructor for the object itself. Circular dependencies are left unspecified. This is highly questionable since it puts the burden on the dynamic loader which has to find the dependencies at runtime instead of letting the user do it right. Stupidity rules! */ <======== "Шобла тупых побеждает упрямством" i = main_map->l_searchlist.r_nlist; while (i-- > 0) call_init (main_map->l_initfini[i], argc, argv, env); <====== здесь вызов call_init #ifndef HAVE_INLINED_SYSCALLS /* Finished starting up. */ INTUSE(_dl_starting_up) = 0; #endif }
"кинжал хорош для того, у кого он есть, и плохо тому у кого он не окажется в нужное время"
Похожие темы
-
уни-патч для линукса и для макоси
от HPDX2300 в разделе Установка и администрирование 1С - ПредприятиеОтветов: 48Последнее сообщение: 18.10.2024, 15:23 -
Проблема с размером процесса
от 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
Социальные закладки