反调试提示

开了Procmon.exe之后启动游戏会弹出这个框,这个是程序加壳之后的反外挂,反调试提示框。

WinLicense
A monitor program has been found running in your system.Please, unload it from memory and restart your program
![image-20230901154445402](https://img2023.cnblogs.com/blog/363476/202309/363476-20230902195253332-749228720.png)

反外挂sdk

  1. https://www.oreans.com/Themida.php
  2. https://www.oreans.com/WinLicense.php

官网提供的是试用版,两者都是商业软件,会提供lib和源代码,以便更好的集成到游戏中。

将软件保护的强大功能(如 Themida)与高级许可证控制的强大功能相结合。它提供了广泛的强大而灵活的技术,使开发人员能够安全地分发其应用程序的试用版。

简单介绍

Themida的原理是通过加密、虚拟化、防调试等技术来保护Windows程序的安全性和可控性。

具体来说,Themida会将程序中的函数和代码进行加密和混淆,使得对程序进行逆向工程和破解变得更加困难。同时,Themida还会使用虚拟机技术,将部分程序代码转换为虚拟指令,使得程序在运行时动态解密和执行,增加了程序的安全性和可控性。

此外,Themida还会添加防调试、防篡改、防注入等机制,使得程序更难被调试、修改或被注入其他程序中。这些机制都可以有效防止程序被破解、篡改或被恶意利用。

总的来说,Themida的原理是综合使用多种技术手段,对程序进行加密、虚拟化和保护,从而提高程序的安全性和可控性。

举个简单的例子:

把1+10=11混淆为 1+1-1+5+3-4-2-2+1之类的,干扰调试

加壳优缺点

加壳也不是百利无一害,优缺点如下:

防破解,防调试,逆向起来非常难

加壳后会影响游戏效率,比如帧率下降,性能下降

集成到项目中

把sdk的lib文件导入到代码工程中,在游戏的关键的函数入口打上要保护的标签。

示例:保护脚本代码执行入口

//pch.hpp中include头文件
#include "ThemidaSDK/WinlicenseSDK.h" //在要保护的代码打上标签
bool Script::init( const std::string & pythonPaths,
const char * componentName )
{
VM_TIGER_WHITE_START
//函数的逻辑代码
VM_TIGER_WHITE_END
}

windows加壳程序WinLicense与Themida的更多相关文章

  1. 浅谈被加壳ELF(即android的so文件)的调试

    本文只讨论如何调试被加壳的ELF文件,包括调试中的技巧运用及调试过程中可能遇到的问题的解决方法,不包含如何还原加固的DEX本文将以某加壳程序和某加固为目标. 一.ELF格式简介 ELF全称:Execu ...

  2. android apk 防止反编译技术第一篇-加壳技术

    做android framework方面的工作将近三年的时间了,现在公司让做一下android apk安全方面的研究,于是最近就在网上找大量的资料来学习.现在将最近学习成果做一下整理总结.学习的这些成 ...

  3. 什么是App加壳,以及App加壳的利与弊

    非著名程序员涩郎 非著名程序员,字耿左直右,号涩郎,爱搞机,爱编程,是爬行在移动互联网中的一名码匠!个人微信号:loonggg,微博:涩郎,专注于移动互联网的开发和研究,本号致力于分享IT技术和程序猿 ...

  4. 总结Themida / Winlicense加壳软件的脱壳方法

    总结下Themida/ Winlicense (TM /  WL) 的脱壳方法. 1, 查看壳版本,这个方法手动也可以,因为这个壳的版本号是写在程序里面的,在解压后下断点即可查看,这里有通用的脚本,我 ...

  5. Themida和Winlicense加壳软件脱壳教程

    (一)Themida和不用license的Winlicense加壳软件就不说了,直接上脚本脱壳. (二)先看看不同版本OEP的一些小特征: Temida2.1.X.X版本之后的OEP特征(2.0.8. ...

  6. NET程序的代码混淆、加壳与脱壳

    通常我们通过代码混淆.加密的形式达到软件保护的目的.在Web开发里我们接触过的可能就是JS代码加密了,可以通过对JS代码进行混淆.加密从而实现对核心JS代码的保护.如果没有接触过的可以在这里简单了解一 ...

  7. Unity3D项目程序加密-VirboxProtector加壳工具

    各位Unity3D的开发者,你还为你的代码被反编译而头疼, 混淆和加密已经失效,为内存dump代码而烦恼?是否辛苦制作的游戏被盗版被抄袭而烦恼? 是否害怕算法被别人参考要把算法写成C++而费劲周折? ...

  8. ASProtect注册码使用教程|ASProtect SKE(加壳脱壳工具) 2.56 汉化注册版

    ASProtect 是功能非常完善的加壳.加密保护工具.能够在对软件加壳的同时进行各种保护.如:反调试跟踪.自校验及用密钥加密保护等:还有多种限制使用措施,如:使用天数限制.次数限制及对应的注册提醒信 ...

  9. VMP虚拟机加壳的原理学习

    好久没有到博客写文章了,9月份开学有点忙,参加了一个上海的一个CHINA SIG信息比赛,前几天又无锡南京来回跑了几趟,签了阿里巴巴的安全工程师,准备11月以后过去实习,这之前就好好待在学校学习了. ...

  10. 加壳软件-Virbox Protector Standalone

    Virbox Protector Standalone 加壳工具 防止代码反编译,更安全,更方便 产品简介 Virbox Protector Standalone提供了强大的代码虚拟化.高级混淆与智能 ...

随机推荐

  1. Axure 公告通知

    1.一个浅黄色的底图 (710X30) ; 2.一个喇叭小图标(Volume up) ; 3.一个动态面板. 动态面板中设置statel.state2和state3三种面板状态,这三种状态中分别放三个 ...

  2. SpringBoot Kafka SSL接入点PLAIN机制收发消息

    applycation.yml spring: # https://developer.aliyun.com/article/784990 kafka: bootstrap-servers: XXXX ...

  3. JAVA 获取 URL 指定参数的值

    JAVA 获取 URL 指定参数的值 @Test void regexTest() { String url = "https://www.cnblogs.com/vipsoft/p/152 ...

  4. CF:706B. Interesting drink (二分查找)

    题意:不同奶茶店里同样的奶茶价格不同,问在当天Yuki持有的零钱能在几家店购买 思路:对价格数组排序,先优先判断是否会比较最大值和最小值,然后二分查找 #include<bits/stdc++. ...

  5. 0x69 图论-二分图的覆盖与独立集

    A:Machine Schedule 输入 5 5 10 0 1 1 1 1 2 2 1 3 3 1 4 4 2 1 5 2 2 6 2 3 7 2 4 8 3 3 9 4 3 0 输出 3 在二分图 ...

  6. Problem A - Sequence with Digits (数学推导)

    题意: 已知 \(a_1\) 求 \(a_k\) ,推导公式见题面. #include<bits/stdc++.h> using namespace std; typedef long l ...

  7. 请问Sass/SCSS(with node-sass)和Sass/SCSS(with dart-sass)选哪个?

    node-sass是自动编译实时的,dart-sass需要保存后才会生效. 如果您在Dart-VM内运行Dart-Sass,它的运行速度很快,但它表示可以编译为纯JS,dart-sass只是一个编译版 ...

  8. freeswitch的任务引擎问题与解决方案

    概述 freeswitch核心框架中有一个定时任务系统task,在开发过程中用来做一些延时操作和异步操作很方便. 我们在VOIP的呼叫流程中,经常会有一些对实时性要求没那么高的操作,或者会有阻塞流程的 ...

  9. freeswitch的ACL规则

    概述 freeswitch是一款好用的VOIP开源软交换平台. VOIP公共网络中的安全问题是最重要的问题,我们必须对网络端口的访问权限做出限制. ACL全称Access Control List,意 ...

  10. 如何使用chatgpt编写代码

    功能列举 回答编程问题 我想让你充当 Stackoverflow 的帖子.我将提出与编程有关的问题,你将回答答案是什么.我希望你只回答给定的答案,在没有足够的细节时写出解释.当我需要用英语告诉你一些事 ...