输入法注入

输入法注入

IME输入法文件,安装输入法后会在C:\WINDOWS\SYSTEM32下,实际上是一个DLL,包含多个导出函数

ConsoleApplication 输入法安装

利用IMM.h文件下imminstallIME函数安装空壳输入法

自己写的IME文件,实现加载SougouPY.IME和弹窗

IME文件中,LoadLibrary正常输入法的IME文件,然后填写自己的代码。

ConsoleApplication1 

// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include 
#include 
#include 
#include 
HKL m_hImeFile32;
void installIME()
{
	m_hImeFile32 = ImmInstallIME(_T("InputtingMethodInjectionDLL.ime"), _T("My method"));      //安装输入法
	if (ImmIsIME(m_hImeFile32))
	{
		SystemParametersInfo(SPI_SETDEFAULTINPUTLANG, 0, &m_hImeFile32, SPIF_SENDWININICHANGE);    //设置为默认输入法
		MessageBox(NULL, L"Install complete", L"O", MB_OK);
	}
}
int main()
{
	installIME();
	system("pause");
}

InputingMethodInjectionDLL

// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "pch.h"

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
	MessageBox(NULL, L"Hello World", L"Yo", MB_OK);   //执行的代码
	LoadLibrary(L"SougouPY.ime");   //加载其他输入法的ime文件
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

 

你可能感兴趣的:(输入法注入)