http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=8584 [º¹»ç]
pwnable.kr °ø·«À» ¿Ã¸±·Á°í ÇßÁö¸¸ ¼¹ö°¡ ´Ù¿îµÈ°ÇÁö ¾Æ´Ï¸é ¼ö¸®ÁßÀÎÁö...
´õ±¸³ª ±âÁ¸ÀÇ ½±°Ô Ç®ÀÌµÈ bof¹®Á¦°¡ ½ºÅà ī³ª¸®±îÁö Ãß°¡°¡ µÇ¾î ÀÖ¾ú´Ù.
±×·¡¼ ¹«½¼ °Á¸¦ ¾µ±î °í¹ÎÇÏ´Ù°¡...
ÈÄÅ· °Á¸¦ ½áº»´Ù.
Win32¿¡¼ ÈÄÅ·Àº ¿î¿µÃ¼Á¦ÀÇ ¾ÖÇø®ÄÉÀ̼ǿ¡¼ ¹ß»ýÇÏ´Â
À̺¥Æ®³ª ÇÔ¼ö¸¦ È£ÃâÀ» °¡·Îä´Â ±â¹ýÀ» ¸»ÇÑ´Ù.
SetWindowHookEx API¸¦ »ç¿ëÇÏ¿© ÈÄÅ·À» ¼³Á¤ÇÒ ¼ö ÀÖÀ¸¸ç,
ÀÌ ¶§ »ç¿ëµÇ´Â ÈÄÅ· Á¾·ù´Â
WH_KEYBOARD, WH_MOUSE, WH_CALLWNDPROCµîÀÌ ÀÖ´Ù.
À©µµ¿ì¿¡¼ ÇÒ ¼ö ÀÖ´Â °£´ÜÇÑ ÈÄÅ· ÇÁ·Î±×·¥ Äڵ带 ¿¹½Ã·Î µé°Ú´Ù.
=============== ½ÃÀÛ ===============
#include <windows.h>
#include <stdio.h>
// Å°º¸µå ÈÄÅ© »ó¼ö Á¤ÀÇ
#define WH_KEYBOARD_LL 13
#define WM_KEYDOWN 0x0100
#define WM_KEYUP 0x0101
#pragma comment(lib, "user32.lib")
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);
HHOOK SetKeyboardHook();
void RemoveKeyboardHook(HHOOK hook);
int main(void)
{
printf("TEST!\n");
HHOOK hook = SetKeyboardHook(); // Å°º¸µå ÈÄÅ© ¼³Á¤
// ¸Þ½ÃÁö ·çÇÁ
MSG msg;
printf("GetMessage È£ÃâµÊ\n");
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
// ÈÄÅ© Á¦°Å
RemoveKeyboardHook(hook);
return 0;
}
// ÈÄÅ·µÈ Å°º¸µå À̺¥Æ®¸¦ ó¸®ÇÒ Äݹé ÇÔ¼ö
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == HC_ACTION) { // ÈÄÅ·ÀÌ Á¤»óÀûÀ¸·Î µ¿ÀÛÇßÀ» ¶§
KBDLLHOOKSTRUCT* keyInfo = (KBDLLHOOKSTRUCT*)lParam;
if (wParam == WM_KEYDOWN) {
printf("Å°°¡ ´·È½À´Ï´Ù: %c\n", keyInfo->vkCode); // °¡»óÅ° ÄÚµå Ãâ·Â
}
else if (wParam == WM_KEYUP) {
printf("Å°°¡ ¶¼¾îÁ³½À´Ï´Ù: %c\n", keyInfo->vkCode); // °¡»óÅ° ÄÚµå Ãâ·Â
}
}
// ÈÄÅ© üÀο¡ ´ÙÀ½ ÈÄÅ©¸¦ Àü´Þ
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
// ÈÄÅ©¸¦ ¼³Á¤ÇÏ´Â ÇÔ¼ö
HHOOK SetKeyboardHook()
{
HHOOK hook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardProc, GetModuleHandle(NULL), 0);
if (hook == NULL) {
printf("ÈÄÅ© ¼³Á¤ ½ÇÆÐ\n");
}
else {
printf("Å°º¸µå ÈÄÅ©°¡ ¼³Á¤µÇ¾ú½À´Ï´Ù.\n");
}
return hook;
}
// ÈÄÅ©¸¦ Á¦°ÅÇÏ´Â ÇÔ¼ö
void RemoveKeyboardHook(HHOOK hook)
{
if (hook != NULL) {
UnhookWindowsHookEx(hook);
printf("ÈÄÅ©°¡ ÇØÁ¦µÇ¾ú½À´Ï´Ù.\n");
}
}
=============== ³¡ ===============
»ç½Ç ³î¶ó¿î °Ô 'ÀÛ¾÷ °ü¸®ÀÚ'¿¡¼ ÇÁ·Î¼¼½º°¡ ÀâÈ÷Áö ¾Ê¾Ò´Ù.
(Windows 10 Pro¿¡¼ ½ÇÇàÇÏ¿´´Ù...)
Process Explorer¿¡¼´Â ÀâÇûÁö¸¸...
Process Explorer¿¡¼µµ ÀâÈ÷Áö ¾Ê´Â ¹æ¹ýÀÌ... ÀÖÀ»±î...? ¤¾¤¾ |
Hit : 195 Date : 2024/11/20 04:29
|