idaPro如何分析app解密lua脚本

通过前面idaPro调试或hook,我们可以获取到xxtea解密key,对于sign我们可以直接打开原文件:

idaPro如何分析app解密lua脚本

可以看到sign值:byds。所以,我们可以同过xxtea解密工具(可从GitHub上下源码自己编译)试着解密:

idaPro如何分析app解密lua脚本

以index.luac为例,我们看index.luac解密前后变化:

idaPro如何分析app解密lua脚本

我们看到经过xxtea解密后的lua脚本仍然不是明文!我们之前根据cocos2d框架源码及大神apk反编结果确定就是用的xxtea加密,而且app的lua脚本也有签名值,这也印证了就是xxtea加密方式,但是我们解密出来的结果仍然不是明文,这说明我们解密可能不完全,到底是不是还得再回到idapro一探究竟。

用idapro打开libgame.so,在export窗口中搜索byds,找到byds_d函数,双击进去:

idaPro如何分析app解密lua脚本

直接F5会显示反编代码:

idaPro如何分析app解密lua脚本

这没有什么特别的,和我们框架源码中的代码是等效的。如果是解密未完成的话,应该会再调用此函数的上一级继续解密过程,我们jump xrefs跟踪一下此函数调用:

idaPro如何分析app解密lua脚本

出来两个,其中一个是got表,肯定不是,我们双击名列前茅个:

idaPro如何分析app解密lua脚本

只是一个包装函数,我们继续跟踪:

idaPro如何分析app解密lua脚本

双击进去:

idaPro如何分析app解密lua脚本

我们看到这个函数名称和源码中调用xxtea_decrypt是一样的,我们一开始也将这个函数列入突破口了。现在可以很清晰的看到脚本经过byds_d解密之后,又进行了一次uncompress解压,到现在应该基本清晰了,lua脚本应该是经过压缩又进行加密,所以要想还原,应该是先xxtea解密,再解压缩。我们可以从GitHub上找个解压zlib的脚本,对解密后的文本再一次解压:

idaPro如何分析app解密lua脚本

然后再看index.lua:

idaPro如何分析app解密lua脚本

可以看到现在已经变成明文了。

关于idaPro如何分析app解密lua脚本问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

文章标题:idaPro如何分析app解密lua脚本,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/28242

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云认证作者
上一篇 2022年9月21日 下午10:49
下一篇 2022年9月21日 下午10:51

相关推荐

  • excel下拉列表怎么填充颜色

    excel下拉列表填充颜色的方法: 1、首先打开软件,然后点击“数据有效性”选择“数据有校性”。 2、之后在允许中选择“序列”并输入下拉值,在依次选择“条件格式—>等于”。 3、在设置格式的值中输入对应的值,选择右侧的下拉,点击“自定义格式”。 4、之后在字体任务选择栏右下方选择颜色。 5、最…

    2022年8月27日
    4.8K00
  • windows com surrogate进程表示的是什么意思

    “com surrogate”是“C:WindowsSystem32dllhost.exe”的进程;出现该进程通常是“COM+”组件停止工作,这个进程占用高甚至直接未响应,这是由于电脑在加载文件图标的时候出现问题,导致电脑变的卡顿,可以在计算机属性设置中解决卡顿问题。 本教程操作环境:windows…

    2022年9月15日
    2.6K00
  • mdf文件打开方法是什么

    mdf文件怎么开: 如果mdf是镜像文件,我们需要虚拟光驱进行加载,下载并安装Daemon Tools虚拟光驱软件,打开就行了。 如果mdf是数据库文件,我们需要使用SQLServer管理工具进行打开,打开后点击文件,选择导入连接,选择需要打开的mdf文件 1、找到要打开的数据库文件 2、该数据库文…

    2022年9月8日
    2.3K00
  • MySQL存储过程的参数如何使用

    MySQL存储过程的参数 MySQL存储过程的参数共有三种: IN OUT INOUT 输入参数 输入参数(IN):在调用存储过程中传递数据给存储过程的参数(在调用的存储过程必须具有实际值的变量 或者 字面值) 细节注意:下面的存储过程创建会报错,他的类型以及类型长度需要和创建表字段的类型和类型长度…

    2022年8月31日
    55500
  • 电脑0x000000d1原因是什么及怎么解决

    0x000000d1蓝屏代码是什么意思: 1、内存条质量不高导致了接触不良或者老化。 2、硬件的驱动程序不匹配或者损坏。 3、系统遭病毒破坏某些硬件配置文件被更改。 4、有几个软件冲突。 0x000000d1解决方法: 方案一: 1、将BIOS设置为默认值。 2、拆开主机,检查所有连接(可以重新插拔…

    2022年9月18日
    1.0K00
  • sql文件怎么导入数据库Navicat

    sql文件导入数据库Navicat: 1、首先需要创建数据库,然后在连接名字上右击建立“数据库”。 2、然后输入一个数据库的名称,这里举例为“utf-8”。 3、双击你新建的数据库,然后让其呈现绿色的状态,在数据右击选择“运行sql”。 4、之后点击右侧的三个点,来选择你要运行的“sql文件”。 5…

    2022年8月29日
    1.5K00
  • SpringBoot怎么搭建Dubbo项目实现斐波那契第n项

    step1 新建项目 方法1:直接在IDEA里新建如图: 方法2:在start.spring.io新建 可能有的小朋友已经发现了,名列前茅种方式的Server URL就是第二个的网站,都是一样的 要新建两个项目,名列前茅个项目如上图所示,第二个项目只需要将provider改为consumer 其余不…

    2022年9月24日
    52400
  • Word尾注和交叉引用的区别是什么

    尾注和交叉引用的区别: 答:尾注是给选中的文字添加注释,存在于文章的结尾。 而交叉引用则是把脚注和尾注以及题注全部都交叉在一起使用。 一个是针对标题和结尾,一个仅仅是存在于文章的结尾。 尾注和交叉引用更多介绍: 1、尾注是可以放在文章页面的最下面的,可以对一些元素加以说明。 2、还可以将引用文章的出…

    2022年8月31日
    1.0K00
  • SQL窗口函数怎么使用

    什么是窗口函数 SQL窗口函数为在线分析处理(OLAP)和商业智能(BI)提供了复杂分析和报表统计的功能,例如产品的累计销售额统计、分类排名、同比/环比分析等。这些功能通常很难通过聚合函数和分组操作来实现。 窗口函数(Window Function)可以像聚合函数一样对一组数据进行分析并返回结果,二…

    2022年9月21日
    62600
  • 用于黑客渗透测试的Linux工具有哪些

    用于黑客渗透测试的 Kali Linux 工具 Kali Linux 预装了几种类型的工具。如果你发现有的工具没有安装,只需下载并进行设置即可。这很简单。 1、Nmap Nmap Nmap (即 “ 网络映射器(Network Mapper)”)是 Kali Linux 上很受欢迎的信息收集工具之一…

    2022年9月1日
    92200
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部