飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 1006|回复: 10

[C/C++] VMProtect静态编译之闭坑教程

  [复制链接]
  • TA的每日心情
    开心
    6 天前
  • 签到天数: 202 天

    [LV.7]常住居民III

    发表于 2025-1-1 18:16:21 | 显示全部楼层 |阅读模式
    本帖最后由 0×Ret 于 2025-1-1 20:56 编辑

                       标题一定要醒目;本教程,特别感谢 By:@冷月孤心,的指导 结合 @lipeisen VMP比较正确的编译教程   

                                            还要感谢,CCTV  MTV AV DV CV   三上悠亞,桃乃木香奈   友情出演。

                                  大家元旦快乐!!! 大家元旦快乐!!! 大家元旦快乐!!!


                                                           VMProtect静态编译之闭坑教程,开始。



    一、编译环境 1.1 编译整体配置
    采用Visual Studio Professional 2022+MSVC2017_xp+QT5.6.0+WDK8.1

    1.1 VS2022安装
    1.1.1 除常规勾选桌面C++以外,需要勾选win xp支持和支持相应的MSVC版本。教程采用msvc2017和xp支持。

    1.1.2 安装好xp支持会同步安装win8.1A SDK,不用另行安装。
    1.1.2 QT5.6.0 下载后直接默认安装,安装完毕即可,注意:不需要设置系统环境变量和安装VS QT插件。




    1.3.1 编译Ultimate版本(静态链接QT)
    VMP工程中的Ultimate版本使用的是静态编译的QT,https://www.chinapyg.com/forum.p ... 22&highlight=qt。当然可以自行编译。[QT源码下载](https://download.qt.io/new_archive/qt/5.6/5.6.0/single/)]

    1.3.2  静态编译QT注意事项


    静态编译QT不可以用7.1否则编译出来不支持x64  什么都不用指定,直接编译即可,Debug与Release需要分开编译,编译在一起我也不知道哪里设置区分。

    [C++] 纯文本查看 复制代码
    根据你的需求打开对应的2015命令行工具(x86或者x64),CD到你的源码目录。新建一个QT_Build.bat.
    打开2015x64命令行工具
    x64release :
    
    CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
    configure.bat -mp -confirm-license -opensource -platform win32-msvc2015 -release -static   -force-asserts  -prefix D:\msvc2015_Staticrelease64 -static-runtime  -skip qtwebkit -skip qtwebengine -opengl desktop  -target xp -qt-pcre -qt-zlib -qt-freetype -qt-harfbuzz -qt-libpng -qt-libjpeg  -nomake examples -nomake tests
    
    x64debug
    
    CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
    configure.bat -mp -confirm-license -opensource -platform win32-msvc2015 -debug -static   -force-asserts  -prefix D:\QT\Qt5.6.0\5.6\msvc2015_Staticdebug64 -static-runtime  -opengl desktop  -target xp -qt-pcre -qt-zlib -qt-freetype -qt-harfbuzz -qt-libpng -qt-libjpeg  -nomake examples -nomake tests
    
    打开2015x86命令行工具,x86模块:
    x86release :
    CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
    SET PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin;%PATH%
    SET INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include;%INCLUDE%
    SET LIB=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib;%LIB%
    configure.bat -mp -confirm-license -opensource -platform win32-msvc2015 -release -static   -force-asserts  -prefix D:\QT\Qt5.6.0\5.6\msvc2015_release86 -static-runtime  -opengl desktop  -target xp -qt-pcre -qt-zlib -qt-freetype -qt-harfbuzz -qt-libpng -qt-libjpeg  -nomake examples -nomake tests
    
    x86debug :
    CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
    SET PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin;%PATH%
    SET INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include;%INCLUDE%
    SET LIB=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib;%LIB%
    configure.bat -mp -confirm-license -opensource -platform win32-msvc2015 -debug -static   -force-asserts  -prefix D:\QT\Qt5.6.0\5.6\msvc2015_debug86 -static-runtime  -opengl desktop  -target xp -qt-pcre -qt-zlib -qt-freetype -qt-harfbuzz -qt-libpng -qt-libjpeg  -nomake examples -nomake tests


    1.4.1 静态QT编译后把静态库复制到安装的QT路径。这里说下,不然会出现moc不能编译的错误。

    1.png



    1.4.2 静态QT编译后路径的设置。


    2.png
    1.4.3  属性管理器这了咱们全部设置一下为 Visual Studio 2017 - Windows XP (v141_xp) 我这下载的是8.1的sdk 所以默认它是7.0的 这个无需管它。

    3.png

    1.5.1 qt-release64 添加用户宏,直接添加静态库的。

    4.png

    5.png


    添加好后记得一定要勾选。不勾选会出这个错误。


    1.6.1 编译VMProtect 三方库报错如下:

    [C++] 纯文本查看 复制代码
    ..\third-party\libffi\libffi64.lib”是使用比创建其他对象所用编译器旧的编译器创建的;请重新生成旧的对象和库


    1.7.1 解决方法:采用msvc_2017_xp编译器编译,libffi源码在github上。

         替换libffi64后
    7.png

    VMProtect Ultimate静态编译成功。

    6.png

    其它的错误请参照 @lipeisen 的教程,VMP比较正确的编译教程  https://www.chinapyg.com/thread-149872-1-1.html

    二,VMP许可集成 生成自定义序列号

    2.1.1 使用编译好的VMProtect打开vmprotect.vmp。C:\Users\Administrator\Desktop\vmp22\core 在项目-添加-许可,添加自定义的信息,然后保存即可。

    8.png

    2.1.2 以编辑的方式打开vmprotect.vmp文件,删除.vmp文件的以下lua代码段

    [C++] 纯文本查看 复制代码
    --2223 - Testing Purposes and Demo watermark Customer ID
          localwatermark = watermarks:itemByName("2223")
          if(watermark) then
           add_watermark:xproc(version_watermark_command:address(),watermark:value())
     
          else
                 error("TestingPurposes and Demo watermark was not found in the database");
     
          end


    [C++] 纯文本查看 复制代码
    AddFunction("__scrt_common_main_seh(void)")


    没删在对VmpProtectCon加壳会提示函数地址占用。



    2.1.3 找到复制刚才添加的序列号,新建一个文本,复制到文本保存为 key.txt

    9.png


    三,VMProtect加壳并集成许可


    3.1.1将修改的 vmprotect.vmp,  key.txt , VMProtectLicense.ini(这个不用修改),复制到编译好的bin\64\Ultimate目录

    10.png


    3.1.2 打开CMD cd 到 编译好的bin\64\Ultimate目录

    正式cmd命令如下,添加-key参数,原因:.vmp的lua对-key解析将序列号并集成到文件。


    [C++] 纯文本查看 复制代码
    VMProtectCon.exe VMProtectCon.exe VMProtectConVmp.exe -pf vmprotect.vmp -key key.txt

    11.png

    3.1.3 使用加壳并许可的VMProtectCon.exe对VMProtect.exe进行加壳并集成许可

    [C++] 纯文本查看 复制代码
    VMProtectConVmp.exe VMProtect.exe VMProtectVmp.exe -pf vmprotect.vmp -key key.txt


    QQ图片20250101205257.png




    最终的效果


    111.png












    评分

    参与人数 5威望 +6 飘云币 +6 收起 理由
    zhczf + 1 + 1 PYG有你更精彩!
    yahooboby + 1 + 1 能不能放上你编译好的程序
    yhym599 + 1 + 1 更喜岷山千里雪,三军过后尽开颜
    冷月孤心 + 1 + 1 辛苦了
    boyving + 2 + 2 PYG有你更精彩!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2023-12-22 19:43
  • 签到天数: 148 天

    [LV.7]常住居民III

    发表于 2025-1-1 19:18:19 | 显示全部楼层
    感谢楼主,感谢三上等诸多V
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-11-28 18:31
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2025-1-1 23:07:14 | 显示全部楼层
    本帖最后由 yhym599 于 2025-1-10 20:39 编辑

    也曾静态编译成功过,但最后的集成许可总是有问题,现在明白了,原来是要加壳后才行。。。感谢楼主分享经验,学习了。
    学习完了,就得交作业,哈哈
    U_64.jpg




    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 23:10
  • 签到天数: 267 天

    [LV.8]以坛为家I

    发表于 2025-1-2 01:28:06 | 显示全部楼层
    新的一年,重心出发
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 09:04
  • 签到天数: 339 天

    [LV.8]以坛为家I

    发表于 2025-1-2 09:13:47 | 显示全部楼层
    谢谢  谢谢  
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    昨天 11:24
  • 签到天数: 2281 天

    [LV.Master]伴坛终老

    发表于 2025-1-2 10:55:36 | 显示全部楼层
    感谢分享 ,先收藏了!  这个编译好的Ultimate版本可以打开帮助吗?
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    5 天前
  • 签到天数: 333 天

    [LV.8]以坛为家I

    发表于 2025-1-2 22:16:16 | 显示全部楼层
    感谢分享,期待Mac上的教程
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 07:47
  • 签到天数: 1855 天

    [LV.Master]伴坛终老

    发表于 2025-1-3 22:53:12 | 显示全部楼层
    学习了,感谢分享!
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 09:04
  • 签到天数: 339 天

    [LV.8]以坛为家I

    发表于 2025-1-6 10:40:18 | 显示全部楼层
    PYG20周年生日快乐!
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表