加密解密软件VMProtect教程(四):准备项目之使用标记

这篇具有很好参考价值的文章主要介绍了加密解密软件VMProtect教程(四):准备项目之使用标记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

VMProtect 是保护应用程序代码免遭分析和破解的可靠工具,但只有在正确构建应用程序内保护机制并且没有可能破坏整个保护的典型错误的情况下才能最有效地使用。

为了保护代码的各个片段和字符串常量,您可以在应用程序的源代码中插入特殊标记。标记是对从外部库导入的函数的调用(32 位应用程序使用 VMProtectSDK32.dll,64 位应用程序使用VMProtectSDK64.dll;驱动程序分别使用 VMProtectDDK32.sys 和 VMProtectDDK64.sys)——进一步称为 VMProtectSDK。VMProtectSDK 中的过程和函数不执行任何操作,这个特殊标记只是VMProtect用于确定受保护代码边界的标签。受保护块的开始和结束标记如下:

  • Delphi
uses VMProtectSDK;

VMProtectBegin(MARKER_TITLE);
...
VMProtectEnd;

C/C++

#include "VMProtectSDK.h"

VMProtectBegin(MARKER_TITLE);
...
VMProtectEnd();
  • MASM
include VMProtectSDK.inc

invoke VMProtectBegin,SADD(MARKER_TITLE)
...
invoke VMProtectEnd

Visual Basic

VMProtectBegin (StrPtr(MARKER_TITLE))
...
VMProtectEnd

此外,您可以使用具有预定义编译类型的标记来代替 VMProtectBegin :

  • VMProtectBeginVirtualization – 标记使用“虚拟化”编译类型。
  • VMProtectBeginMutation – 标记使用“Mutation”编译类型。
  • VMProtectBeginUltra – 标记使用“Ultra”编译类型。

标记处理方式:

当VMProtect分析受保护应用程序的代码时,它会定位对VMProtectSDK过程和函数的所有调用。要保护的块的边界由标记对VMProtectBegin / VMProtectBeginVirtualization / VMProtectBeginMutation / VMProtectBeginUltra 和 VMProtectEnd定义。 然后,当VMProtect处理受保护应用程序的代码时,它会删除标记和对VMProtectSDK的任何调用信息,所以这些库没有必要包含在你的安装程序包中。标记无论是否包含在编译中,都会被删除。使用命名标记时,也会删除其名称。

如果指定了标记的标题,则会为其分配名称,如“VMProtectMarker MARKER_TITLE”。如果未指定标记的标题,则为其分配一个唯一名称:“VMProtectMarker”+标记序列号。然而,使用非命名标记有一个明显的缺点:如果一个新的标记将被插入到程序的代码中,所有非命名标记的编号都会改变。所以我们建议始终使用命名标记。

使用标记时要考虑的一个特别重要的事情是,您不应允许从标记内的非保护区域跳跃。例如,如果您将循环的一部分包含在标记中,就会发生这种情况。如果使用标记的应用程序在保护后变得无法运行,您可以通过启用“调试模式”选项来检测来自非保护区域和地址的跳转。在这种模式下,当受保护的应用程序在调试器下工作时,如果检测到从非保护区跳转到受保护的调试器,后者将中断程序的执行。找到所有此类跳转后,您应该更改标记的位置,如果不方便,请使用VMProtect的GUI版本将这些地址标记为外部。

以上便是本篇文章的分享,有感兴趣的小伙伴,可以私我了解~文章来源地址https://www.toymoban.com/news/detail-448750.html

到了这里,关于加密解密软件VMProtect教程(四):准备项目之使用标记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android 使用sqlcipher加密和解密数据库(包括加密和解密已有的数据库,还有如何查看数据库教程)

    前言 我们知道Android系统有一个内嵌的SQLite数据库,并且提供了一整套的API用于对数据库进行增删改查操作,SQLite是一个轻量级的、跨平台的、开源的嵌入式数据库引擎,也是一个关系型的的使用SQL语句的数据库引擎,读写效率高、资源消耗总量少、延迟时间少,使其成为移

    2024年02月06日
    浏览(40)
  • RSA、MD5加密解密算法全套解析安装教程

    第一部分介绍加密解密算法, 第二部分介绍我小组成功应用的RSA、MD5两种加密解密算法,以及心得体会。 1、加密解密算法介绍 应用的开发中安全很重要,所以信息加密技术显得尤为重要。我们需要对应用中的多项数据进行加密处理,从而来保证应用上线后的安全性,给用户

    2024年02月09日
    浏览(45)
  • 前端使用AES密码加密、解密,使用详细(crypto加密解密,前后端分离,AES加密解密)

    1、 首先安装 crypto-js插件,安装命令如下:    -S等同于--save,保存在package.json文件中,是在dependencies 下, --save安装包信息将加入到dependencies(生产环境)中,生产阶段的依赖,也就是项目运行时的依赖,就是程序上线后仍然需要依赖; -D等同于--save-dev,也保存在package.j

    2024年02月11日
    浏览(48)
  • RSA双向加解密(公钥加密-私钥解密;私钥加密-公钥解密)

            非对称加密算法中,提供一个公钥一个私钥。一般情况下,采用公钥加密、私钥解密的方式。         假设有这样一个场景:服务A与服务B需要通信,通信内容为了安全需要进行加密传输,并且服务A与服务B不能互相持有对方的钥匙。         我首先想到的是

    2024年02月11日
    浏览(42)
  • php对称加密AES加密解密

    AES-128-ECB和AES-256-CBC是两种常见的AES加密模式,它们在加密方式和安全性上有以下区别: 加密方式: AES-128-ECB:ECB(Electronic Codebook)模式是最简单的AES加密模式,它将数据分成固定大小的块,每个块独立加密。这意味着相同的明文块将始终加密为相同的密文块,因此ECB模式不

    2024年02月09日
    浏览(48)
  • 利用Base64加密算法将数据加密解密

    Base64准确来说并不像是一种加密算法,而更像是一种编码标准。 我们知道现在最为流行的编码标准就是ASCLL,它用八个二进制位(一个char的大小)表示了127个字符,任何二进制序列都可以用这127个字符表示出来。 而Base64则是用6个二进制位表示了64个字符,也就是说,任何的

    2024年04月09日
    浏览(65)
  • java和js实现前端加密后端解密,后端加密前端解密(Base64)

    目录 1.前端加密后端解密 2.后端加密前端解密 在前端和后端数据传输时,常常涉及到隐私数据的传输(例如用户名和密码),这时,我们就需要对隐私数据进行加密解密 1.前端加密后端解密         1.1 前端jquery实现         1.2后端 2.后端加密前端解密         2.1后端加密

    2024年02月16日
    浏览(41)
  • 【图像加密解密】区块链的前提下扩散图像加密解密(含直方图)【含Matlab源码 4120期】

    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。 🍎个人主页:海神之光 🏆代码获取方式: 海神之光Matlab王者学习之路—代码获取方式 ⛳️座右铭:行百里者,半于九十。 更多Matlab仿真内容点击👇 Matlab图像处理(进阶版) 路径规划

    2024年03月22日
    浏览(33)
  • SQLite加密解密

    微信聊天记录导出(2020新版) Android数据库加解密逆向分析(三)——微信数据库密码破解 微备份 论坛讨论 转自windwos 安装 pysqlcipher3 下载 pysqlcipher 去https://pypi.org/search/?q=pysqlciphero=下载pysqlcipher3 1.2.0文件 安装python 推荐安装 python3.7 日常使用够了,不要追求新出来的版本,不太

    2024年02月09日
    浏览(29)
  • c# 文本加密解密

    在C#中实现加密功能,您可以使用.NET框架提供的System.Security.Cryptography命名空间下的多种加密算法类。这里我将给出一个使用AES(Advanced Encryption Standard)对称加密算法的简单示例: 这个例子展示了如何使用AES加密和解密字符串。注意在实际应用中,密钥应通过安全的方式存储

    2024年01月16日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包