Android逆向实战篇(Luac文件解密)

luac文件解密还原

近日逆向一个app的时候发现它的主要功能都是用lua实现的,查看资源文件时发现,文件后缀是luac而非lua,打开一看全是乱码。那么毫无疑问,这是一个被加密过的文件,我们需要把它逆向还原出来,或者说解密出来更为合适。

luac加密有两个关键元素,key和sign。sign是加密标记,用于判断脚本是否加密,key是xxtea解密时候的秘钥。我们要做的,就是从apk中找到这两个元素。

从apk中获取线索

apk逆向的事这里就不多说了,这个app没有任何加固,直接apktool就一键逆向了。

首先查看lib文件夹,找出加密lua用的so文件,看到了一个libcocos2dlua.so,毫无疑问它就是我们要找的犯罪嫌疑人。so文件直接用编辑器打开肯定是难搞的,所以直接在linux中执行了一行strings -a libcocos2dlua.so > a.txt,然后把a.txt文件保存下来。我们要找的key和sign就保存在这个文件中,怎么把他们找出来,暂时按下不提,先往下看。

接着,随便找一个luac文件,用编辑器打开它,大概长这样

kldk2019vf�6
q�U�����BA�4n��|<i��P�r�Ql�9#��UQD\ga�<M)�oF$rL$�
��L�l���z���l��7�^�z� O7a�,�.���}\�y���6`�ƥ�B��@�5�����>�(�����Ѷ{|'�Ň����2�e@Wvno�D
......

luac文件的开头处,就是sign,那么这里是kldk2019还是kldk2019vf,我也不知道,先把kldk复制下来,然后去刚才保存的a.txt文件中搜索。于是搜索到了如下内容:

......
APP_RESIGN_ACTIVE_EVENT
APP_BECOME_ACTIVE_EVENT
klnn2019
kldk2019
main.lua
Native OpenUDID = %s
yvcc.YVTool:speechVoice
......

那么很显然,我们要找的sign就是kldk2019,它的上面,就是key了。如此一来,两个关键元素就找到了,非常轻松加愉快。

使用key和sign解密luac文件

虽然造轮子趣味无穷,但我还是更喜欢大佬的现成代码。github地址如下:
https://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin/tree/v3/xxtea
Tips: 把xxtea.cpp重命名成xxtea.c

下载两个文件之后,执行如下命令:

gcc main.c xxtea.c -o unluac

然后你就会收获一个unluac文件。找一个luac文件来,执行:

lua_decrypt main.luac main.lua kldk2019 klnn2019

然后你就会收获一个main.lua文件,打开一看,清晰明了的源码,完事儿!

附赠批量执行代码

import os


def batch_process(file_dir: str) -> None:
    for root, dirs, files in os.walk(file_dir):
        for f in files:
            if f.endswith("luac"):
                path_src = os.path.join(root, f)
                path_targ = path.replace("luac", "lua")
                os.system(f"lua_decrypt {path_src} {path_targ} kldk2019 klnn2019")

要在linux环境中执行哦,windows下破事儿一大堆。

luac解密工具是一种用于解密和解码Lua代码的工具。Lua是一种轻量级的脚本语言,常用于游戏开发和嵌入式系统。由于Lua代码可以被编译为字节码,以保护源代码的安全性,因此有时需要解密和还原这些字节码以分析和调试Lua程序。 要下载luac解密工具,首先需要在互联网上搜索可信的软件下载站点。可以使用搜索引擎,如百度、谷歌等,搜索"luac解密工具下载"关键词。在搜索结果中,选择一个可信度高、用户评价好的网站。 进入下载网站后,找到与luac解密工具相关的页面或资源。通常,这些工具可能以独立软件或插件的形式存在。仔细阅读软件的描述和功能介绍,确保其符合需要和期望。 在确定所需工具后,点击下载按钮或链接,根据提示选择保存位置。下载速度和时间取决于网络环境和文件大小。 一旦下载完成,可以通过双击下载的文件运行安装程序。按照安装界面上的指示进行安装。安装完成后,在计算机上创建快捷方式,以方便日后使用。 启动luac解密工具后,可通过导入Lua字节码文件的方式进行解密操作。选择要解密文件,点击解密按钮或选项,然后等待解密过程完成。 解密完成后,可以保存解密后的Lua代码,以便进行分析、修改或调试。记得及时备份解密后的代码,以免意外丢失。 总之,下载luac解密工具可以通过在搜索引擎中搜索相关关键词,找到可信赖的软件下载站点。选择合适的工具后,按照安装程序的指示进行安装。然后,通过导入Lua字节码文件,进行解密操作。完成后,保存解密后的代码进行分析和调试。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值