LUA脚本的loadstring的用法

Lua脚本加密逆向实战:从源码剖析LoadString魔改与修复 在软件安全与逆向工程领域,代码混淆与加密是常见的保护手段,其核心原理是通过特定算法对原始代码进行变换,使其难以被直接阅读或分析,以保护知识产权或增加分析门槛。理解这类技术的实现机制,对于安全研究、漏洞挖掘和兼容性开发具有重要价值。以广泛应用的Lua脚本语言为例,其轻量级和易集成的特性使其成为移动端和游戏脚本的热门选择,而针对Lua脚本的字符串常量混淆是一种典型保护方式。这通常涉及对Lua虚拟机关键函数(如负责加载代码的LoadString)的修改,在代码加载流程中植入解密逻辑。通过深入Lua 5.3源码,分 阅读详情

LUA loadstring

类似加载,从给定的字符串得到块。
要加载和运行一个给定的字符串

 

一般如下用法:

assert(loadstring(script))()

 

f = loadstring("a = 1") 
相当于:
f = loadstring("function() a = 1 end") 

复杂用法如下:

下面是动态加载字符串,并执行,结果为一个table

local  script="local ee={[0]={id=0,lv=5,text='yy'},[1]={id=1,lv=3,text='zz'}}  return ee"
local tb=assert(loadstring(script))()
print(tb[0].text)

下面是动态加载字符串,并执行,结果为方法

 

local  addscript="function dadd(a,b) return a+b  end"
assert(loadstring(addscript))()
print(tostring(dadd(2,3)))


 

Unity3D加载资源的四种方式 一、准备场景和预设和AB包资源 ①新建一个Cube然后创建一个材质球,然后将其做成预设,如下所示: ②编写打包预设为AB包的脚本(注意:该脚本需要放置在Editor这个特定的目录文件夹下) /*** * Title:"三维可视化" 项目 * 主题:打AB包 * Description: * 功能:XXX * Date:2019 * Version:0.1版本 * Author:Co... 阅读详情

相关推荐

RobloxScripts

随机游戏脚本 所有这些项目都是开源的。 如果您使用我们的项目并对其进行一些更改,则无需学分。 目前的游戏 脚本loadstring(game:HttpGet('https://raw.githubusercontent.com/MaiKokain/RandomGameScript/main/VortexSimulator.lua'))() 正在努力 没有任何 如果您想推荐任何游戏。 DM Hentai#4902 (请不要推荐具有良好反作弊功能的游戏,我只是在学习lua。)

GitHub的raw.githubusercontent.com无法链接

原文地址:https://www.cnblogs.com/zuoanfengxi/p/12724698.html

阿斌(Ben)的博客 1万+

loadstring用法解析[项目代码]

本文介绍了Lualoadstring函数的用法,通过具体代码示例展示了如何利用loadstring加载并执行字符串形式的Lua代码。作者首先提到在项目中未实际使用loadstring导致印象不深,但在面试中被问到后进行了记录。示例中演示了两种用法:一是加载并执行返回table的字符串代码,二是加载并执行定义函数的字符串代码。第一个示例展示了如何通过loadstring加载包含table定义的字符串并访问其中的数据,第二个示例则展示了如何加载包含函数定义的字符串并调用该函数。这些示例清晰地展示了loadstring在动态执行Lua代码方面的实用性。

lua require dofile loadfile区别

1.dofile与loadfile dofile当作Lua运行代码的chunk的一种原始的操作。dofile实际上是一个辅助的函数。真正完成功能的函数是loadfile;与dofile不同的是loadfile编译代码成中间码并且返回编译后的chunk作为一个函数,而不执行代码;另外loadfile不会抛出错误信息而是返回错误代。我们可以这样定义dofile: function dofile

guan_feng1988的专栏 980

Lua——load和loadstring函数用法

目录 Lua环境实例说明 允许传参的形式Load函数 位于如下包体封装好的load函数 (等同于直接在Lua环境执行的loadstring函数) load(chunk, chunkname, mode, env) Lua环境实例说明 a = 100 local content = [[ return a ]] local func = loadstring(content) print(func()) 等同于 a = 100 local func = function()

两水先木示的博客 1万+

Lualoadstring的使用

Lualoadstring的使用 引子 分析 实现 溯源 引子 将一个table类型的字符串转成table! 例如:"{id=1,num=666}"->{id=1,num=666} 分析 如果暴力解析这个字符串,也是可以将这个table解析出来的,但是这种做法太莽了,当table的结构比较复杂的时候,就有点蛋疼了! 使用loadstring就优雅多了...

fightsyj的博客 8527

lua loadstring与loadfile

http://www.cnblogs.com/stephen-liu74/archive/2012/06/22/2414417.html   1. 编译:     Lua中提供了dofile函数,它是一种内置的操作,用于运行Lua代码块。但实际上dofile只是一个辅助函数,loadfile才是真正的核心函数。相比于dofile,loadfile只是从指定的文件中加载Lua代码块,然后

1万+

Lualoadstring()的使用

LUA loadstring 类似加载,从给定的字符串得到块。 要加载和运行一个给定的字符串 一般如下用法: assert(loadstring(script))() f = loadstring("a = 1")   相当于: f = loadstring("function() a = 1 end")  复杂用法如下: 下面是动态加载字符串

在代码身上,用心去飞翔 9657

Lua语法小贴士(十二)loadstring和loadfile

Lua里面可以使用loadstring来加载一个字符串,字符串中包含了lua脚本Lua里面还可以使用loadfile,可以加载一个lua文件。

凯奥斯的注释 8170

lualoadstring函数

该函数的返回值是返回一个function,如果load失败,则返回nil 例子代码: i = 32 local i = 0 f = loadstring("i = 1 + i; print(i)"); g = function () i = 1 + i; print(i) end f() g() f操作的全局i,g操作的是局部i,因为,loadstring总是在全局环境中去编译它

专注,努力,勤奋 1万+

Lua热更新技术中级篇

 本套课程分为基础与中级两部分,分别就lua语言的各方面知识点进行探讨,学习完本套课程,对于后续Xlua(Tolua等框架)技术的学习提供强大的语言技术保证。       本套lua课程采用入门与商业级两种开发IDE进行教学:入门级的SciTE内置IDE与商业级的IDEA lua插件。本套课程学习完毕,对于除了传统手游外,在VR、AR、商业级大型应用程序、嵌入式设备开发等领域都有较强的指导作用。           《lua中级篇》分为:“函数的进阶”、“字符串进阶”、“Table进阶”、“元表”、“OOP面向对象”、“协同程序”、“IO操作”、“调试与运行”等八个大的章节,详细深入讲解lua开发的方方面面。        内容包含lua可变参数、闭包、模块、函数尾调用、字符串模式匹配、字符串不变性原理、矩阵、链表、元表详解与应用、协同的生命周期与生产消费者问题、lua文件各种读写操作、lua执行外部代码与错误异常处理垃圾收集机制等。       最后,lua中级篇的学习,对于广大学员开发商业级lua热更新技术,具有不可替代的重要作用! 热更新系列(技术含量:中高级):B:《热更新框架设计之Xlua基础视频课程》https://edu.csdn.net/course/detail/27110C:《热更新框架设计之热更流程与热补丁技术》https://edu.csdn.net/course/detail/27118D:《热更新框架设计之客户端热更框架(上)》https://edu.csdn.net/course/detail/27132E:《热更新框架设计之客户端热更框架(中)》https://edu.csdn.net/course/detail/27135F:《热更新框架设计之客户端热更框架(下)》https://edu.csdn.net/course/detail/27136 

loadstring用法

之前一直听说,项目中没具体的用到,印象不深,后来面试时还真被问到了,记录下 local script="local ee={[0]={id=0,lv=5,text='y'},[1]={id=1,lv=3,text='z'}} return ee" local tb=loadstring(script)() print(tb[0].text) local addscript="function addNum(a,b) return a+b end" loa

Bruce 8240

Windows API一日一练(20)LoadString、LoadIcon和LoadCursor函数

Windows API一日一练(20)LoadString、LoadIcon和LoadCursor函数     在编写国际化的应用程序里,经常要使用不同语言的字符串。比如中文菜单里叫做“文件”,而在英语里叫做“File”。开发这种软件的功能是一样的,只是界面上显示的文字不一样而已。为了方便这种软件的开发,在Windows里经常使用的方法就是替换掉显示的字符串,比如指定在中文里就显示“文件”,在英语

1023

Asp.net 2.0 用C# 创建 PDF文件[引用] (示例代码下载)

(一). 功能   创建PDF文件(二). 代码  1using System;  2using System.Data;  3using System.Configuration;  4using System.Web;  5using System.Web.Security;  6using System.Web.UI;  7using System.Web.UI.WebCon

专业提供企业信息化方案,为企业信息化改善提供专业方案 951

lualoadstring 应用(用于游戏中解析字符串公式)

local  str = '{attrKey}{(operator)num2*skilllevel},持续{buff_time+buff_add_time*skilllevel}秒' function dealBuffDescript(buffId) -- body -- local totalNameTable = CSV:GetTable("total_name") -

枫少 7523

LoadString()函数

int LoadString(HINSTANCE hInstance,//应用程序实例句柄 UINT uID,//资源ID LPTSTR lpBuffer,//存放字符串的缓冲区 int nBufferMax//缓冲区大小 ) 作用: 先在资源中加入字符串资源(不管是字符串还是窗口还是按钮),都有一个名字,比如IDC_BUTTON1 然后用这个函数把这个名字作为参数,就可以取出资源中的字符串了 如...

冯同学的博客 4517

Tab栏显示

local hudweapon_color = gui.ColorPicker(enhancement, "hudweapon.color", "图标发光颜色", 136, 71, 255, 255)local itemList = {"主武器", "副武器", "刀/电击枪", "投掷物", "C4炸弹", "拆弹器", "护甲", "其他"}gui.Button(enhancement, "手动清除缓存记录", function()

Return_1337的博客 1334
上一篇: 浅析Lua中table的遍历
下一篇: Lua中的table函数库
nnsword
博客等级 码龄19年 186粉丝 372原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值