Описание тега library-interposition

This is a practice to override a call to the function from library by the developer's own implementation. Dedicated to add monitoring and/or debugging stuff into functions like malloc().
4 ответа

Проблема замены системных вызовов Linux с использованием LD_PRELOAD

Я пытаюсь написать программу, которая позволяет запускать двоичный файл, заменяя определенный файл при запросе другим. Это библиотека с простыми заменами функций системного вызова, которая используется с LD_PRELOAD. Проблема в том, что он ловит откр…
29 май '09 в 00:26
1 ответ

Как я могу получить PID нового процесса перед его выполнением?

Чтобы я мог делать некоторые вставки и вставки с использованием кода https://github.com/comex/inject_and_interpose, мне нужно получить PID недавно запущенного процесса (типичное пользовательское приложение с закрытым исходным кодом) до его фактическ…
1 ответ

Вставка системных вызовов OS X

Мне нужно вставить (вызывать мои функции вместо оригинальных функций) некоторые системные вызовы OS X, чтобы преодолеть недостаток в части программного обеспечения с закрытым исходным кодом. Предпочтительно, чтобы полученное решение работало под 10,…
3 ответа

Отображенные в память файлы в C

Я играл с отображенными в память файлами в C и задавался вопросом, есть ли способ заменить FILE * из fopen прозрачно отображаемым файлом. Пример: FILE * fp = g_fopen(...); //Program does things to this fp. fclose(); Но вместо этого возможно ли иметь…
4 ответа

Узнайте, является ли полученный указатель строкой, ushort или массивом

Я вставляю функцию memcpy() в C, потому что целевое приложение использует ее для объединения строк, и я хочу выяснить, какие строки создаются. Код является: void * my_memcpy ( void * destination, const void * source, size_t num ) { void *ret = memcp…
2 ответа

Как динамически вставлять функции C из Python в Linux (без LD_PRELOAD)?

Как мне, во время выполнения (нет LD_PRELOAD), перехватить / перехватить функцию C, например fopen() на Linux, а-ля Detours для Windows? Я хотел бы сделать это из Python (следовательно, я предполагаю, что программа уже работает на виртуальной машине…
03 фев '11 в 23:28
1 ответ

Очистка функции с помощью dlsym

В качестве оболочки malloc я использую этот классический фрагмент кода: #define _GNU_SOURCE #include <stdio.h> #include <stdint.h> #include <dlfcn.h> void* malloc(size_t size) { static void* (*real_malloc)(size_t) = NULL; if (!real…
2 ответа

Как перехватить системные вызовы моего приложения для Android (не рутированное устройство)

Я пытаюсь перехватить все системные вызовы, сделанные моим Android-приложением, на устройстве без рута. Поэтому каждый раз, когда мое приложение записывает / читает файл, я хочу перехватить системный вызов и зашифровать / расшифровать поток в целях …
1 ответ

Ошибка ptrace(PTRACE_ATTACH, pid, 0, 0): невозможно привязать к pid

Я пытаюсь внедрить библиотеку в Android с помощью PTRACE, но когда я пытаюсь прикрепить ptrace к определенному pid для мониторинга, появляется ошибка /; "Невозможно прикрепить к pid"... Вот код // Attach if (0 > ptrace(PTRACE_ATTACH, pid, 0, 0)) …
20 сен '17 в 05:49
2 ответа

LD_PRELOAD для методов класса C++

Мне нужно вставить на вызов метода в программе C++ (класс находится в отдельной общей библиотеке). Я думал, что мог бы использовать LD_PRELOAD, но я не уверен, как это будет работать (я нашел только примеры функций C): есть ли способ настроить взаим…
05 авг '10 в 00:50
1 ответ

Вставка библиотеки: XOpenDisplay

Я работаю над проектом, в котором мне нужно изменить поведение функции XOpenDisplay, определенной в X11 / Xlib.h. Я нашел пример, который должен делать именно то, что я ищу, но когда я его компилирую, я получаю следующие сообщения об ошибках: XOpenD…
0 ответов

Вставка кода в существующий apk

Возможно ли, учитывая существующий apk, вставлять вызовы методов? Как насчет произвольных строк кода? В идеале я хотел бы иметь возможность перехватывать вызов метода / строку кода и вызывать мой собственный метод для выполнения некоторых проверок и…
1 ответ

Могут ли системные вызовы OS X быть переопределены или вставлены в масштабе всей системы?

Работая под OS X Lion, я недавно поработал с внедрением кода, чтобы в последнее время вставлять системные вызовы на индивидуальной основе. Я многому научился на этом пути, и теперь, похоже, было бы разумнее, по крайней мере, для исследовательских це…
1 ответ

Поиск символов в общих библиотеках

Я проверил такую ​​простую программу ниже /* a shared library */ dispatch_write_hello(void) { fprintf(stderr, "hello\n"); } extern void print_hello(void) { dispatch_write_hello(); } Моя основная программа такая: extern void dispatch_write_hello(void…
1 ответ

Как перехватить системные вызовы моего приложения для Android

Я хочу перехватить системный вызов connect() и использовать мою собственную реализацию. Пользовательская реализация будет выполнять некоторые действия, такие как печать журнала для простоты, а затем вызывать системную реализацию дальше. Я посмотрел …
1 ответ

Вставка fscanf только при определенных условиях

Поэтому я пытаюсь переопределить функцию fscanf в c, но я хочу, чтобы другое поведение происходило только при соблюдении определенных условий; если эти условия не выполняются, я хочу просто позвонить оригинальному fscanf. Я знаю, что вы можете испол…
20 окт '17 в 20:05
0 ответов

Вложение библиотеки времени выполнения для функции sleep() в C

У меня небольшая проблема с вставкой функции сна во время выполнения. В настоящее время я пытаюсь протестировать вставку библиотеки во время выполнения, используя простой исходный код "sleepdemo.c" и "wakeup.c". Код (wakeup.c), который я написал, вы…
26 май '17 в 16:10
2 ответа

Как я могу отладить процесс, связанный с библиотекой времени выполнения?

Сейчас я изучаю взаимодействие библиотек с C в Ubuntu 18.04 и тестирую два простых кода для обертывания strlen: "mystrlen.c", "mystrlenTest.c". Вот код, который я написал: mystrlen.c #ifdef RUNTIME #define _GNU_SOURCE #include <stdio.h> #inclu…
1 ответ

Размещение символов в macOS

У меня есть программа, которая ссылается на общую библиотеку. Я хочу переопределить одну из функций внутри моей программы, чтобы внутренние вызовы этой функции изнутри libfooразрешить определение в моей программе. (Для контекста я намерен имитироват…
1 ответ

Библиотечное взаимодействие

Я пытался перехватить вызовы malloc и free, следуя нашему учебнику (книга CSAPP). Я следовал их точному коду и почти тому же коду, который я нашел в Интернете, и я продолжаю получать ошибку сегментации. Я слышал, как наш профессор говорил что-то о p…
13 дек '20 в 11:37