摘要: 一、TLS简述 我们知道在一个进程中,所有线程是共享同一个地址空间的。所以,如果一个变量是全局的或者是静态的,那么所有线程访问的是同一份,如果某一个线程对其进行了修改,也就会影响到其他所有的线程。不过我们可能并不希望这样,所以更多的推荐用基于堆栈的自动变量或函数参数来访问数据,因为基于堆栈的变量总是 阅读全文
posted @ 2022-11-23 11:41 人类观察者 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 一、函数转发器 函数转发器是D L L的输出节(导出段)中的一个项目,用于将对一个函数的调用转至另一个 DLL中的另一个函数。 可以在DLL中使用函数转发器: #pragma comment(linker,"/export:SomeFunc=Dll.SomeOtherFunc") // SomeFu 阅读全文
posted @ 2022-11-23 11:39 人类观察者 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 延迟加载的 DLL 是个隐含链接的 DLL,它实际上要等到你的代码试图引用 DLL 中包含的一个符号时才进行加载。 DLL延迟加载技术的原理,就是从导入表中去掉某dll这一项,等到正式调用DLL的时候,才会加载DLL文件。 应用场景: 应用初始化加载的DLL过多,导致程序初始化时间过长。使用延迟加载 阅读全文
posted @ 2022-11-23 11:38 人类观察者 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 如果在执行一些与进程或者线程有关的初始化或者销毁工作的时候,需要 DllMain。如果只需要创建一个包含资源的DLL,不需要这个函数。 B00L WINAPI DllMain(HINSTANCE hinstDll,DWORD fdwReason,PVOID fImpLoad) { switch (f 阅读全文
posted @ 2022-11-23 11:35 人类观察者 阅读(65) 评论(0) 推荐(0) 编辑
摘要: FAPPROC GetProcAddress(HMOUDLE hInstDll,PCSTR pszSymbolName); 1.根据名称 FARPROC FunctionAddress = (ULONG_PTR)GetProcAddress(ModuleBase, "SomeFuncInDll"); 阅读全文
posted @ 2022-11-23 11:34 人类观察者 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 一、显式加载DLL模块使用函数 LoadLibrary/LoadLibraryEx HINSTANCE LoadLibrary(PCTSTR pSzDLLPathName); HINSTANCE LoadLibraryEx(PCTSTR pSzDLLPathName,HANDLE hF1le,DWO 阅读全文
posted @ 2022-11-23 11:32 人类观察者 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 部分笔记来自于:https://blog.csdn.net/blade1080/article/details/81364161 注:关于DLL存放位置,一般是放到可执行文件的目录下。 下面时加载程序的搜索顺序: 1) 包含可执行映像文件的目录。 2) 进程的当前目录。 3) Windows系统目录 阅读全文
posted @ 2022-11-23 11:30 人类观察者 阅读(104) 评论(0) 推荐(0) 编辑
摘要: Windows 中最重要的三个DLL是: Kernel32.dll:包含的函数用来管理内存、进程以及线程 User32.dll:包含的函数用来执行和用户界面相关的任务 GDI32.dll:包含的函数用来绘制图像和显示文字 将DLL文件映射到进程空间有两种方法:隐式载入时链接、显示运行时链接 如下图, 阅读全文
posted @ 2022-11-23 11:25 人类观察者 阅读(32) 评论(0) 推荐(0) 编辑
摘要: Windows 提供了以下三种机制来对内存进行操控虚拟内存:最适合用来管理大量对象数组或者大型数据结构内存映射文件:最适合用来管理大型数据流(通常是文件),以及在同一机器上运行的多个进程之间的共享数据。堆:最适合用来管理大量的小型对象。 最后一种对内存进行操控的方法是堆。堆适合分配大量小型数据,是管 阅读全文
posted @ 2022-11-23 11:23 人类观察者 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 原文链接:https://www.likecs.com/show-306421749.html,原文中代码是C++MFC程序,更详细。本文是C语言测试代码。 (1)稀疏文件(Sparse File)定义 指的是文件中出现大量的0数据,这些数据对我们用处不大,但是却一样的占用空间。NTFS文件系统对此 阅读全文
posted @ 2022-11-21 11:59 人类观察者 阅读(56) 评论(0) 推荐(0) 编辑