windows加壳程序WinLicense与Themida
本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/17674126.html
反调试提示#
开了Procmon.exe之后启动游戏会弹出这个框,这个是程序加壳之后的反外挂,反调试提示框。
反外挂sdk#
官网提供的是试用版,两者都是商业软件,会提供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
}
作者:赵青青 一名在【网易游戏】做游戏开发的程序员,擅长Unity3D,游戏开发,.NET等领域。
本文版权归作者和博客园共有,欢迎转载,转载之后请务必在文章明显位置标出原文链接和作者,谢谢。
如果本文对您有帮助,请点击【推荐】您的赞赏将鼓励我继续创作!想跟我一起进步么?那就【关注】我吧。
本文版权归作者和博客园共有,欢迎转载,转载之后请务必在文章明显位置标出原文链接和作者,谢谢。
如果本文对您有帮助,请点击【推荐】您的赞赏将鼓励我继续创作!想跟我一起进步么?那就【关注】我吧。
分类:
自研引擎及项目开发
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 易语言 —— 开山篇
· Trae初体验
2014-09-02 IL查看委托
2014-09-02 IL查看override
2014-09-02 为VS集成查看IL代码的环境
2014-09-02 HashTable Dictionary HashMap
2013-09-02 Unity3D FPS帧数修改
2013-09-02 Unity游戏暂停之Update与FixedUpdate区别