lua 字节码的加密。

lua脚本的加密与解密简单介绍 这里有个小技巧,当有很多so文件的时候,一般最大的文件是我们的目标(文件大是因为集成了lua引擎)。其中lua是明文代码,直接用记事本就能打开,luac是lua编译后的字节码,文件头为0x1B 0x4C 0x75 0x61 0x51,lua虚拟机能够直接解析lua和luac脚本文件,而luaJIT是另一个lua的实现版本(不是原作者写的),JIT是指Just-In-Time(即时解析运行),luaJIT相比lua和luac更加高效,文件头是0x1B 0x4C 0x4A。 阅读详情

lua作为嵌入式脚本语言,在项目开发中的积极作用毋庸置疑。虽然便捷,但随lua使用者的数量增多,lua暴露出来的项目核心代码的问题的越来越明显。随着官方提供的luac的解释器,能够给lua明文代码做简单的加密。文章主要正对字节码的序列化和反序列化进行分析。

luac.c文件就是luac.exe的实现部分。
ldump.c和lundump.c 分别是lua的保存和读取字节码的实现部分。
luaU_dump作为dump的函数入口,声明如下:
int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip)
Proto类型是lua中一段chunk的原型,在lobject.h中声明,是不对外公开的内部类型,lua把任何一段可执行的脚本都看成一个Proto,Proto包含了函数原型的字节码,函数引用的常量表,debug信息(包括行号),本地变量,upvalue。由于Proto保存了相当完整的debug信息,所以如果在compile的时候把这些debug信息输出,是非常有利于反编译的。

实际上Proto就是一个闭包实现,而在lua中你可以把一个lua文件看成一个闭包。所以就很容易理解,lua语言结构其实就是递归包含闭包的关系。

从DumpFunction函数的实现可以就能看出这层关系,子闭包作为一个常量在DumpConstants函数中dump了。

static void DumpFunction(const Proto* f, const TString* p, DumpState* D)
{
 DumpString((f->source==p || D->str
Lua脚本加密与解密实战:从字节码编译到AES加密的攻防博弈 在软件安全领域,代码保护是保障知识产权和防止逆向工程的关键环节。其核心原理是通过混淆、加密等技术手段,将可读的源代码转换为难以直接理解或分析的形态,从而增加攻击者的分析成本。从技术价值看,有效的代码保护不仅能防止核心逻辑被窃取或篡改,还能抵御自动化破解工具,在游戏开发、嵌入式系统及商业软件中尤为重要。具体到应用场景,Lua脚本因其轻量、易嵌入的特性,广泛用于游戏逻辑、设备配置和插件系统,但其明文存储的特点也使其成为安全薄弱点。为此,开发者常采用字节码编译、变量名混淆等基础手段,并结合异或或AES等加密算法对 阅读详情

相关推荐

【转】UNITY之LUA加密

【转】UNITY之LUA加密 来自:Lua加密 两种方式:一种用luac,一种用luajit luac加密: 1、lua本身可以使用luac将脚本编译为字节码(bytecode)从而实现加密,去官网下载Lua源代码包(http://www.lua.org/ftp/),下好解压,目录如下 2、启动一个Visual Studio 命令行工具,用32位命令行会...

c1sdn19的专栏 2349

Xlua之高级篇-字节码加密

Lua的加密 一.前言 一般我们说lua的加密,都是指把lua编译成字节码,因为lua的解释器执行lua代码时,也是先把lua源码转成字节码,然后再执行字节码,所以我们把lua转成字节码,实际上出了加密的作用外,还有加速lua执行效率的作用。 我们要想把lua源码转成字节码,lua的编译器luac.exe必不可少,所以我们必须先编译lua的源码,编译出lua的编译器luac.exe。 1.lua源码编译 2.luac编译lua代码为字节码 二.lua源码编译 1.从Lua官网下载lua源码,解压后如下图

TxNet 2373

Cocos2d-Lua/JS代码保护方案:Lua字节码加密与JS混淆实战

Lua字节码和JavaScript源码是Cocos2d-x游戏的核心逻辑载体,但其明文特性极易被反编译或扒取,导致知识产权泄露。本文围绕Lua防反编译与JS混淆两大关键技术展开,解析RC4加密字节码、运行时动态解密、构建流程嵌入及Source Map调试平衡等原理,强调保护需覆盖加密→打包→运行时三层闭环,而非单点混淆。技术价值在于兼顾安全性与可维护性,支持Web/Windows/macOS多端发布,并无缝集成CI/CD。典型应用场景包括H5小游戏、PC客户端及热更新项目中的代码资产防护,尤其适用于Coco

weixin_34246826的博客 244

Lua字节码分析工具

用来分析编译后的lua字节码的工具, 本身用lua写成

LjTools:LuaJIT 2.0字节码解析器,查看器,汇编器和测试VM。 Lua 5.1解析器,IDE和调试器

关于这个项目 这是使用C ++和Qt编写的LuaJIT 2.0字节码的解析器,浏览器,汇编器和测试VM。 有关LuaJIT的更多信息,请参见 。 还有一个验证的Lua解析器和IDE(请参见下文)。 该项目(正在进行中)的目标是更好地了解LuaJIT的工作原理,并支持生成LuaJIT字节码的替代前端的开发(例如在 )。 查看器可用于编辑和编译Lua源代码,并与其对应的LuaJIT字节码并排显示。 测试VM实现LuaJIT字节码的子集,以研究和验证其功能(请参见示例子文件夹)。 这是Lua BcViewer的屏幕截图: 汇编程序可用于直接使用LuaJIT字节码进行编程和测试。 语法在LjAsm.ebnf中定义; 这是PDF: : 。 它从原始LuaJIT字节码中略微抽象出来,并支持自动寄存器分配。 语法的文档是待定; 尚不支持varargs和for循环(因为新前端极有可能未使用)

LM358实战:手把手教你搭建电流检测电路(附电阻选型计算)

本文详细解析了使用LM358运算放大器搭建电流检测电路的全过程,包括基础原理、采样电阻选型、放大电路设计及PCB布局技巧。通过实战案例和精确计算,帮助工程师快速掌握低成本、高精度的电流检测方案,适用于电源管理、电机控制等多种应用场景。

weixin_30872157的博客 447

从平面到立体:一张图看懂MOSFET、FinFET到GAAFET的演变史(附结构对比图)

本文深入解析了半导体晶体管从平面MOSFET到三维FinFET,再到全环绕栅极GAAFET的技术演进历程。通过结构对比图和物理原理分析,揭示了每一次创新如何解决短沟道效应等关键挑战,推动芯片性能提升。特别关注GAAFET作为最新技术突破的架构特点和性能优势。

weixin_30892037的博客 692

Ubuntu双系统开机黑屏?3分钟搞定NVIDIA显卡驱动冲突(18.04/20.04实测有效)

本文详细解决Ubuntu双系统开机黑屏问题,特别是由NVIDIA显卡驱动冲突引起的故障。提供从临时进入系统到永久安装专有驱动的完整方案,适用于Ubuntu18.04/20.04用户,帮助快速恢复系统并优化显卡性能。

resnet7explorer的博客 309

手把手教你编写PCIe设备驱动:基于Linux内核的实战教程

本文详细介绍了基于Linux内核的PCIe设备驱动开发全流程,包括环境准备、设备探测、中断处理、DMA配置等核心内容。通过实战代码示例和Makefile编写指南,帮助开发者快速掌握PCIe驱动开发技术,实现高性能设备驱动开发与优化。

weixin_30687051的博客 193

TIBCO Spotfire 入门指南

数据分析工具 - TIBCO Spotfire 入门指南(一) 文章目录数据分析工具 - TIBCO Spotfire 入门指南(一)前言一、Sportfire 是什么?二、使用Sportfire 创建一个简单的数据分析模型1.设置分析(加载数据)2.编辑数据源3.创建图表3.1 创建交叉表3.2 创建饼图3.3 创建树形图3.4 创建散点图3.5 创建自定义筛选器总结 前言 通过对本指南的学习,你可以了解到如何开始用TIBCO Sportfire分析数据,并能详细了解您可以做什么以及怎么做 一、Spo

kaiakai111的博客 1万+

【Cesium开发实战】解决加载白膜数据位置不合适问题(地底或浮空)

解决白膜位置地底或者浮空问题。

莫言情怼的博客 568

DDD系列 - 第12讲 如何在DDD中实现Query服务(轻量化CQRS)

轻量化CQRS、整合Repository和DAO的优势。

罗小爬的技术宝书 265

把 ABAP writable CDS view entity 讲透:从只读建模到可写模型的 ABAP CDS 新能力

摘要:SAP引入的writable CDS view entity突破了传统CDS视图只读的限制,允许通过ABAP SQL直接进行数据修改。该特性通过WRITABLE关键字定义,使CDS视图成为与数据库表同等级别的可写对象。其核心价值在于为数据集成、中间层同步等场景提供结构化写入入口,但需注意不应绕过业务规则。最佳实践建议保持底层表结构简单映射,避免复杂变形。这一特性标志着CDS从单纯消费模型向双向数据交互能力的演进,为ABAP开发提供了新的数据边界设计思路。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1313

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: CEGUI订阅者模式
tanpan004
博客等级 码龄18年 22粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值