吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4997|回复: 75
上一主题 下一主题
收起左侧

[C&C++ 原创] VMProtect编译成功过程梳理

  [复制链接]
跳转到指定楼层
楼主
我爱胡萝卜 发表于 2023-12-9 16:53 回帖奖励
本帖最后由 我爱胡萝卜 于 2023-12-10 01:04 编辑

话不多说,先上成果图:

整天两天,全是bug,不是这里问题就是那里问题,还是见都没见过的。
整个项目就是默认论坛里的那个直接打开就好了。
大概说一下:首先说一下环境问题:我是  VS2019 +QT5.60 + Windows SDK 8.1 +.net4.5  
先说VS里面的:
由于初始项目默认我打开的时候是显示Visual Studio 2015 - Windows XP (v140_xp)所以我们最好跟他差不多就行了。
开始:我们运行VS的visual studio installer: 点击修改 在单个组件里面搜2015安装的时候我们可以看到组件里面只有: vs2015 不带xp环境;我们勾上他。
安装1勾选上vs2015 C++工具集

虽然2015的没xp环境,但是C++的xp依赖库可以用vs2017中的搜索 2017

安装2:安装一个vs2017 xp支持组件

安装3接下来需要下载一个Windows 8.1 sdk,因为需要支持xp,不能用Windows 10 sdk,我觉得应该是这样,建议下载。
微软sdk下载官网。ht--tps://developer.microsoft.com/zh-cn/windows/downloads/sdk-archive/
安装好了就可以重启。
我们点击视图->其他窗口->属性管理器,方便设置属性现在就可以给项目设置属性了:右键项目,属性


全部都设置一下设置目标平台版本:8.1平台工具集:vs2015 xp其他都是默认。
现在说QT:
安装4: qt-opensource-windows-x86-msvc2015_64-5.6.0.exe QT在清华源下载

ht--tps://download.qt.io/new_archive/qt/5.6/5.6.0/

安装5vs的QT插件:因为我的是vs2019,新版的vsaddin支持不好我选择qt-vsaddin-msvc2019-2.4.3.vsix
ht--tps://mirrors.tuna.tsinghua.edu.cn/qt/archive/vsaddin/2.4.3/

安装这个插件是因为下面这个项目需要用QT插件转化一下:

安装完记得把这个插件设置一下:别让他更新了。

然后我们就要设置环境变量,最好是设置:

安装好QT会有你设置的目录,我们复制能看到bin,include,lib这些目录的路径
我这里是F:\QT\5.15.2\msvc2015_64\5.6\msvc2015_64


环境变量里面新建,QTDIR:


设置好了我们给QT vs的插件配置一下:

因为有系统配置的原因就直接显示了:

没有也没关系,我们add,找到前面说的路径添加进去就好了。然后我们就对说的那个QT项目转化一下。

转化之后:右键这个项目,属性修改两个地方:
1. Qt Installation 这个要指定我们的QT版本
2.Qt Modules 选择 core gui widgets


以防万一我们把这个项目需要的依赖都设置一下:我的是:
F:\QT\5.15.2\msvc2015_64\5.6\msvc2015_64 下的include和lib
F:\QT\5.15.2\msvc2015_64\5.6\msvc2015_64\include;
F:\QT\5.15.2\msvc2015_64\5.6\msvc2015_64\lib;

附加包含目录也同样设置一下,可能这个设不设置都一样

还有连接器里面的附加依赖项:我们遵循原来初始项目的依赖他的就是qtmaind.lib;Qt5Guid.lib;Qt5Cored.lib;Qt5Concurrentd.lib;Qt5Widgetsd.lib;Qt5WinExtrasd.lib;Qt5Helpd.lib;%(AdditionalDependencies)

到这里关于项目属性的应该就设置好了。
如果哪里有问题我可以回答
下面是跟代码有关的:intel.cc里面的定义需要修改:
第一个函数是:IntelFunction::Mutate
第二个函数是:IntelObfuscation::Compile
修改成下面的就好了:原因就是定义里面的参数和声明里面的不一样,以前代码编写可能是声明如果写了默认值定义就不用写?
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 )
改了这两玩意core项目就没问题了;

下面是Qt的代码:
首先是PlatQt.h因为电进去都是报红的,我就直接不管那么多先消掉在说,就添加了很多头文件:


#include <QPaintDevice>
#include <QFont>
#include <QColor>
#include <QRect>
#include <QPixmap>
#include <qpainter.h>
#include <QListWidget>
#include <qtextcodec.h>
#include <qtextlayout.h>
#include <qpaintdevice.h>
#include <QPaintEngine>
#include <qdesktopwidget.h>
#include <qapplication.h>
#include <QMenu>
#include <QLibrary>
#include <QMessageBox>
#include <QTime>
#include "Platform.h"
然后是PlatQt.cc

还有ScintillaEditBase.h的:

ScintillaEditBase.cc

ScintillaQt.h应该是没有动过;

ScintillaQt.cc的

下面是这个文件:

这个文件是res,bat生成的:
他是在项目的VMProtect文件夹里面

因为我每次编译 这个项目,输出窗口都会说路径找不到
我就直接把原先res.bat里面的   %QTDIR%/msvc2015_64/bin/rcc.exe   改成     F:/QT/5.15.2/msvc2015_64/5.6/msvc2015_64/bin/rcc.exe 了
因为%QTDIR%就是环境变量里面那个QTDIR,我设置了都没用也不知道为什么
echo res.bat: generating QT resources...
SET RC_DIR=%~dp0

set rc_out=%RC_DIR%resources.cc
set rc=%rc_out%
set check_rc=0
if exist %rc_out% (
    set rc_out=%RC_DIR%resources.cc.tmp
    set check_rc=1
)
F:/QT/5.15.2/msvc2015_64/5.6/msvc2015_64/bin/rcc.exe %RC_DIR%application.qrc -o %rc_out%

call :ReplaceOld %check_rc% %rc_out% %rc%
goto :EOF

:ReplaceOld
setlocal enableextensions enabledelayedexpansion
if "%1" == "1" (
  fc %2 %3 /B>>nul 2>&1
  if !ERRORLEVEL! == 1 (
   copy /y %2 %3>>nul 2>&1
   del %2>>nul 2>&1
   echo  res.bat: QT resources '%3' are updated
  ) else (
   echo  res.bat: QT resources '%3' are up to date
  )
) else (
echo  res.bat: QT resources '%3' are generated
)
endlocal
goto :EOF
问题大概就是这样了,论坛那个就是完整的。
github那个我之前编译不行也不知道为什么。
我记得的问题大概就这么多了,可能还有一些细节问题;
补充一个,打开项目的时候设置为x64,如果你要编译x32就用x32,那就另外的事了,相应的流程也差不多就是编译器切换一下,QT下载32位的。

--------------------------------------------------------
补充一下core_tests.cc这里,如果不是utf-8编码,这里会是乱码,也会导致报错

方法就是用好点的文本编辑器打开,全部复制粘贴进去就好了,俄文是这样的

--------------------------------------------------------
应大伙要求,整了个PDF
VMP源码编译.rar (1.47 MB, 下载次数: 365)

免费评分

参与人数 23威望 +1 吾爱币 +57 热心值 +23 收起 理由
antclt + 1 + 1 谁麻烦发个成品啊
eec + 1 + 1 用心讨论,共获提升!
云天逵 + 1 + 1 谢谢@Thanks!
金社郎君 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
scz + 1 + 1 谢谢
timeni + 1 + 1 用心讨论,共获提升!
冥界3大法王 + 4 + 1 用心讨论,共获提升!
suko + 1 + 1 谢谢@Thanks!
smile1110 + 3 + 1 感谢大佬
gunxsword + 1 + 1 热心回复!
popdes + 1 + 1 用心讨论,共获提升!
苏紫方璇 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
610100 + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
qqycra + 1 + 1 热心回复!
笙若 + 1 + 1 谢谢@Thanks!
2217936322 + 2 + 1 谢谢@Thanks!
mmffddyy + 1 + 1 我很赞同!
lccccccc + 1 + 1 我很赞同!
yufeixuan + 1 + 1 谢谢@Thanks!
netspirit + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
yhym599 + 1 + 1 谢谢@Thanks!
Aperodry + 2 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
ceciliaaii 发表于 2023-12-9 17:03
某些地方因排版导致逻辑不清 步骤看不太清楚,建议优化一下
推荐
 楼主| 我爱胡萝卜 发表于 2023-12-10 13:48 |楼主

右键生成解决方案看看,我记得其他项目都能行,最后就他难搞一点
沙发
bester 发表于 2023-12-9 17:01
3#
 楼主| 我爱胡萝卜 发表于 2023-12-9 17:02 |楼主
bester 发表于 2023-12-9 17:01
老哥 排一下版吧,用markdown吧

刚才一直在改,我不知道为什么粘贴过来好好的就这样了。已经好了
5#
冥界3大法王 发表于 2023-12-9 17:14
前脚本发布,后脚闲鱼倒卖贩子就开始出售。。。真没屁子眼。。没德
就咱的残疾版的 x64dbg入门系列视频都难幸免。。。还好没出完整版的。

点评

我最近想出一系列网络安全的教程,结果一看正己视频被盗,还是算了吧,纳闷这群出生是从哪冒出来的,好像互联网突然就出现了这么一群低素质的家伙,难道是00后  详情 回复 发表于 2023-12-10 10:55
6#
netspirit 发表于 2023-12-9 17:15
这个是1.00版的?应该很老吧?
7#
sai609 发表于 2023-12-9 17:15
看的很难受。。。。在论坛内选择插入代码,用这功能
8#
 楼主| 我爱胡萝卜 发表于 2023-12-9 17:20 |楼主
sai609 发表于 2023-12-9 17:15
看的很难受。。。。在论坛内选择插入代码,用这功能

哈哈哈,我不知道,我刚才一直在手动编辑,我再改改
9#
gcode 发表于 2023-12-9 17:23
感谢分享,可以按步骤搭建研究环境了
10#
Elaineliu 发表于 2023-12-9 17:24
不如弄成pdf发上来
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 16:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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