📄 crackhook.cpp
字号:
// CrackHook.cpp : implementation file
//
#include "stdafx.h"
#include "CrackHook.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
HHOOK CCrackHook::m_hCurHook = NULL;
/////////////////////////////////////////////////////////////////////////////
// CCrackHook
CCrackHook::CCrackHook()
{
}
CCrackHook::~CCrackHook()
{
}
// Do not edit the following lines, which are needed by ClassWizard.
#if 0
BEGIN_MESSAGE_MAP(CCrackHook, CObject)
//{{AFX_MSG_MAP(CCrackHook)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
#endif // 0
/////////////////////////////////////////////////////////////////////////////
// CCrackHook member functions
void CCrackHook::StartCrack( void )
{
m_hCurHook = ::SetWindowsHookEx( WH_CBT ,
CCrackHook::Crack_CBT_Proc ,
::AfxGetInstanceHandle( ) ,
::AfxGetThread()->m_nThreadID );
}
void CCrackHook::StopCrack( void )
{
if( m_hCurHook != NULL )
{
UnhookWindowsHookEx( m_hCurHook );
m_hCurHook = NULL;
}
}
LRESULT CALLBACK CCrackHook::Crack_CBT_Proc( int nCode, WPARAM wParam, LPARAM lParam )
{
if( nCode == HCBT_CREATEWND )
{
HWND hWnd = (HWND)wParam;
CBT_CREATEWND *pCW = ( CBT_CREATEWND * )lParam;
if( hWnd != NULL && pCW != NULL )
{
char szName[128] = {0};
GetClassName( hWnd , szName , 128 );
if( strcmp( szName , "#32770" ) == 0 )
{
if( pCW->lpcs != NULL && pCW->lpcs->lpszName != NULL )
{
if( strstr( pCW->lpcs->lpszName , "请你注册" ) != NULL )
{
return TRUE;
}
}
}
}
}
return CallNextHookEx( m_hCurHook , nCode, wParam, lParam );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -