.NET的DLL不能直接注入,需要两步:先把C++的DLL注入,然后C++把.NET的DLL引入:
#include "pch.h"
using namespace L006CsHookDll;
VOID Test()
{
Class1^ class1 = gcnew Class1();
class1->ShowMessage();
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
Test();
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
C#的DLL代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace L006CsHookDll
{
public class Class1
{
public void ShowMessage()
{
MessageBox.Show("C# Hook OK", "C# OK");
}
}
}
示例来源:
网易云课堂《2019 PC 微信探秘》
交流QQ群:
456197310
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)