无损大米压缩

逆向工程 解密
2021-07-09 01:54:24

我想弄清楚无损大米压缩算法如何在以下文件上工作。这是一个DICOM 文件

查看信息我可以看到:

$ gdcmdump I160 | grep "Tamar Compression Type"
(07a1,1011) CS [LOSSLESS RICE ]                                # 14,1 Tamar Compression Type

我可以使用TomoVision打开图像图像为 512x512,16 位(无符号)。

压缩流:

$ gdcmraw -t 07a1,100a I160 comp.raw

包含(hexdump comp.raw):

1A D5 F8 EB  F2 77 A5 CE  A3 54 D5 2A  C0 5D AA 32...

但是 TomoVision 似乎在字节 0x1DE 之前输出一系列零。我还可以使用命令行工具:DICOMatic来处理文件。但是,如果没有适当的许可,生成的文件中会包含 waterwark。所以只有前几个字节看起来没问题:

$ gdcmraw /tmp/I160.dcm /tmp/pixeldata.raw
$ hexdump /tmp/pixeldata.raw |less

可以在此处找到更多编码文件

1个回答

不值得任何赏金,但它可能会有所帮助,因为Tomovision.exe在快速浏览后看起来不会以任何方式混淆,并且包含您正在寻找的算法:

  1. 在你最喜欢的反汇编程序中打开它
  2. 检查对RICE字符串的引用(例如C:\TomoVision\Prog\Prog_Lib\TomoVision_Convert\NEMA_Compression_RICE_decode.cpp在 address 4F59C4
  3. 学习 ASM 代码 - 也就是做你的功课;)