| Win API & ½Ã½ºÅÛ ÇÁ·Î±×·¡¹Ö °úÁ¤ |

Windows OS ȯ°æ¿¡¼ ½ÇÇàµÇ´Â ÇÁ·Î±×·¥À» ¸¸µé±â À§Çؼ´Â ¾Æ·¡¿Í °°Àº ´Ù¾çÇÑ ¾ð¾î¿Í µµ±¸¸¦ »ç¿ëÇÒ¼ö ÀÖ½À´Ï´Ù.
MFC, QT µîÀÇ C++Ŭ·¡½º ¶óÀ̺귯¸® C#, VB µîÀÇ .net platform ¾ð¾î µ¨ÆÄÀÌ, ÆÄ¿öºô´õ µîÀÇ 4GL Java ÇÏÁö¸¸, À§ÀÇ ¹æ¹ýµé Áß ¾î¶² °ÍÀ»
»ç¿ëÇÏ´õ¶óµµ °á±¹Àº OS°¡ Á¦°øÇÏ´Â ±âº»ÇÔ¼ö(Windows API)¸¦ È£ÃâÇÏ°Ô µÇ¾î ÀÖ½À´Ï´Ù. Áï, À©µµ¿ì °³¹ßÀÇ °¡Àå ±âº»Àº Windows API ÀÔ´Ï´Ù.
Windows API´Â À©µµ¿ì ÇÁ·Î±×·¥À» ¸¸µé±â À§ÇØ Window OS¿¡ ÀÇÇØ Á¦°øµÇ´Â ÇÔ¼öÀÇ ÁýÇÕÀÔ´Ï´Ù. ¼öõ°³ÀÇ ÇÔ¼ö·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.
ÇÏÁö¸¸, À©µµ¿ì ÇÁ·Î±×·¥À» ÀßÇϱâ À§Çؼ´Â ´Ü¼øÈ÷ ÇÔ¼ö¸¦ ¸¹ÀÌ ¾È´Ù°í µÇ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. À©µµ¿ì ¿î¿µÃ¼Á¦ÀÇ ¾ÆÅ°ÅØÃ³¿¡ ´ëÇÑ ±íÀº ÀÌÇØ°¡ ¹Ýµå½Ã ÇÊ¿ä ÇÕ´Ï´Ù.
º» °úÁ¤¿¡¼´Â ´Ü¼øÇÑ ÇÔ¼ö »ç¿ë¹ýÀÌ ¾Æ´Ñ À©µµ¿ì ÇÁ·Î±×·¥ÀÇ ±Ùº»ÀûÀÎ ¿ø¸®¿¡ ´ëÇØ ÀÚ¼¼È÷ ÇнÀÇÕ´Ï´Ù. º» °úÁ¤À» ÅëÇØ ¾Æ·¡¿Í °°Àº ³»¿ëÀ» ¹è¿ì½Ç¼ö ÀÖ½À´Ï´Ù.
À©µµ¿ì »ý¼º, ¸Þ½ÃÁö ó¸®, ¸®¼Ò½º °ü¸®, GDI, Dialog µî GUIÀÇ ±âº»¿ä¼Ò¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù. À©µµ¿ì ½ÇÇàÆÄÀÏ Æ÷¸ËÀÎ PE Æ÷¸Ë°ú DLL¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù.
°¡»ó¸Þ¸ð¸®, °¡»óÁÖ¼Ò, ¸Þ¸ð¸® ¸Ê ÆÄÀÏ µî¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù. ÇÁ·Î¼¼½º »ý¼º/ÆÄ±«/¿°Å µîÀÇ ±â¹ý¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù. ½º·¹µå, ½º·¹µå µ¿±âÈ ±â¹ý, ¹ÂÅØ½º ¼¼¸¶Æ÷¾î µîÀÇ
µ¿±âÈ °´Ã¼¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù. ¸Þ¼¼Áö QÀÇ ³»ºÎ ¿ø¸®¿¡ ´ëÇØ ÀÚ¼¼È÷ ÇнÀÇÕ´Ï´Ù. SEH,STH µî ±¸Á¶ÈµÈ ¿¹¿Ü ó¸® ±â¹ý¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù. ¸Þ¼¼Áö Hooking, API Hooking,
DLL Injection µî¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù. ntdll.dll, Native API, SDT Table µî À©µµ¿ì ¾ÆÅ°ÅØÃÄ¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù. µð¹ö°ÅÀÇ ¿ø¸®¿Í Á¦ÀÛ ¹æ¹ýµµ °£´ÜÇÏ°Ô ¹è¿ì½Ç¼ö ÀÖ½À´Ï´Ù.
±íÀÌ ÀÖ´Â À©µµ¿ì ÇÁ·Î±×·¥À» ¹è¿ì½Ç¼ö ÀÖµµ·Ï ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.
- ¾Ï±â°¡ ¾Æ´Ñ ¿ø¸®¸¦ ¹è¿ó´Ï´Ù.
APIÇÔ¼ö´Â ¼öõ °³ÀÇ ÇÔ¼ö¿Í ±¸Á¶Ã¼, »ó¼ö °ªµé·Î ÀÌ·ç¾îÁ® ÀÖ½À´Ï´Ù. ÀÌ ¸¹Àº ÇÔ¼ö¸¦ ÀüºÎ ¿Ü¿ö¼ »ç¿ë ÇÒ ¼ö´Â ¾ø½À´Ï´Ù. ÇÊ¿ä ÇÒ ¶§ ½º½º·Î ã¾Æ¼ Ȱ¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù.
º» °úÁ¤Àº ´Ü¼øÇÑ ÇÔ¼ö »ç¿ë¹ýÀÌ ¾Æ´Ï¶ó À©µµ¿ì ÇÁ·Î±×·¥ÀÇ ¿ø¸®¿Í ±¸Á¶¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. UI ¿ä¼Ò·Î¼ À©µµ¿ì°¡ ¾Æ´Ñ ±¸Á¶Ã¼·Î¼ÀÇ Window GetMessage()ÀÇ ±â´ÉÀ» ¼³¸íÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó
GetMessage()ÀÇ ³»ºÎ ¿ø¸®¿¡ ´ëÇØ ´Ù·ç°Ô µË´Ï´Ù.
- Windows ¿î¿µÃ¼Á¦ÀÇ Architecture¿¡ ´ëÇØ ÀÚ¼¼È÷ ¹è¿ó´Ï´Ù.
ÇÁ·Î¼¼½º ½º·¹µå µ¿±âÈ ¸Þ¸ð¸® °ü¸® IPC µîÀº À©µµ¿ì OS»Ó ¾Æ´Ï¶ó ´Ù¸¥ ´ëºÎºÐ OS¿¡¼µµ Á¦°øÇÏ´Â ±â Windows ¿î¿µÃ¼Á¦ÀÇ Architecture¿¡ ´ëÇØ ÀÚ¼¼È÷ ¹è¿ó´Ï´Ù. ÇÁ·Î¼¼½º, ½º·¹µå, µ¿±âÈ,
°ü¸®, ´ÉÀÔ´Ï´Ù. Áï, Çö´ëÀÇ ´ëºÎºÐ ¿î¿µÃ¼Á¦ ¼ºñ½º ÀÔ´Ï´Ù. µû¶ó¼ ¹Ýµå½Ã Á¤È®ÇÑ °³³ä°ú Ȱ¿ë ±â¹ýÀ» ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. ÇϳªÀÇ OS¿¡¼ Á¤È®È÷ °³³äÀ» ÀÌÇØ ÇÑ´Ù¸é ´Ù¸¥ OS¿¡¼µµ ½±°Ô Á¢±ÙÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
¶ÇÇÑ, ¸ðµç OSÀÇ °øÅëµÈ ¼ºñ½º ¿Ü¿¡ À©µµ¿ì¶ó´Â OS¿¡¼¸¸ »ç¿ëµÇ´Â ¸¹Àº ±â¹ý°ú ¿ä¼Ò°¡ ÀÖ½À´Ï´Ù. Message Hooking, Dll Injection, API Hooking, Debugging APIÀÇ »ç¿ë µî.. ÇÏÁö¸¸, ÀÌ·± Å×Å©´Ð Çϳª¸¦ ¾Æ´Â
°ÍÀº Àç¹Ì´Â ÀÖÁö¸¸ ±×¸® Áß¿ä ÇÏÁö´Â ¾Ê½À´Ï´Ù. ÁøÂ¥ Áß¿äÇÑ °ÍÀº À©µµ¿ì OSÀÇ ÀüüÀûÀÎ Architecture¸¦ ¾Æ´Â °ÍÀÔ´Ï´Ù. Architecture¸¦ Á¤È®È÷ ÀÌÇØ Çϸé À§¿¡¼ ¿°ÅÇÑ ´ëºÎºÐÀÇ ±â¹ýÀº ´ç¿¬È÷ ½±°Ô ÀÌÇØ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¶ÇÇÑ, À©µµ¿ì ½ÇÇàÆÄÀÏ Æ÷¸ËÀÎ PE¸¦ ¾Æ´Â °Íµµ ³Ê¹«³ª Áß¿äÇÕ´Ï´Ù.
- °£´ÜÇÑ ¹Ì´Ï ÇÁ·ÎÁ§Æ®¸¦ ÅëÇØ ¹è¿î ±â¼úÀ» Ȱ¿ëÇØ º¾´Ï´Ù.
óÀ½ À©µµ¿ì ÇÁ·Î±×·¥À» ¹è¿ì´Â ºÐµéÀº °©ÀÛ½º·¯¿î º¯È¿¡ Àß ÀûÀÀ ÇÏÁö ¸øÇÕ´Ï´Ù. À̰æ¿ì´Â ¿ª½Ã ¼ö¸¹Àº ¿¹Á¦¿Í ÇÁ·ÎÁ§Æ®¸¦ ÅëÇØ ¸¹Àº ¿¬½ÀÀ» ÇÏ´Â ¹æ¹ýÀÌ °¡Àå ÁÁ½À´Ï´Ù. °£´ÜÇÑ ¹Ì´Ï ÇÁ·ÎÁ§Æ®¸¦ ÅëÇØ ¹è¿î ±â¼úÀ»
Ȱ¿ëÇØ º¾´Ï´Ù. º» °úÁ¤¿¡¼´Â °£´ÜÇÑ ¹Ì´Ï°ÔÀÓ, IDE ȯ°æ µµ±¸, TextEditorµîÀ» Á÷Á¢ ¸¸µé¾î º¸¸é¼ API¿¡ ´ëÇÑ È°¿ë ´É·ÂÀ» Ű¿ó´Ï´Ù.
À©µµ¿ì ÇÁ·Î±×·¥À» ¹è¿ì°íÀÚ ÇÏ´Â °³¹ßÀÚ ¶Ç´Â Çлý
C¾ð¾î, ÀڷᱸÁ¶
 ÆòÀÏ45½Ã°£/ÁÖ¸»42½Ã°£
 32¸¸¿ø

| ±³ À° ³» ¿ë |
|
[1ÁÖ]
|
PE Format, Virtual Memory, Virtual Address
Making Window
MessageÀÇ ÀÌÇØ
Q Message non-Q Message Mouse/Keyboard
Message, non Message, SendMessage Vs PostMessage
GDI Basic
DC, Invalidate Region, GDI Object, Drawing Mode, WM_PAINT ¡¦ |
|
[2ÁÖ]
|
Resource. Menu, Cursor
Bitmap
DDB VS DIB, BitBlt, Memory DC
Control
Basic Control, SubClassing, OwnerDraw
Common Controls
Dialog |
|
[3ÁÖ]
|
Kernel Object, Process »ý¼º, ÆÄ±«, ¿°Å, Process ID Vs Process Handle
Thread, Thread Synchronization,
Mutex, Semaphore, Event, Critical Section
Atomic Operation, Thread Pooling, Thread Model
Memory Management, Virtual Memory, Heap, Stack,
Memory Mapped File |
|
[4ÁÖ]
|
File, Asynchronous IO, IPC
DLL, Explicit Linking, Implicit Linking
SEH, STH, internal Message Q
Native API ntdll DLL Zwxxx Ntxxx functions |
|
|