首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在VS2019项目中集成ImageMagick:x64-windows-static库

,需要进行以下步骤:

  1. 下载ImageMagick库:
    • 访问ImageMagick官方网站(https://imagemagick.org/script/download.php)下载对应的Windows版本的静态库。
    • 解压下载的压缩包,得到ImageMagick的安装目录。
  • 配置VS2019项目:
    • 打开你的VS2019项目。
    • 在项目文件夹中创建一个名为"ThirdParty"(或任意你喜欢的名称)的文件夹,用于存放第三方库文件。
    • 将ImageMagick的安装目录中的"include"文件夹中的所有文件复制到"ThirdParty"文件夹下的"include"子文件夹中。
    • 在"ThirdParty"文件夹下创建一个名为"lib"的文件夹,并将ImageMagick的安装目录中的"lib"文件夹下的所有.lib文件复制到该文件夹中。
  • 配置VS2019项目属性:
    • 在VS2019中打开你的项目。
    • 在解决方案资源管理器中,右击你的项目,选择“属性”。
    • 在属性页中,选择“VC++目录”。
    • 在“包含目录”中,添加"ThirdParty/include"文件夹的路径。
    • 在“库目录”中,添加"ThirdParty/lib"文件夹的路径。
  • 链接ImageMagick库:
    • 在VS2019的属性页中,选择“链接器”。
    • 在“输入”中,选择“附加依赖项”。
    • 点击“编辑”按钮,在弹出的对话框中,输入以下库文件名称:
    • 点击“编辑”按钮,在弹出的对话框中,输入以下库文件名称:
    • 点击“确定”关闭对话框。
    • 点击“确定”关闭属性页。
  • 运行项目:
    • 确保你的项目中有一个合适的源文件,该源文件使用了ImageMagick库的功能。
    • 构建和运行你的项目,确保ImageMagick库能够正确链接并使用。

ImageMagick是一款功能强大的开源图片处理工具,具有广泛的应用场景,如图像处理、图像转换、图像编辑等。它支持多种图片格式,提供了丰富的图像处理函数和工具。

腾讯云相关产品中,您可以考虑使用对象存储服务 COS(Cloud Object Storage)来存储和管理图像文件,可以通过腾讯云控制台或 API 进行操作。具体的腾讯云COS产品介绍和链接地址请参考:

  • 产品介绍:https://cloud.tencent.com/product/cos
  • 官方文档:https://cloud.tencent.com/document/product/436

请注意,以上答案提供的是集成ImageMagick库的一般步骤,并非针对具体的VS2019项目。在实际操作过程中,可能会因项目的具体要求或ImageMagick版本的差异而有所不同,建议根据实际情况进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Windows下使用VS2019和CMake 3.18.3编译使用yaml-cpp库

通常在程序设计中采用xml、ini、yaml、json等配置文件比较多。在Java的SpringBoot项目中通常采用yaml或者yml文件作为应用的配置项。由于本人在实际项目中采用C++编写控制台程序的过程中使用yaml文件比较多,目前使用比较的多的就是yaml-cpp这个C++ yaml解析库了。之前写过两篇关于在CentOS7下编译yaml-cpp库和Windows10下使用VS2017编译和使用yaml-cpp库的文章。 最近实际项目中换成了最新版的Visual Studio 2019,我使用的Windows系统是Win7和Windows10,所以需要重新编译基于VS2019下的yaml-cpp的Debug和Release版本的Win32的静态lib库,大体步骤和Windows10下使用VS2017编译和使用yaml-cpp库这篇博客描述的一致。

02
  • Windows Redis DLL劫持在实战中的利用

    举例: 例如,假设有一个应用程序叫做"example.exe",它依赖于名为"example.dll"的动态链接库。而"example.exe"在加载"example.dll"时没有使用绝对路径,而是仅仅指定了DLL的名称。攻击者可以将恶意的"example.dll"文件放置在与"example.exe"相同的目录下,当"example.exe"启动时,系统会先在当前目录中查找"example.dll"文件,如果找到,就会加载该文件并执行其中的恶意代码。 DLL劫持可以函数转发劫持也可以往完整DLL插入恶意代码,这里用的函数转发劫持,大致流程如下图所示: https://kiwings.github.io/2019/04/04/th-DLL%E5%8A%AB%E6%8C%81/ 2.2 劫持dbghelp.dll redis-server.exe在执行bgsave时,会先在应用‍目录查找dbghelp.dll,找不到再去system32目录下找: 而不管redis的权限是Administrator还是普通用户或者Network Service,它对自己的应用目录一定有写文件的权限,我们可以通过Redis的主从复制在应用目录里写入恶意DLL。 2.3 函数转发劫持 对DLL进行函数转发劫持需要导出原本DLL的函数和地址,以保证程序通过恶意DLL调用这些函数时不影响正常功能,DLL的导出函数一般比较多,用Aheadlib之类的工具可以自动化处理。 我这里用的是DLLHijacker,它会自动处理导出表并生成一个VS2019的项目,但这个python脚本有几个bug: https://github.com/kiwings/DLLHijacker (1) VS项目中文乱码: 修复:几个写文件的地方添加 encoding="utf-8"。 (2) 函数导出表有匿名函数的时候,会导致以下报错 [-]Error occur: 'NoneType' object has no attribute 'decode 修复:在几个for循环里添加函数名是否为空的判断可以解决这个问题。 (3) 生成C/C++代码时,没有使用目标DLL的绝对路径,只是用了DLL的名字填充LoadLibrary(),这是一个很严重的bug,会导致函数转发失败、Redis的功能受到影响从而只能劫持一次: 修复:我改成了根据输入的目标DLL路径自动填充。 如果没有使用原DLL的绝对路径,在Process Monitor可以看到,只会调用应用程序目录里的恶意DLL,并没有调用原本的system32下的dbghelp.dll: 从而redis的功能受到影响,导致redis的bgsave只能触发一次DLL调用,第二次bgsave的进程会被阻塞从而无法调用DLL,并且Redis关闭后将无法启动: 这也是网上部分师傅的文章写”不会影响redis运行 但会无法重启“的原因,因为他们也是用的DLLHijacker,并且没有发现有这个坑,这不仅会影响业务,而且只能劫持一次: 正常的DLL劫持不会影响程序的功能,可以劫持很多次,假如我第一次劫持想上线CS但是没有成功,那对面可能不出网,那我可能会再劫持打一个MSF的反向shell,都没成功我也可以继续尝试MSF盲打命令: 正常的DLL转发劫持如下,调用完应用程序目录里的恶意DLL后会调用原DLL: 0x03 漏洞利用 3.1 工具使用 工具下载地址: https://github.com/P4r4d1se/dll_hijack 如是是Windows 64位的Redis DLL劫持的话,可以直接用里面的VS2022版的dbghelp项目。 其他要用我修改后的DllHijacker.py和目标DLL路径生成VS项目: python3 DLLHijacker.py C:\Windows\System32\dbghelp.dll 下载安装VS2022,只用勾C++桌面开发: https://visualstudio.microsoft.com/zh-hans/downloads 打开生成目录里的sln文件,因为原本是VS2019的项目所以会提醒你升级,选确定,不然得另外安装v142的编译组件才能编译VS2019的项目: 打开后在源文件的dllmain.app,修改里面的shellocde就行,其他不用改: 3.2 出网——Cobalt Strike 如果Redis主机直接出网,或者能通其他已经上线CS的出网主机,那直接上CS是最好的选择,CS生成C语言的payload: 源文件的dllmain.app里把payload替换进去,然后选Release x64,生成——生成解决方案: 然后主从复制将dbghelp.dll写过去并bg

    01
    领券