摘要: 部分笔记来自于:https://blog.csdn.net/Steven_programe_life/article/details/103358251?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidul 阅读全文
posted @ 2022-11-23 11:45 人类观察者 阅读(105) 评论(0) 推荐(0)
摘要: 应用程序通过调用一组4个函数来使用动态 TLS,这些函数实际上最经常为 DLL 所使用。 通常情况下,如果DLL使用 TLS,那么当它用 DLL_PROCESS_ATTACH 标志调用它的 DllMain 函数时,它也调用TlsAlloc。当它用DLL_PROCESS_DETACH 调用 DllMa 阅读全文
posted @ 2022-11-23 11:43 人类观察者 阅读(187) 评论(0) 推荐(0)
摘要: 一、TLS简述 我们知道在一个进程中,所有线程是共享同一个地址空间的。所以,如果一个变量是全局的或者是静态的,那么所有线程访问的是同一份,如果某一个线程对其进行了修改,也就会影响到其他所有的线程。不过我们可能并不希望这样,所以更多的推荐用基于堆栈的自动变量或函数参数来访问数据,因为基于堆栈的变量总是 阅读全文
posted @ 2022-11-23 11:41 人类观察者 阅读(52) 评论(0) 推荐(0)
摘要: 一、函数转发器 函数转发器是D L L的输出节(导出段)中的一个项目,用于将对一个函数的调用转至另一个 DLL中的另一个函数。 可以在DLL中使用函数转发器: #pragma comment(linker,"/export:SomeFunc=Dll.SomeOtherFunc") // SomeFu 阅读全文
posted @ 2022-11-23 11:39 人类观察者 阅读(259) 评论(0) 推荐(0)
摘要: 延迟加载的 DLL 是个隐含链接的 DLL,它实际上要等到你的代码试图引用 DLL 中包含的一个符号时才进行加载。 DLL延迟加载技术的原理,就是从导入表中去掉某dll这一项,等到正式调用DLL的时候,才会加载DLL文件。 应用场景: 应用初始化加载的DLL过多,导致程序初始化时间过长。使用延迟加载 阅读全文
posted @ 2022-11-23 11:38 人类观察者 阅读(604) 评论(0) 推荐(0)
摘要: 如果在执行一些与进程或者线程有关的初始化或者销毁工作的时候,需要 DllMain。如果只需要创建一个包含资源的DLL,不需要这个函数。 B00L WINAPI DllMain(HINSTANCE hinstDll,DWORD fdwReason,PVOID fImpLoad) { switch (f 阅读全文
posted @ 2022-11-23 11:35 人类观察者 阅读(91) 评论(0) 推荐(0)
摘要: FAPPROC GetProcAddress(HMOUDLE hInstDll,PCSTR pszSymbolName); 1.根据名称 FARPROC FunctionAddress = (ULONG_PTR)GetProcAddress(ModuleBase, "SomeFuncInDll"); 阅读全文
posted @ 2022-11-23 11:34 人类观察者 阅读(19) 评论(0) 推荐(0)
摘要: 一、显式加载DLL模块使用函数 LoadLibrary/LoadLibraryEx HINSTANCE LoadLibrary(PCTSTR pSzDLLPathName); HINSTANCE LoadLibraryEx(PCTSTR pSzDLLPathName,HANDLE hF1le,DWO 阅读全文
posted @ 2022-11-23 11:32 人类观察者 阅读(382) 评论(0) 推荐(0)
摘要: 部分笔记来自于:https://blog.csdn.net/blade1080/article/details/81364161 注:关于DLL存放位置,一般是放到可执行文件的目录下。 下面时加载程序的搜索顺序: 1) 包含可执行映像文件的目录。 2) 进程的当前目录。 3) Windows系统目录 阅读全文
posted @ 2022-11-23 11:30 人类观察者 阅读(139) 评论(0) 推荐(0)
摘要: Windows 中最重要的三个DLL是: Kernel32.dll:包含的函数用来管理内存、进程以及线程 User32.dll:包含的函数用来执行和用户界面相关的任务 GDI32.dll:包含的函数用来绘制图像和显示文字 将DLL文件映射到进程空间有两种方法:隐式载入时链接、显示运行时链接 如下图, 阅读全文
posted @ 2022-11-23 11:25 人类观察者 阅读(63) 评论(0) 推荐(0)