ÇÁ·Î±×·¡¹Ö

 3198, 1/160 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   p0lly
   [´Ù½ÃÁú¹®] mongii´ÔÀÇ Å°·Î°ÅÄڵ带 º¸°í Áú¹®ÀÔ´Ï´Ù - 1

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3146 [º¹»ç]


´äº¯ÇØÁֽô ºÐ²²¼­ ¾ø¾î, ´Ù½Ã Çѹø ¿Ã¸³´Ï´Ù...

mongii´ÔÀÇ °­Á´ ¾Æ·¡ ¸µÅ©±¸¿ä...

http://research.hackerschool.org/Datas/Research_Lecture/keylog.txt

°­Á³»¿ëÁß¿¡,

¾Æ·¡ ۷ΰÅ.exeÀÇ WndProc()À» º¸¸é,
DLL TEST.dll¿¡¼­ ¼±¾ðµÈ int WiseGuys(int a, int b)ÀÇ Çü½Ä¿¡ ¸ÂÃß¾î
int (*MyFunc)(int, int); ·Î ÇÔ¼öÆ÷ÀÎÅ͸¦ ¸¸µé°í
MyFunc = (int (*)(int, int))GetProcAddress(hinstDll, "WiseGuys"); ·Î WiseGuysÇÔ¼öÀÇ ÁÖ¼Ò¸¦ MyFuncÇÔ¼öÆ÷ÀÎÅÍ¿Í ¸ÅÄ¡½ÃŰ´Â °ÍÀº ÁüÀÛÇϰڴµ¥¿ä...

(int (*)(int, int))Àº ¾î¶² µ¿ÀÛÀ» ÇÏ´Â °ÇÁö¿ä?
Á¦ »ý°¢¿¡´Â MyFunc = GetProcAddress(hinstDll, "WiseGuys"); ÇÏ¸é µÉ °Í°°Àºµ¥, ÀÌ·¸°Ô Çϰí compileÇÏ¸é ¿À·ù³³´Ï´Ù.

ºÎµð ÀÚ¼¼ÇÑ ¼³¸íÀ» ºÎʵ叮°Ú½À´Ï´Ù! °¨»çÇÕ´Ï´Ù~



----------------------------< DLL TEST.dllÀÇ ÄÚµå >------------------------------
#include <windows.h>
__declspec(dllexport) int WiseGuys(int a, int b)
{
        return a+b;
}



--------------------< ۷ΰÅ.exeÀÇ WndProcÀÇ ÄÚµå >--------------------------------

LRESULT CALLBACK WndProc( HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam )
{
        static HINSTANCE hinstDll;        // µ¿Àû ¶óÀ̺귯¸®¸¦ °¡¸®Å³ ÇÚµé.
        int (*MyFunc)(int, int);        // DLL¾ÈÀÇ WiseGuys ÇÔ¼ö¸¦ °¡¸®Å³ Æ÷ÀÎÅÍ.
        char str[100];        // ¸Þ½ÃÁö Ãâ·Â¿¡ »ç¿ëÇÒ º¯¼ö.

        switch( iMessage )
        {        
        case WM_CREATE:
                hinstDll = LoadLibrary("DLL TEST.dll");        // DLLÀ» ·ÎµåÇÑ´Ù.
                if(!hinstDll){
                        MessageBox(hWnd, "DLL TEST.dllÀ» ·ÎµåÇÒ ¼ö ¾ø½À´Ï´Ù.", "¿À·ù", MB_OK);
                        ExitProcess(1);
                }

                MyFunc = (int (*)(int, int))GetProcAddress(hinstDll, "WiseGuys");
                // WiseGuys ÇÔ¼ö¸¦ ·ÎµåÇÑ´Ù.

                if(!MyFunc){
                        MessageBox(hWnd, "WiseGuys ÇÔ¼ö¸¦ ·ÎµåÇÒ ¼ö ¾ø½À´Ï´Ù.", "¿À·ù", MB_OK);
                        FreeLibrary(hinstDll);
                        ExitProcess(1);
                }

                wsprintf(str, "3 + 5´Â %d ÀÔ´Ï´Ù.", MyFunc(3, 5));
                MessageBox(hWnd, str, "¾Ë¸²", MB_OK);

                return 0;
        case WM_DESTROY:
                PostQuitMessage( 0 );
                break;
        }
        return DefWindowProc( hWnd, iMessage, wParam, lParam );
}


  Hit : 3851     Date : 2011/08/26 06:42



    
$Zero À̰Ϳª½Ã Çüº¯È¯ ¹®¹ýÀÔ´Ï´Ù Á» »ý¼ÒÇϱäÇѵ¥ ÇÔ¼öÆ÷ÀÎÅ͵µ ³ª¸§ ÀÚ·áÇüÀ̳ª ¸¶Âù°¡ÁöÀÔ´Ï´Ù.
Áï Myfunc ÀÇ ÀÚ·áÇü(Æ÷ÀÎÅÍÇü)ÀÌ (int (*)(int , int)) ·Î ¸®ÅϰªÀ» Çüº¯È¯ ÇØÁà¾ß ÁÖ¼Ò°ªÀÌ Á¦´ë·Î µé¾î°¡°Ô µË´Ï´Ù. ÆÄ¶ó¹ÌÅÍÀÇ °¹¼ö³ª ¸®ÅϰªµîÀ» ¸ÅÄ¡½ÃÄÑ¾ß µÇ´Ï±î¿ä .

*ºÎºÐÀº ´ÜÁö Çüº¯È¯À̱⶧¹®¿¡ À̸§ÀÌ µé¾î°¡Áö ¾Ê´Â°ÍÀ̰í , ÇÔ¼öÆ÷ÀÎÅÍ·Î Çüº¯È¯ ÇØ¾ßÁö ÀÚ·áÇüÀÌ ÀÏÄ¡ÇÏ¿© ÇÔ¼öÆ÷ÀÎÅÍ¿¡ ¸®ÅϰªÀÌ µé¾î°¡°Ô µÇ´Â°ÍÀÔ´Ï´Ù.

2¹ø Áú¹®À̳ª ÀÌ Áú¹®À̳ª ¸ðµÎ C¹®¹ý¿¡ °ü·ÃµÈ °ÍÀε¥.. CÀÇ Æ÷ÀÎÅÍ & ±¸Á¶Ã¼ ºÎºÐÀ» Á¶±Ý ´õ °øºÎÇØº¸½Ã´Â °Ç ¾î¶°½ÅÁö ..
2011/08/27  
$Zero ±×·¸´Ù°í ¾Æ¹«ÇÔ¼ö³ª ¸· Àú·¸°Ô Çüº¯È¯ ÇØ¼­ ¾²´Â°Ç ¾Æ´Ï±¸¿ä , ÇÔ¼öÀÇ ¿øÇüÀ» ÀÌ¹Ì ¾Ë°í Àֱ⶧¹®¿¡ ±×¿¡ ¸Â´Â ÇÔ¼öÆ÷ÀÎÅ͸¦ ¼±¾ðÇѰÍÀÌ°í ¸®ÅϰªÀ» ÇÔ¼öÆ÷ÀÎÅͰ¡ °¡¸®Å³¼ö ÀÖµµ·Ï Çüº¯È¯ÇѰÍÀ̶ó°í °£´ÜÈ÷ ÀÌÇØÇÏ½Ã¸é µË´Ï´Ù.

ÇÔ¼öÀÇ ÁÖ¼Ò¸¦ ¾ò¾î¿À´Â ÇÔ¼ö°¡ ¸®ÅÏÀ» (int (*)(int , int)) ÇüÀ¸·Î ¸®ÅÏÇØÁÖÁö´Â ¾ÊÀ¸´Ï±î¿ä .
2011/08/27  
p0lly °¨»çÇÕ´Ï´Ù... 2011/08/27