dawangyezi 最近的时间轴更新
dawangyezi

dawangyezi

V2EX 第 513180 号会员,加入于 2020-10-17 12:01:51 +08:00
dawangyezi 最近回复了
我是怎么发现可以修改 decompress_lzma 来达到目的的。
1. 首先我通过命令行工具 lzma 来压缩(命令为:lzma -z a)了一个普通的文本文件 a ,它会生成一个 a.lzma 文件。
2. 通过 xxd ( hexdump 工具)我发现 a.lzma 文件的结构非常简单,一个表头表示压缩算法信息,然后紧接着就是内容区域。表头刚好就是 unitypy 中指定的 0x5d 0x00 0x00 0x80 0x00 。我又打印了 descomporess_lzma 函数参数的数据长度,和标准 lzma 算法生成的数据长度吻合。这说明只要把 decompress_lzma 的入口参数写入文件就是一个标准的 lzma 文件
3. 我使用 lzma 工具 (命令为:lzma -d a.lzma) 可以正常解压测试数据导出的文件。这说明是 decompress_lzma 实现的有问题。
4. 我通过 python 标准库的标准 lzma.open 可以打开并解压第 2 步生成的文件。这再此验证 lzma 库没有问题,是使用上的问题。
5. 综上,我推断只要将 lzma.LZMADecompressor 的参数改为默认的自动,就可以正常解压数据。实验验证猜想正确。
将 unitypy 库中 CompressionHelper.py 中 decompress_lzma 函数修改为:
```python
def decompress_lzma(data: bytes) -> bytes:
return lzma.LZMADecompressor(format=lzma.FORMAT_AUTO).decompress(data)
```
针对你给出的资源,我发现只要让 lzma 去推断算法就好了
让 lzma 自己去推断,不要去指定算法。关于算法推断过程因为在 C 代码中,我没有去具体调试。
挺好玩儿
135 天前
回复了 junwind 创建的主题 git 大家好, mac 上有哪款 git GUI 工具好用呢?
用 sourcetree
2022-07-27 10:16:17 +08:00
回复了 kfansup 创建的主题 程序员 windows 上面跑 docker 有什么最佳实践吗
远程登录一个 linux 主机,在那上面跑
2022-06-12 20:31:49 +08:00
回复了 darklinden 创建的主题 Windows 吐槽: Windows 竟然没有 rsync...
windows 有 robocopy
2022-06-03 14:38:30 +08:00
回复了 waiaan 创建的主题 程序员 有没有什么设备或者方法可以代替纸和笔用来打草稿的?
我用的是一个小猪佩奇的液晶手写板。用了好多年了。我觉得很实用。
2022-03-07 10:19:34 +08:00
回复了 fengsien1999 创建的主题 PowerShell 现在 PowerShell 是不是没有什么用?
我近一年一直在做 windows 游戏开发。经常用到 ps 做自动化的一些东西。习惯了就觉得蛮好用的。
有没有用毕竟是看使用场景的嘛。如果你经常在类 unix 机器上开发,那肯定觉得不如 bash ,zsh 这些好用。
因为微软官方为 ps 提供跨平台的实现。所以一些跨平台的脚本也可能是使用 ps 的。
我知道的应用场景里面,亚马逊云的 lambda 就提供了 ps 作为一种内置提供的 runtime ,而不是 bash ,zsh 这些。
2021-11-10 22:13:47 +08:00
回复了 euan1022 创建的主题 酷工作 [上海/深圳/杭州] 字节跳动音乐团队 iOS/Android 岗位招聘
有其它岗位吗?我有丰富的音乐应用开发经验。但是是从事客户端跨平台部分的功能。不知道有没有多平台方向的岗位。
指定压缩算法,算法版本,时间戳,得到的就是一样的结果。
当然并不是所有的压缩格式都存储时间戳。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2219 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 420ms · UTC 01:09 · PVG 09:09 · LAX 18:09 · JFK 21:09
Developed with CodeLauncher
♥ Do have faith in what you're doing.