gpt4 book ai didi

android - 如何从 Android .apk assets 文件夹中解压 LUA 脚本?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:42:51 30 4
gpt4 key购买 nike

我正在尝试对 Android 游戏进行逆向工程,以找出其计算背后的逻辑。

.apk文件解压后,/assets/lua文件夹下有lua脚本,都是.lua扩展名。但是,如果使用文本/十六进制编辑器打开,它们就不是人类可读的。

例如:this file

所有文件的内容都以“droi.lua”签名结尾,让我觉得这不是 LUA 脚本,而是某种针对 Android 的压缩 LUA 脚本。 Android 有一种压缩文件以供发布的机制。

有没有人遇到过这种情况?有没有办法让这样的文件可读?

有没有什么方法/程序可以解压从.apk资源(如png、lua等)中提取的文件?

最佳答案

该文件中数据的熵非常高(香农熵约为 7.98,其中 8 是理论最大值)。我将其与压缩或 7 压缩文本文件的熵进行了比较,得到的熵更接近 6 到 7。

高熵,再加上它似乎没有任何可识别的 header 字节,这表明它可能已加密。

如果我是你,我会寻找应用中嵌入的对称加密 key 。

如果您有兴趣,这里是我用来计算熵的 python 脚本:

import sys
import math

print('Calculating entropy of: {}'.format(sys.argv[1]))
with open(sys.argv[1], 'rb') as fp:
data = fp.read()

# Trim off droi.lua
data = data[:-8]

# Calculate the frequency of each byte value in the file
frequencies = []
for b in range(256):
ctr = 0
for byte in data:
if byte == b:
ctr += 1
frequencies.append(float(ctr) / len(data))

# Shannon entropy
ent = 0.0
for freq in frequencies:
if freq > 0:
ent = ent + freq * math.log(freq, 2)
ent = -ent

print('Shannon entropy:')
print(ent)

关于android - 如何从 Android .apk assets 文件夹中解压 LUA 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37934308/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com