之前的笔记搬运
系统寻找Dll的顺序
1 | 当前目录 |
DLL劫持
dll劫持就是利用系统寻找dll目录的顺序的优先级, 在寻找的指定dll之前的目录,
提前执行自己的Dll中的代码, 在利用函数中转, 跳回原本的Dll, 就达到不影响功能,
而达到执行自己代码的目的;
劫持要求:
HackDll必须加载被劫持的dll。
编写HackDll,其中应导出需要劫持的dll的全部导出函数。
HackDll中的每一个导出函数均应调用原有dll对应的导出函数。
WinMian
跟exe有个main或者WinMain入口函数一样,DLL也有一个入口函数,就是DllMain。
静态链接时,或动态链接时调用LoadLibrary和FreeLibrary都会调用DllMain函数。DllMain的第二个参数fdwReason指明了系统调用Dll的原因,它可能是::
1 | DLL_PROCESS_ATTACH、进程映射 |
以下从这四种情况来分析系统何时调用了DllMain。