Re: Hook без длл
От: ADK  
Дата: 24.05.02 07:10
Оценка: 4 (1)
Здравствуйте SUnteXx, Вы писали:

Если бы в MSDN было всё описано, то и не спрашивали бы

#define CODE "MY_CODE"
#pragma comment(linker,"/BASE:0x99990000") // Хороший адрес, вряд-ли там кто-то бывает
#pragma comment(linker,"/merge:.rdata="CODE) // Все секции в одну загони
#pragma comment(linker,"/merge:.rsrc="CODE)
#pragma comment(linker,"/merge:.reloc="CODE)
#pragma comment(linker,"/merge:.idata="CODE)
#pragma comment(linker,"/merge:.data="CODE)
#pragma comment(linker,"/merge:.text="CODE)
#pragma comment(linker,"/section:"CODE",SERW") // Атрибуты: Shared — Execute — Read — Write

И ДЛЛ не понадобится вообще


#4 04/21/02 17:40:38 Цитировать » Править » Удалить

--------------------------------------------------------------------------------
Можно ли пользовать глобальные хуки без выкладывания callback функции в отдельную dll


Можно...

#define CODE "HOOKER"
#pragma code_seg(CODE)
// Выбрать имя секции

#pragma comment(linker,"/section:"CODE",SERW")
// Атрибуты секции: Shared — Execute — Read — Write

#pragma comment(linker,"/merge:.text="CODE)
#pragma comment(linker,"/merge:.rdata="CODE)
#pragma comment(linker,"/merge:.reloc="CODE)
#pragma comment(linker,"/merge:.idata="CODE)
#pragma comment(linker,"/merge:.data="CODE)
// Слить все секции в одну, чтобы расшарено было всё

//#pragma comment(linker,"/merge:.rsrc="CODE)
// Не сливать .RSRC, потому что из неё потом ничего не вытащишь...
// не знаю чё за глюк

#pragma comment(linker,"/BASE:0x87650000")
// Выбрать хороший адрес, где никого никогда не будет...
Independent software developer
Hook без длл
От: SUnteXx  
Дата: 24.05.02 06:26
Оценка:
Доброго времени суток.

Меня интересует, как можно создать хук на систему (а именно на WM_SETCURSOR) без использования длл. Хотелось бы увидеть либо кусок кода либо линк на сиё чудо.

Результат всей этой фигни должен быть таков:
Во всех окна, во всех, должен стоять один и тот же курсор, который поставлю я. Если система пытается изменить его, то срабатывает хук и перекрывается сообщение.

Спасибо за внимание,
SUnteXx
Nobody is perfect. I am nobody
Re: Hook без длл
От: Алексей Петров Россия  
Дата: 24.05.02 06:35
Оценка:
Здравствуйте SUnteXx, Вы писали:

SUX>Доброго времени суток.


SUX>Меня интересует, как можно создать хук на систему (а именно на WM_SETCURSOR) без использования длл. Хотелось бы увидеть либо кусок кода либо линк на сиё чудо.


В MSDN утверждается, что сие не возможно (без dll).

SUX>Результат всей этой фигни должен быть таков:

SUX>Во всех окна, во всех, должен стоять один и тот же курсор, который поставлю я. Если система пытается изменить его, то срабатывает хук и перекрывается сообщение.

Маньяк. А пользователь этого хочет?


SUX>Спасибо за внимание,

SUX> SUnteXx
Re[2]: Hook без длл
От: SUnteXx  
Дата: 24.05.02 08:47
Оценка:
Здравствуйте Алексей Петров, Вы писали:
АП>Маньяк. А пользователь этого хочет?

А кто его спрашивает? Это надо всего на несколько сек, выбрать окно, а потом уже ставить нормальные курсоры!
Nobody is perfect. I am nobody
Re[2]: Hook без длл
От: SUnteXx  
Дата: 24.05.02 10:19
Оценка:
Здравствуйте ADK, Вы писали:
ADK>Если бы в MSDN было всё описано, то и не спрашивали бы

ADK>#define CODE "MY_CODE"

ADK> .
ADK> .
ADK> .
ADK>// Выбрать хороший адрес, где никого никогда не будет...

10x. А можЁт у тя или кого-нить другого пример есть? Если есть пример, то можете кинуть на SUnteXx@pisem.net
Nobody is perfect. I am nobody
Re[2]: Hook без длл
От: Аноним  
Дата: 26.05.02 09:36
Оценка:
Здравствуйте ADK, Вы писали:

ADK>#pragma comment(linker,"/BASE:0x99990000") // Хороший адрес, вряд-ли там кто-то бывает

Выкинь эту байду.
Надо просто установить для exe /FIXED:NO. После этого exe сможет грузится по любому адресу и SUnteXx сможет в exe поместить процедуру хука. :user:
Re[3]: Hook без длл
От: Kubyshev Andrey  
Дата: 28.05.02 06:40
Оценка:
Здравствуйте Аноним, Вы писали:


Sovetchiki, a probovali li vy tak delat' ? chto za adresa vy stavite bolshe chem 0x80000000, neuzheli windows ee v kernel space zagruzit ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.