apk解密工具_Lua脚本预编译工具

为了方便开发,编写了一个Lua预编译的小工具,配合我的框架 Loxodon.Framework使用,源码下载地址:Loxodon.Framework.Xlua

使用Lua预编译工具可以将Lua脚本预编译为字节码文件,并且可以选择是否加密该文件。Lua官方的luac命令编译的字节码分64位和32位,如果想编译64位和32位兼容的字节码,请参考XLua的官方文件,有关通用字节码编译的部分《通用字节码》。

452008e3ce30cf3eed330d0d206118f5.png
  • Bin:luac命令的路径,如果要编译64位或者32位或者两者相兼容的字节码,请选择对应的luac命令。
  • Output:编译后的字节码文件的存储目录。可以选择Assets下面的某个目录,统一打包为一个AssetBundle,也可以选择StreamingAssets下的某个目录,直接从StreamingAssets文件夹中加载。预编译后的字节码文件的扩展名可以选择".luac"或者".bytes",也可以自定义其他的扩展名。
  • Src:lua源代码的根目录,支持多个源代码目录。源代码文件扩展名必须是".lua"或者".lua.txt"。
  • Encryption:加密功能,默认支持AES加密方式,也可以自己扩展新的加密方式,加密部分的面板是动态的,扩展了新的加密方式,会自动显示在工具的界面中。
  • Apply:保存设置
  • Precompile:预编译Lua脚本

Lua加载器

  • FileLoader 文件加载
    文件加载器,支持从本地文件夹加载Lua脚本或者Lua字节码文件,同时也支持从Android的apk或者obb中加载文件,所以如果你的lua源代码或者字节码文件存放在StreamingAssets文件夹中,在Android平台也能够正确加载。
  • AssetBundleLoader 加载器
    支持从AssetBundle中加载lua脚本或者字节码,一般来说建议将所有的lua字节码都放在同一个AssetBundle中,在游戏启动时加载到内存,配置AssetBundleLoader加载器,优先从这个AssetBundle中加载lua代码。
  • DecodableLoader 可解码的加载器
    可解码的加载器,它配合文件加载器或者AssetBundle加载器一起使用,对二进制数据进行解密。

示例

在下面的示例中,在Editor模式,通过FileLoader从Assets/LuaScripts/目录中加载扩展名为".lua.txt"或者".lua"的lua文件。在真机模式,则通过FileLoader从Application.persistentDataPath + "/LuaScripts/"目录加载lua字节码文件,如果没有找到则搜索Application.streamingAssetsPath + "/LuaScripts/"目录,并且使用DecodableLoader加载器进行解密。

在LuaEnv中可以添加多个加载器,后加入的加载器优先级高于先加入的加载器。

var 

扩展其他加密方式

继承Loxodon.Framework.Security.Cryptography.IDecryptor和Loxodon.Framework.Security.Cryptography.IEncryptor接口创建加密解密器,具体实现可以参考RijndaelCryptograph类的源代码。

继承Loxodon.Framework.XLua.Editors.EncryptorFactory类可以为新的加密器创建一个工厂类,将加密需要的参数作为类的成员变量定义在类中,并标识字段为可序列化,即添加"SerializeField"属性。,这样预编译工具可以自动搜索到这个类,并为它创建一个编辑界面。具体实现请参考RijndaelCryptographFactory类。

比如添加如下代码,则可以在编辑界面看到如图中所示的界面

public class ExampleCryptographFactory : EncryptorFactory
{
    [Multiline(2)]
    [SerializeField]
    private string privateKey;

    [Multiline(5)]
    [SerializeField]
    private string publicKey;

    public override IEncryptor Create()
    {
        throw new NotImplementedException();
    }
}

d872fd588a198f268e22e8a92229efc1.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ApkTool』简要介绍 提供1.3.5测试版源码。 此程序在其基础上完善并添加一些功能,此版本号定位2.0 最终版。 定为最终版的原因是支持动态加载最新的内置工具: ..\Bin\*.*目录下的所有工具如果有最新版本的,替换Bin目录内的程序即可应用最新版。 [注意:不要更改目录内的文件名,否则不会被加载。],判断是否使用最新版本的程序, 可以看启动日志中每个文件的路径。日志内容如下: 加载apktool.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\apktool.jar 加载aapt.exe的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\aapt.exe 加载signapk.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\signapk.jar 加载testkey.pk8的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin estkey.pk8 加载testkey.x509.pem的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin estkey.x509.pem 加载baksmali.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\baksmali.jar 加载smali.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\smali.jar 加载dex2jar.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\dex2jar.jar 加载asm-debug-all.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\asm-debug-all.jar 加载commons-io.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\commons-io.jar 加载slf4j-simple.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\slf4j-simple.jar 加载slf4j-api.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\slf4j-api.jar ============================================================== 华丽的分割线 ============================================================== 使用说明: =========================================================== 使用环境:须安装 java,下载地址:http://www.java.com/zh_CN/ 1、反编译APK 拖拽APK程序到"反编译APK"按钮前的输入区,点击"反编译APK"按钮 2、重建APK 把第一步得到 文件夹 拖拽到"重建APK"按钮前面的输入区,点击"重建APK"按钮, 至此会自动生成已经签名好的"XXOO(已签名).apk" 3、签名 拖拽APK程序到"签名"按钮前的输入区,点击"签名"按钮,自动生成已经签名好的"XXOO(已签名).apk" 4、反编译dex 拖拽dex文件或odex到"反编译dex"按钮前的输入区,点击"反编译dex"按钮, 会在dex文件所在目录外生成一个与dex文件名相同的目录 5、重建dex 拖拽要重建的目录到"重建dex"按钮前的输入区,点击"重建dex"按钮,会生成与目录名相同的dex文件 6、dex转jar 拖拽dex文件或odex到"6、dex转jar"按钮前的输入区,点击"6、dex转jar"按钮, test.dex 会生成 test.dex.dex2jar.jar 文件 7、jar,class转java 拖拽保护class的目录,或.class文件或 jar文件到"jar,class转java"按钮前的输入区,点击"jar,class转java"按钮, 会生成相应的 java文件。 ========================== 内置软件版本: | apktool 1.4.3 | aapt r04 | baksmali 1.3.2 | smali 1.3.2 | dex2jar 0.0.7.9 | asm-debug-all 3.2 | commons-io 2.0 | slf4j 1.5.6 | jad 1.5.8e2 | ========================== ^_^ Enjoy! 2012.3.16 By:漏网之鱼 QQ:530747686
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值