BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
MessageBox(NULL, TEXT("Hooked"), TEXT("OK"), MB_OK);
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
解析:
DllMain,是这个DLL文件的入口函数,DLL被应用程序加载之后,这个函数就会被调用。
刚被加载,将进入DLL_PROCESS_ATTACH分支。示例的分支中仅仅弹出一个信息框。
其他几个比较少用,如果想了解详细情况,请参考MSDN。
该DLL可以在应用程序启动的时候加载,也可以使用注入器注入。如果要在应用程序启动的时候加载,则在应用程序中添加引用,将该DLL直接或者间接地添加到应用程序的IAT表中。
示例来源:
网易云课堂《2019 PC 微信探秘》