Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2007, 13:16   #1
satana
Пользователь
 
Регистрация: 16.07.2007
Сообщений: 31
Вопрос Перехват API функций

Данный вопрос по статье Перехват API (http://www.wasm.ru/article.php?article=apihook_1)

Перепечатав приведенный там в примере исходник (программа перехватывающая CreateProcessA), компилятор начал ругатся на ошибки, пару констант (THREAD_SUSPEND_RESUME, CREATE_SUSPEND) я откопал в масмовском windows.inc, подправил еще пару ошибок, но остались четыре ошибки исправить самостоятельно которые я не в силах....
Проэкт приаттачен, весит 3,01 КБ, посмотрите пожалуйста!

Пользуюсь услугами "Borland Delphi 7"

Заранее спасибо...
Вложения
Тип файла: rar API.rar (3.0 Кб, 30 просмотров)

Последний раз редактировалось satana; 19.08.2007 в 13:19.
satana вне форума Ответить с цитированием
Старый 19.08.2007, 14:10   #2
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

http://go.pblog.ru/?cx=0082582028481...CF%EE%E8%F1%EA
Alar вне форума Ответить с цитированием
Старый 19.08.2007, 17:06   #3
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

добавь две переменных: Writen и bw типа DWORD
Код:
var 
  writen,bw:DWORD;
rpy3uH вне форума Ответить с цитированием
Старый 21.08.2007, 01:36   #4
satana
Пользователь
 
Регистрация: 16.07.2007
Сообщений: 31
По умолчанию

Ну вот исправил, откомпилировал... Только вместо перехвата выходит так что все приложения виснут (и те которые в фоновом режиме, и explorer.exe) - в чем может быть проблема?

Последний раз редактировалось satana; 21.08.2007 в 02:18.
satana вне форума Ответить с цитированием
Старый 21.08.2007, 20:12   #5
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

в обработчике надо вызвать оригинал т.е. функция NewCreateProcessA должна быть такая
Код:
  function  NewCreateProcessA(lpApplicationName: PChar;
                              lpCaommandLine: PChar;
                              lpProcessAttributes,
                              lpThreadAttributes: PSecurityAttributes;
                              bUnheritHandles: BOOL;
                              dwCreationFlags: dword;
                              lpEnviroment: Pointer;
                              lpCurrentDirectory: PChar;
                              const lpStartupInfo: TStartupInfo;
                              var lpProcessInformation: TProcessInformation): BOOL; stdcall;
  begin
    MessageBoxA(0, 'функция перехвачена!', 'Уведомление', MB_OK);
    result := TrueCreateProcessA(lpApplicationName, lpCommandLine, lpProcessAttributes,
                            lpThreadAttributes, bInheritHandles, dwCreationFlags or
                            CREATE_SUSPEND, lpEnviroment, nil, lpStartupInfo,
                            lpProcessInformation);
  end;
rpy3uH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перехват клавиатуры Ferro Общие вопросы Delphi 3 25.03.2010 21:02
API перехват Irat Помощь студентам 13 11.02.2008 12:04
перехват трафика Roman Работа с сетью в Delphi 6 27.06.2007 08:51
Перехват Апи-функций доступа к файловой сиcтеме Coffein Win Api 3 18.06.2007 20:27