Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Перехват API

21K
05 ноября 2006 года
Victor I
6 / / 04.11.2006
Подскажите, кто знает, как сделать перехват API, если конкретно, то функции CreateWindow.
Знаю есть таблица импорта, хуки, но как это разлизовать
нет ни малейшего представления.
257
05 ноября 2006 года
kosfiz
1.6K / / 18.09.2005
советую почитать статьи Ms-Rem'а по перехвату API. получишь общее представление о перехвате, посмотришь как это применять, примеры и т.д. вот ссылки:
http://wasm.ru/article.php?article=apihook_1
http://wasm.ru/article.php?article=apihook_2
http://wasm.ru/article.php?article=apihook_3
21K
05 ноября 2006 года
Victor I
6 / / 04.11.2006
Код:
type
 fr_jmp = packed record
   PuhsOp: byte;
   PushArg: pointer;
   RetOp: byte;
  end;

OldCode = packed record
  One: dword;
  two: word;
 end;

А что такое packed в паскале, и как это перевести на С++?
Чем оно отличается от record и struct?
Использую CBuilder 6:confused:
257
05 ноября 2006 года
kosfiz
1.6K / / 18.09.2005
там можно и без packed, просто не учитывай его. packed связано с выравниванием данных в record и быстротой доступа к данным: при packed доступ к данным медленнее, вроде бы так - вообще я packed никогда не пишу.
21K
06 ноября 2006 года
Victor I
6 / / 04.11.2006
Логично, что pointer - void *, или все-таки byte (unsigned char) ?
257
06 ноября 2006 года
kosfiz
1.6K / / 18.09.2005
вроде void *. вот статейки про перехват на си:
http://rsdn.ru/article/baseserv/IntercetionAPI.xml
http://rsdn.ru/article/baseserv/apicallsintercepting.xml
63
06 ноября 2006 года
Zorkus
2.6K / / 04.11.2006
Вот еще статья по слежению за API, тоже полезно, перед тем как хватать:)
http://www.rsdn.ru/article/baseserv/apispy.xml
354
06 ноября 2006 года
ШпиЁн
468 / / 19.02.2006
Когда я делал нечто подобное, у меня прога вылетала в которую чудо-dll вставляли... не наступайте на мои(может еще чьи-то) грабли, не забудьте выставить выравнивание на 1 байт. на vc++ это нечто типа
Код:
#pragma pack(push, 1)
struct jmp_far
{
  BYTE instr_push;  
  DWORD arg;        
  BYTE  instr_ret;  
};

struct old_bytes
{
    DWORD one;
    WORD two;
};
.......
текст_моей_проги
.......
#pragma pack(pop)
//конец файла
21K
09 ноября 2006 года
Victor I
6 / / 04.11.2006
А в Borland CBuilder это, насколько я понял, Data aligment : Byte В опциях проэкта
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог