首页
社区
课程
招聘
[旧帖] 关于一个似乎是公开的算法,但是却找不到入手处 0.00雪花
发表于: 2007-3-24 18:47 4857

[旧帖] 关于一个似乎是公开的算法,但是却找不到入手处 0.00雪花

2007-3-24 18:47
4857
一个软件,调用若干资源文件,从功能和文件分布上看,单个文件都没有压缩,至少不是把若干个文件压缩到一个文件中。也就是说比如一个bmp文件,软件自身应该是先把bmp文件的实际内容加密或压缩,然后存在一个文件中,该文件也只包含这个bmp加密后的全部字节。
目前碰到的问题是,使用od跟踪,readfile下断,程序读取所有字节到内存,分析开头的几个字符(所有加密文件的开头几个字符都一样),如果开头几个字符等于一组固定的字符,单独取出,紧跟着的4个字符,然后进入一个函数,函数内部N个switch和循环,本菜鸟小弟,跟了一个星期,彻底晕菜。od字符串参考提示,循环中有如下可能出现的程序提示。

"incomplete distance tree"
"incomplete dynamic bit lengths "
"incomplete literal/length tree"
"incorrect data check"
"incorrect header check"
"invalid bit length repeat"
"invalid block type"
"invalid distance code"
"invalid literal/length code"
"invalid stored block lengths"
"invalid window size

翻了下看雪论坛,很多人贴出的反汇编代码中,都有如上字符,感觉应该是一个公开的算法吧,要不怎么算法中的提示信息都一样呢。

请前辈,帮忙看看这是一个什么样的算法,能不能给些说明文档。多谢。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 1309
活跃值: (232)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
象 zlib 算法, 直接在接口部分分析就可以了
2007-3-24 19:17
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
从od跟踪的过程来看,文件的解压或解密是放在一个dll中,但不是zlib.dll,也就是说软件本身应该是自己实现的这个算法,而不是调用了zlib.dll。所以应该是没法分析接口。

不知道我理解的对不对,如果不对,还请大家再详细指点一下,谢谢。
2007-3-24 19:27
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
顶一下,请大家帮忙看看。
2007-3-24 23:28
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
顶,等待指点。
2007-3-25 08:01
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
自己回一贴,deepwater是对的。这是zlib算法,看了一下zlib的文档,我说的这个软件自己把zlib的c码打包到dll里。

以后大家看到OD里字符串参考出现这些字符,就可以肯定是zlib压缩算法了。
2007-4-2 09:22
0
游客
登录 | 注册 方可回帖
返回
//