如何控制加载库的图像库API
C++ How to control Image Base of LoadLibrary API
将主程序重新放置在它自己的imagebase中。
我如何保证加载的dll将加载在0x400000
dllImageBase = LoadLibrary("test.dll");
printf("imagebase = 0x%x", dllImageBase);
我总是得到0x460000而不是0x400000
我需要我的dll第一个指令从0x401000开始,它曾经在0x600000开始,然后重新设置
链接器重置为
的命令#pragma comment( linker, "/BASE:8000000")
所以0x400000实际上现在是空闲的,但它默认不使用它。所以只要我能控制它,它就会转移到哪里。也许是一些WIN32API ?
您将不得不禁用地址空间布局随机化以使DLL加载到您想要的位置。一个用来阻止你做你想做的事情的功能。/DYNAMICBASE链接器选项。
永远不要依赖特定基库的DLL加载。如果你可以强制dll在一个特定的基础上加载,那么你就打开了一个潜在的安全漏洞。
如果你有一个map文件,你知道给定函数的偏移量是多少。因此,您可以使用GetProcAddress来计算DLL的基址是什么。这是一种更安全的工作方式,即使这意味着更新DLL会破坏加载DLL的代码。
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 用于访问容器<T>数据成员的正确 API
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 如何使用Luacneneneba API正确读取字符串和表参数
- C++MySQL C api用户输入行
- 将"打开的CV图像"中的"颜色"转换为整数格式
- DXGI API:AcquireTextFrame()从不抓取更新的图像,始终为空
- 使用 REST SDK 将图像从 OpenCV 3 发送到认知人脸 API C++
- Mongodb C++ API 插入二进制文件(图像)
- 在win API中带有图像和整行选择的组合框
- 如何使用Direct3D 11 API加载、渲染和转换2D图像
- Linux CGI Web API -如何在c++下输出二进制JPEG图像
- ImageMagick c++ API获取图像通道
- 如何使用GraphicsMagick c++ API找到PNG图像的大小?
- 如何控制加载库的图像库API
- 如何在运行时设置(Win32 API)图片控制的图像
- 使用c++ API在HDF5文件中存储图像
- 12位图像格式与c++ API
- 是否有任何Api在android为ms office word(.doc/.docx)到(图像/html/xml/pdf