从内存中加载DLL

遇到一个软件,它的DLL全是加密后放资源文件中的,在程序中通过解密函数来解密出资源名,然后解密资源为一个PE文件,最后直接自己重写LoadLibrary加载DLL到内存,达到不释放DLL就i能加载的目的。自己也百度了一下重写了一个同样功能的类。

步骤:

1、将资源文件中的DLL读取到内存分配的空间。

2、进行DLL重定位。

3、进行IAT的填充。

4、取OEP地址,传递DLL_PROCESS_ATTACH参数执行DllMain。

5、需要重写GetProcAddress,通过导出表来获取函数地址。

GitHub链接:https://github.com/coNgY1/LoadMemDll

猜你喜欢

转载自blog.csdn.net/a893574301/article/details/83420898