level 2
dwing老大,关于你的这个压缩壳,能透露点技术细节吗?你怎么用的
lz
ma的解压缩部分,是否是用lzma的源代码编译成二进制代码,然后再反汇编成汇编代码,然后自己再拷贝这些汇编代码到解壳的汇编代码中?
2006年04月11日 03点04分
1
level 2
如果要是用反汇编的这种方法,重新定位和有新版本的lzma的时候可能会不是很爽.
2006年04月11日 03点04分
2
level 2
如果要是直接写入那个函数的二进制,到汇编代码的标签里边比如写到_DeCodeLZMA:_asm{VARIABLE_DEPACK_START:_DeCodeLZMA:NOP...}可能就要提前计算函数的大小,这样的话,在解壳的那部分代码你可能就需要预先把空间都算好,这样也不是很爽,如果LZMA修改了算法,你的预留空间可能会不够:(
2006年04月11日 03点04分
3
level 2
所以请老大指点一下,最近打算写一个这样的东西,学习一下PE结构和汇编还有算法.:(
2006年04月11日 03点04分
4
level 2
我看了大多数壳,用的解压部分都是有汇编源代码的,:(对壳不是很熟希望dwing老大指点
2006年04月11日 07点04分
5
level 13
LZMA解压的汇编代码是我自己照着C代码改写的,大部分优化代码是我自己完成的,还有一些是由其它爱好者提出来的.其中有个在symantic工作的程序员在后期提供了大量帮助.其它的信息可在置顶的帖子里看到:http://post.baidu.com/f?kz=72225949
2006年04月11日 08点04分
6
请教一下,用7z官方提供的C源码能正确的解压缩数据么?优化是使解压缩代码体积变小,还是压缩数据结果也产生了变化?
2017年04月18日 16点04分
还有lc pb lp这三个参数在反汇编分析时,没见Upack里用到啊,分析UPX、Mpress这俩壳的时候都找到了相应的值,UPX是固定的,Mpress是动态变化的。
2017年04月18日 16点04分
@zgvjjdb Upack只支持lc可变,pb和lp是固定值并以此做了点优化.除此之外符合原版压缩标准.
2017年04月19日 04点04分
@dwing lc可变应该就是指的命令行输入的-c参数吧?我正在做静态脱壳器,如果我的lc pb lp值都填对,再找到解压缩缓冲区的指针的话,用官方提供的源码应该就能解压吧?另外:感谢dwing大牛的回复
2017年04月19日 05点04分
level 2
真是打心里佩服啊,自己转写汇编,对我来说是有点难度啊:(,我没有用汇编写过复杂的数据结构程序.:(,有些问题看来我还要自己再想想啊.
2006年04月11日 10点04分
7