Форум программистов, компьютерный форум CyberForum.ru

Перехват и подмена вызываемых функций - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программы на C http://www.cyberforum.ru/cpp/thread46395.html
Известно, что такие системы как PHP, MySQL, Apache и многие другие написаны на языке C. Мне любопытно, действительно их пишут на чистом C? И какой при этом компилятор используют? Вообще где можно почитать (книги, статьи) про программирование и архитектуру подобных систем?
C++ определение расшарености(Share) папки програмно Добрые люди, подскажите пожалуйста как определить, что папка расшарена с помощью Win API програмно? http://www.cyberforum.ru/cpp/thread46292.html
определение расшарености(Share) папки програмно C++
Добрые люди, подскажите пожалуйста как определить, что папка расшарена с помощью Win API програмно?
Поиск в файле C++
Есть большое колличество файлов (word и excel). Как написать программу, которая бы искала введенное сочетание слов во всех файлах и в качестве результата - выводила или открывала данные файлы, или путь к ним показывала....?? помогите плиз, очень надо! Добавлено через 3 минуты 20 секунд пролсто я не совсем понимаю, как это реализовать (именно поиск в файле по введенной комбинации слов)
C++ Начать программирование на C++ http://www.cyberforum.ru/cpp/thread46081.html
Подскажите как начать программмировать на c++ ? Подскажите пожалуйста самую подходящую литературу ! Я учу PHP сейчас ( ну это как бы для вэб и не в счет так же как и то что я знаю HTML ))) Знаю только что c++ является самым серьезным языком программирования (ООП) Спасибо !
C++ Русификация консольных приложений Народ, помогите плиз. Есть ли прога, позволяющая русифицировать консольные приложения на с++? Заранее простите за безграмотность. Изучаю с++ всего 2-й день подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
17022 / 5427 / 336
Регистрация: 30.03.2009
Сообщений: 14,693
Записей в блоге: 26
10.08.2009, 10:44     Перехват и подмена вызываемых функций
C
1
2
3
4
5
6
7
8
9
/* Файл t.c */
#include <unistd.h>
 
int
main (void)
{
  write (1, "abc\n", 4);
  return 0;
}
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* Файл tt.c */
/* Для реализации настоящего вызова в стандартных хидерах
 * описан только вариант write, а __write в интерфейс
 * не выставляется (т.к. это не есть стандарт). данная фича
 * заточена под реализацию glibc на linux'е и не факт,
 * что будет работать на других ОС */
extern int __write (int fd, const char *buff, long len);
 
int
write (int fd, const char *buff, long len)
{
  __write (fd, "trampampam\n", 11);
  __write (fd, buff, len);
}
Код
Собираем нашу читерскую библиотеку
$ gcc tt.c -fPIC -c
$ gcc tt.o -shared -o libshaman.so

Собираем исполняемый файл
$ gcc t.c

Честный запуск файла
$ ./a.out
abc

Читерский запуск файла
$ export LD_PRELOAD=`pwd`/libshaman.so
$ ./a.out
trampampam
abc

Снова честный
$ unset LD_PRELOAD
$ ./a.out
abc
 
Текущее время: 10:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru