草庐IT

AppInit_DLL

全部标签

c++ - 如何在 C++ 源代码、DLL 或 VC++ 编译器创建的任何文件中查找所有全局变量?

我正在使我的应用程序线程安全。步骤之一是同步访问或消除全局变量的使用。我正在使用VisualStudio。我找不到在我的代码库中找到所有全局变量的好方法。创建一个好的文本搜索模式是不可能的,我找不到任何有用的工具。你们知道有什么好的方法吗?它可以是源代码分析工具或二进制文件分析器。 最佳答案 这可能会有所帮助:在VisualStudio中打开项目。打开项目的“类View”在项目标题下,您会找到“全局函数和变量”。我已经用VisualStudio2010及更高版本检查了这一点。编辑:根据Ajay的建议在评论中,您还可以对项目进行分组。

c++ - 注入(inject) C++ DLL

我知道有很多关于这方面的问题和书籍,但我似乎无法将我的C++DLL注入(inject)任何进程。注入(inject)DLL的代码:#include#include"windows.h"boolInject(DWORDpId,char*dllName);usingnamespacestd;intmain(){Inject(600,"C:\\d.dll");return0;}boolInject(DWORDpId,char*dllName){HANDLEh=OpenProcess(PROCESS_ALL_ACCESS,false,pId);if(h){LPVOIDLoadLibAddr=(

c++ - 注入(inject) C++ DLL

我知道有很多关于这方面的问题和书籍,但我似乎无法将我的C++DLL注入(inject)任何进程。注入(inject)DLL的代码:#include#include"windows.h"boolInject(DWORDpId,char*dllName);usingnamespacestd;intmain(){Inject(600,"C:\\d.dll");return0;}boolInject(DWORDpId,char*dllName){HANDLEh=OpenProcess(PROCESS_ALL_ACCESS,false,pId);if(h){LPVOIDLoadLibAddr=(

C++:从 dll 动态加载类

对于我当前的项目,我希望能够从dll加载一些类(这并不总是相同的,甚至在我的应用程序编译时可能不存在)。给定的类也可能有多个替代dll(例如Direct3D9的实现和OpenGL的一个实现),但任何时候都只会加载/使用其中一个dll。我有一组定义接口(interface)的基类以及我要加载的类的一些基本方法/成员(即用于引用计数的方法/成员),然后dll项目在创建类时从中派生。//innamespacebaseclassSprite:publicRefCounted//voidAddRef(),voidRelease()andunsignedrefCnt{public:virtualb

C++:从 dll 动态加载类

对于我当前的项目,我希望能够从dll加载一些类(这并不总是相同的,甚至在我的应用程序编译时可能不存在)。给定的类也可能有多个替代dll(例如Direct3D9的实现和OpenGL的一个实现),但任何时候都只会加载/使用其中一个dll。我有一组定义接口(interface)的基类以及我要加载的类的一些基本方法/成员(即用于引用计数的方法/成员),然后dll项目在创建类时从中派生。//innamespacebaseclassSprite:publicRefCounted//voidAddRef(),voidRelease()andunsignedrefCnt{public:virtualb

c++ - 如何让 CMake 创建一个 dll 及其匹配的 lib 文件?

我正在使用CMake通过VisualStudio2010创建一个共享库。该解决方案输出一个dll文件,但不是一个匹配的lib文件。如何告诉CMake生成lib文件,以便我可以将其他项目链接到dll? 最佳答案 首先检查您的共享库中是否至少有一个导出符号。如果dll不导出符号,VisualStudio不会生成.lib文件。接下来,检查您的cmake文件-可能您已设置共享库目标的CMAKE_ARCHIVE_OUTPUT_DIRECTORY变量或ARCHIVE_OUTPUT_DIRECTORY属性。如果设置了这些变量/属性,那么Visua

c++ - 如何让 CMake 创建一个 dll 及其匹配的 lib 文件?

我正在使用CMake通过VisualStudio2010创建一个共享库。该解决方案输出一个dll文件,但不是一个匹配的lib文件。如何告诉CMake生成lib文件,以便我可以将其他项目链接到dll? 最佳答案 首先检查您的共享库中是否至少有一个导出符号。如果dll不导出符号,VisualStudio不会生成.lib文件。接下来,检查您的cmake文件-可能您已设置共享库目标的CMAKE_ARCHIVE_OUTPUT_DIRECTORY变量或ARCHIVE_OUTPUT_DIRECTORY属性。如果设置了这些变量/属性,那么Visua

api-ms-win-crt-math-l1-1-0.dll文件丢失解决方法

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损坏了,这时你只需下载这个api-ms-win-crt-math-l1-1-0.dll文件进行安装(前提是找到适合的版本),当我们执行某一个.exe程序时,相应的DLL文件就会被调用,因此安装好之后就能重新打开你的软件或游戏了.那么出现api-ms-win-crt-math-l1-1-0.dll丢失要怎么解决?一、手动从本站下载dll文件1、从下面列表下载api-ms-win-crt-math-l1-1-0.dll文件32位文件:

解决Windows找不到d3dx9_42.dll无法运行程序的问题

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损坏了,这时你只需下载这个d3dx9_42.dll文件进行安装(前提是找到适合的版本),当我们执行某一个.exe程序时,相应的DLL文件就会被调用,因此安装好之后就能重新打开你的软件或游戏了.那么出现d3dx9_42.dll丢失要怎么解决?一、手动从本站下载dll文件1、从下面列表下载d3dx9_42.dll文件32位文件:d3dx9_42.dll9.5.132.0d3dx9_42.dll9.27.952.300164位文件:d3

【reverse】手把手带你基于dll实现多次SMC

文章目录引言实现普通的dll调用实现基于dll的SMC基于dll实现多次SMC前期准备正式实现赏析:更简洁的SMC方案参考资料引言SMC,即selfmodifyingcode,自修改代码,逆向入门SMC可以看一下我的题解。我打算实现一个类似于【网鼎杯2020青龙组】jocker的SMC方案。这个方案不需要用到汇编,因此门槛极低(连小小前端都能学会)。为什么要基于dll呢?因为代码段加密功能是通过外部python脚本完成的,将自修改代码拆分为独立dll实现上更方便。仓库:https://github.com/Hans774882968/self-modify-code-hello编译器:g++8