首页
社区
课程
招聘
[原创][分享] VMP源码编译之Debug_x64模式(新)
发表于: 2023-12-14 20:00 18757

[原创][分享] VMP源码编译之Debug_x64模式(新)

2023-12-14 20:00
18757

最终依赖环境:Windows 7 x64 Ultimate、Visual Studio 2019、Windows SDK8.1、qt-opensource-windows-x86-msvc2015_64-5.6.0、.NET Framework 4.8、QT Visual Studio Tools(v3.0.2最新版)

https://bbs.kanxue.com/thread-279796.htm

链接: https://pan.baidu.com/s/1Gp45rEymPv94FYpuawkmIg 提取码: 947c

windows 7 x64 sp1 环境搭建(虚拟机)

https://www.alipan.com/s/eVHxk9pVVLQ

提取码: tt80

双击vs2019安装包后,提示如下错误

解决:按照上面操作的提示先安装一个 .NET Framework 4.6.2

https://dotnet.microsoft.com/en-us/download/dotnet-framework/net46

下载离线版

当运行安装时,出现如下错误:

修复:下载适应操作系统补丁

https://www.catalog.update.microsoft.com/search.aspx?q=kb4474419

进行安装,然后根据提示重启计算机

接着安装 .NET Framework 4.6.2

2.3 .NET Framework 4.8

https://dotnet.microsoft.com/en-us/download/dotnet-framework/net48

下载后直接安装即可

安装成功

重新再安装VS2019,选项勾选如下


勾选以上,选择安装位置后,点击安装即可

VS2019安装成功

VS2019 Pro激活码:NYWVH-HT4XC-R2WYW-9Y3CM-X4V3Y

2.4 QT 5.6.0

安装QT,下载地址:https://download.qt.io/new_archive/qt/5.6/5.6.0/

安装时,这里直接默认,没做任何修改,直接下一步安装即可

2.5 SDK 8.1

下载地址:https://developer.microsoft.com/zh-cn/windows/downloads/sdk-archive/

下载完成后,无需做任何修改,直接安装即可

**2.6 Notepad++

下载地址:https://notepad-plus-plus.org/downloads/

后续会用作配置文件等修改

2.7 QT Visual Studio Tools

这里直接在VS中安装(选择“扩展”>“管理扩展”>“在线”,搜索 Qt Visual Studio 工具)

或者直接下载v3.0.2版本

https://download.qt.io/official_releases/vsaddin/

安装成功后,退出VS2019,提示如下,点击 Modify 等待完成即可

解压源码

找到vmprotect.sln,用vs2019加载后弹出如下界面,全部选择 【无升级】后点击确定即可

设置VS属性管理器,方便设置项目属性

切换到属性管理器,将每个项目属性设置为:

1. Windows SDK 版本:8.1

2. 平台工具集:Visual Studio 2015 – Windows XP (v140_xp)

修改编译模式:Debug _ x64

确定QT插件是否识别

如果没有识别到,手动指定即可

转化 VMProtect 项目

转化完成后,继续右键该项目,选择属性设置

遵循下面顺序编译原则:每个模块单独编译,修复所有报错

5.1 Common模块

Intel.cc:修复 Mutate函数

Intel.cc:修复 Compile函数

5.2 Misc模块

通过Notepad++将 /vmp/unit-tests/core_tests.cc 编码格式转换为 UTF-8 后保存

这个模块重新生成后,还遗留4个错误,暂时不管,先编译其它模块

5.3 MiniDumpFixer

无需修复

5.4 VMProtect.Runtime

单击VMProtect.Netcore模块进入csproj文件,修改如下内容:

5.5 VMProtect.SDK

无需修复

5.6 VMProtectSDK

无需修复

5.7 VMProtectCon

无需修复

5.8 Win_runtime

无需修复

5.9 VMProtect

查看报错信息,显示res.bat存在问题


当点击 *本地Windows调试器 *执行时,弹出如下错误

将VMProtect模块右键设置为启动项目,重新执行则正常运行

经测试,这个QT模块中的错误全部来源于没有相应的头文件导致

相关开源代码可参考 notepad-plus-plus

https://github.com/notepad-plus-plus/notepad-plus-plus/tree/master/scintilla/qt/ScintillaEditBase

7.1 PlatQT.h

保持和如下头文件一致即可。

7.2 PlatQT.cc

7.3 ScintillaEditBase.h

7.4 ScintillaEditBase.cc

7.5 ScintillaQt.h

7.6 ScintillaQt.cc

关于编码告警告处理

将以下源码文件通过Notepad++转换编码格式为:UTF-8

将gmock-matchers.cc源码文件通过记事本另存的方式转换为unicode格式进行替换

关于C4996警告处理

涉及该警告的主要是Misc模块下面的gtest/unit-tests/win_runtime.Tests三个文件

相应的模块上右键->属性->C/C++->预处理器->预处理器定义

添加宏:_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING

关于 目标框架“netcoreapp3.0”不受支持,将来不会收到安全更新 警告处理

单击VMProtect.Netcore模块,增加如下内容

关于 MSB8051 面向 Windows XP 的支持已被弃用,将来的 Visual Studio 版本不再提供该支持 警告处理

关于 D9030 “/Gm”与多处理不兼容;忽略 /MP 开关 警告处理

启用最小重新生成 修改为 否(/Gm-)

将/vmp/core/VMProtectLicense.ini 拷贝至/vmp/bin/64/Debug/目录

测试功能,加壳保护后程序依然正常运行

void IntelFunction::Mutate(const CompileContext &ctx, bool for_virtualization, int index)
void IntelFunction::Mutate(const CompileContext &ctx, bool for_virtualization, int index)
void IntelObfuscation::Compile(IntelFunction *func, size_t index, size_t end_index, bool for_virtualization)
void IntelObfuscation::Compile(IntelFunction *func, size_t index, size_t end_index, bool for_virtualization)
<TargetFrameworks>netstandard2.1;netcoreapp3.0;net20;net40;net48</TargetFrameworks>
 
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<TargetFrameworks>netstandard2.1;netcoreapp3.0;net20;net40;net48</TargetFrameworks>
 
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
修复:
在源码 /vmp/VMProtect/res.bat 文件中
将相对路径:%QTDIR%/msvc2015_64/bin/rcc.exe %RC_DIR%application.qrc -o %rc_out%
修改为绝对路径:
E:/Qt/Qt5.6.0/5.6/msvc2015_64/bin/rcc.exe %RC_DIR%application.qrc -o %rc_out%
修复:
在源码 /vmp/VMProtect/res.bat 文件中
将相对路径:%QTDIR%/msvc2015_64/bin/rcc.exe %RC_DIR%application.qrc -o %rc_out%
修改为绝对路径:

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 16
支持
分享
最新回复 (22)
雪    币: 24
活跃值: (90)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
沙发~
2023-12-15 00:58
0
雪    币: 3416
活跃值: (2104)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
整到一个网盘里呗,这样就方便了
2023-12-15 03:15
0
雪    币: 6229
活跃值: (4231)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
4
感谢分享 期待0x10 静态编译(续)
2023-12-15 08:05
0
雪    币: 287
活跃值: (275)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
nice
2023-12-15 08:35
0
雪    币: 2222
活跃值: (739)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
6
所需环境网盘可下载。
链接: https://pan.baidu.com/s/1FJML6hmIMxAn6qQeeDJfkA?pwd=drxd 提取码: drxd
2023-12-15 09:05
1
雪    币: 1392
活跃值: (5172)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
7
支持一下。保姆级别的了
2023-12-15 09:27
0
雪    币: 8910
活跃值: (2352)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
支持~
2023-12-15 10:04
0
雪    币: 58
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
感谢,如果有精力,直接吧虚拟机也上传吧,来个阿里云吧,度盘下载恶心死人了
2023-12-15 10:43
0
雪    币: 1346
活跃值: (2331)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
很牛哇!
2023-12-15 11:20
0
雪    币: 2230
活跃值: (2166)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
期待静态编译教程,试了几天没成功。
2023-12-15 21:48
0
雪    币: 3059
活跃值: (30876)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
感谢分享
2023-12-15 23:36
1
雪    币: 6229
活跃值: (4231)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
13
QT好难编译啊!静态更难
2023-12-16 10:46
0
雪    币: 2166
活跃值: (3226)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
14
我也尝试搭编译环境了,卡在了qt,本来就是是来学习核心的,感觉界面这块用不到就放弃了,能编译核心就行。没用虚拟机,感觉用来了虚拟机,阅读代码时没法使用多屏。建议楼主直接把vm镜像贴出来,可以帮大家省很多麻烦
2023-12-17 11:24
0
雪    币: 2284
活跃值: (2774)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
多谢分享
2023-12-18 14:50
0
雪    币: 270
活跃值: (2639)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
+1 希望楼主直接分析编译好的vm虚拟机
2023-12-18 17:17
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
错误        MSB4181        “QtRunWork”任务返回了 false,但未记录错误。        VMProtect        C:\Users\chen\AppData\Local\QtMsBuild\qt_globals.targets        272        
2023-12-18 21:38
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
俺也编译出来了
2023-12-20 20:01
0
雪    币: 32
活跃值: (527)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
俺也编译出来了
2023-12-21 15:58
0
雪    币: 258
活跃值: (75)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
感谢分享
2024-2-22 15:28
0
雪    币: 21
活跃值: (761)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
感谢分享,必须收藏!
2024-2-28 09:30
0
雪    币: 2222
活跃值: (739)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
22
有兄弟反馈资源失效,重新补充:

链接: https://pan.baidu.com/s/1Zaj4unIjHtvoyL33UIBDlA?pwd=8jwf 提取码: 8jwf
2024-3-5 18:07
0
雪    币: 56
活跃值: (100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
网盘失效了,可以重新分享一个吗?
2024-6-14 11:05
0
游客
登录 | 注册 方可回帖
返回
//