lua 解密

lua 解密,第1张

lua文件加密

这其实是你的理解错误

并不是被真正的加密,而是被做成机器码了,就是给机器看用的,所以也不可能复原

就像C代码用VC编译后生成EXE

不可再变回源代码是一个原理的

只能教你怎么把LUA源码变成机器码,

只要找到lua文件夹下的luac文件

在cmd下输入

luac

targFileName

--

tar是目标文件名,就会生成对应的机器码,

这只是你所谓的加密,解密就没办法了

Lua 是一个扩展式程序设计语言,它被设计成支持通用的过程式编程,并有相关数据描述的设施。 Lua 也能对面向对象编程,函数式编程,数据驱动式编程提供很好的支持。它可以作为一个强大、轻量的脚本语言,供任何需要的程序使用。 Lua 以一个用 clean C 写成的库形式提供。(所谓 Clean C ,指的 ANSI C 和 C++ 中共通的一个子集)作为一个扩展式语言,Lua 没有 "main" 程序的概念:它只能 嵌入 一个宿主程序中工作,这个宿主程序被称作 embedding program 或简称为 host 。宿主程序可以通过调用函数执行一小段 Lua 代码,可以读写 Lua 变量,可以注入 C 函数让 Lua 代码调用。这些扩展的 C 函数,可以大大的扩展了 Lua 可以处理事务的领域,这样就可以订制出各种语言,而它们共享一个统一的句法格式的框架。 Lua 的官方发布版就包含了一个叫做 lua 的简单的宿主程序,它用 Lua 库提供了一个保证独立的 Lua 解释器。Lua 是一个自由软件,它的使用许可决定了对它的使用过程一般没有任何保证。这份手册中描述的东西的实现,可以在 Lua 的官方网站“ www.lua.org ” 找到。用Lua这个软件打开

玩农药的时候,想着能有透视的辅助就好了,在网上找到了一个辅助应用,破解开发现是基于AndroLua的脚本应用。在逆向的同时,发现了现在火的很多应用,例如O泡果奶等,都使用了同样的加密方法。

AndroLua还是AndroLua_Pro应用的逆向,其实大同小异,框架不是逆向的重点,基本不会有人去改。主要是lua脚本的逆向,从luac到lua,可以直接用unluac.jar直接逆向。但是,加密程序会对脚本中的所有字符串进行加密混淆,比如字符串、函数名、类名。比如我遇到的这种,加密过程为,lua->luac->混淆加密->zlib压缩->base64编码。

zlib压缩的特征是inflate等相关方法的应用,base64编码的特征就是编码的解码表。这里主要关注的就是字符串加密混淆的方法,也是常见的异或加密,这种加密方法加密解密的过程是一样的。

找到了unluac.jar的源码,在进行字符串解码的时候,进行解密 *** 作,就可以复原出真实的lua脚本。但是在实际使用的时候,对中文的复原不太友好,猜测可能与UTF-8编码有关,我在Python和Java上分别对用串汉字进行UTF-8编码产生的字节竟然不一样。

这个就比较容易了,根据inflate特征可以知道是zlib压缩,为求稳妥,找到对应版本的zlib直接调api就行,这里用的是Python下的zlib。

base64的特征还是很明显的,就是解码表,github上搜一下就能搜到需要的源码。

至此,基本上现在常见的lua脚本加密的逆向过程就完成了。

最后接一个贴士,


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11361914.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存