Windows/Windows API
Message Cracker
aucd29
2013. 10. 1. 19:00
#include "defime.h"
HINSTANCE g_hInst;
HWND hWndMain;
LPCTSTR lpszClass = TEXT("DefIme"); // change unicode
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
,LPSTR lpszCmdParam,int nCmdShow)
{
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
g_hInst=hInstance;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=(WNDPROC)WndProc;
WndClass.lpszClassName=lpszClass;
WndClass.lpszMenuName=NULL;
WndClass.style=CS_HREDRAW | CS_VREDRAW;
RegisterClass(&WndClass);
hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
NULL,(HMENU)NULL,hInstance,NULL);
ShowWindow(hWnd,nCmdShow);
hWndMain=hWnd;
while(GetMessage(&Message,0,0,0)) {
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return (int)Message.wParam;
}
TCHAR *buf;
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
switch(iMessage)
{
HANDLE_MSG(hWnd, WM_CREATE, OnCreate);
HANDLE_MSG(hWnd, WM_DESTROY, OnDestroy);
HANDLE_MSG(hWnd, WM_CHAR, OnChar);
HANDLE_MSG(hWnd, WM_PAINT, OnPaint);
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
BOOL OnCreate(HWND hWnd, LPCREATESTRUCT lpCreateStruct)
{
buf=(TCHAR *)malloc(65536);
memset(buf,0,65536);
return TRUE;
}
void OnChar(HWND hWnd, TCHAR ch, int cRepeat)
{
int len;
len=lstrlen(buf);
buf[len] =ch;
buf[len+1]=0;
InvalidateRect(hWnd,NULL,TRUE);
}
void OnPaint(HWND hWnd)
{
HDC hdc;
PAINTSTRUCT ps;
hdc=BeginPaint(hWnd,&ps);
TextOut(hdc,0,0,buf,lstrlen(buf));
EndPaint(hWnd,&ps);
}
void OnDestroy(HWND hWnd)
{
PostQuitMessage(0);
free(buf);
}
[code]header[/code]
#include <windows.h>
#include <windowsx.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
BOOL OnCreate(HWND hWnd, LPCREATESTRUCT lpCreateStruct);
void OnChar(HWND hWnd, TCHAR ch, int cRepeat);
void OnPaint(HWND hWnd);
void OnDestroy(HWND hWnd);
HINSTANCE g_hInst;
HWND hWndMain;
LPCTSTR lpszClass = TEXT("DefIme"); // change unicode
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
,LPSTR lpszCmdParam,int nCmdShow)
{
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
g_hInst=hInstance;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=(WNDPROC)WndProc;
WndClass.lpszClassName=lpszClass;
WndClass.lpszMenuName=NULL;
WndClass.style=CS_HREDRAW | CS_VREDRAW;
RegisterClass(&WndClass);
hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
NULL,(HMENU)NULL,hInstance,NULL);
ShowWindow(hWnd,nCmdShow);
hWndMain=hWnd;
while(GetMessage(&Message,0,0,0)) {
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return (int)Message.wParam;
}
TCHAR *buf;
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
switch(iMessage)
{
HANDLE_MSG(hWnd, WM_CREATE, OnCreate);
HANDLE_MSG(hWnd, WM_DESTROY, OnDestroy);
HANDLE_MSG(hWnd, WM_CHAR, OnChar);
HANDLE_MSG(hWnd, WM_PAINT, OnPaint);
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
BOOL OnCreate(HWND hWnd, LPCREATESTRUCT lpCreateStruct)
{
buf=(TCHAR *)malloc(65536);
memset(buf,0,65536);
return TRUE;
}
void OnChar(HWND hWnd, TCHAR ch, int cRepeat)
{
int len;
len=lstrlen(buf);
buf[len] =ch;
buf[len+1]=0;
InvalidateRect(hWnd,NULL,TRUE);
}
void OnPaint(HWND hWnd)
{
HDC hdc;
PAINTSTRUCT ps;
hdc=BeginPaint(hWnd,&ps);
TextOut(hdc,0,0,buf,lstrlen(buf));
EndPaint(hWnd,&ps);
}
void OnDestroy(HWND hWnd)
{
PostQuitMessage(0);
free(buf);
}
[code]header[/code]
#include <windows.h>
#include <windowsx.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
BOOL OnCreate(HWND hWnd, LPCREATESTRUCT lpCreateStruct);
void OnChar(HWND hWnd, TCHAR ch, int cRepeat);
void OnPaint(HWND hWnd);
void OnDestroy(HWND hWnd);