- UID
 - 34440
 
 注册时间2007-8-16
阅读权限40
最后登录1970-1-1
独步武林 
   
 
 
 
该用户从未签到  
 | 
 
TMD的脚本出来之后,大家一片哗然,有人说TMD倒下了,有人说现在没有壳用了... 
 
    其实,很多人在抱怨的同时其实没有认识到TMD的优势所在,在我看来,TMD的优点(相对于其他壳或安全保护软件)是很突出很强大的,跟别的安全产品比具有绝对压倒性优势.反调试也许并不如execrypt或者EPE,虚拟机的易用性和强度也许不如VMP,但是综合来看,没有一个壳可以像TMD保护这么自由和多元. 
 
    这篇帖子我不打算把TMD大大小小的功能都介绍一遍,只想通过实例的方式简单谈一下TMD's VM宏的用法,大家在软件中使用后安全性一定会大大提高,而不是把保护单单寄托在一个壳中,变成 脱壳=破解 的结果. 
 
    适用范围:  TMD的VM宏可以用在EXE和DLL文件中,可以用在C . Delphi等"本地语言"中,不能用在.net 和 PCode语言中. 
 
    简介      :  VM宏是TMD中最强的虚拟机保护,安全引擎会在每次保护的时候生成唯一的VM进行保护,所以对逆向尤其起作用,理论上讲只有TMD的安全引擎才能解析代码.缺点就是会影响性能,这个缺点我们要分两方面看,其实影响软件产品性能的最主要因素应该是作者的code能力.诸如大数值计算、处理数据等的代码就不要进行VM宏保护了,适用于敏感算法、方法(函数)等进行保护。 
 
    宏的实现(以delphi为例):  
 
    在需要保护的代码中插入 
    宏开始: 
    asm DB $EB, $10, $57, $4c, $20, $20, $0C, $00, $00, $00, $00, XXXX, $00, $00, $57, $4c, $20, $20 end; 
    标记为“XXXX”的是VM的强度等级,填写数值即可实现,比如 
     asm DB $EB, $10, $57, $4c, $20, $20, $0C, $00, $00, $00, $00, 15, $00, $00, $57, $4c, $20, $20 end;    //强度为15等级 
     asm DB $EB, $10, $57, $4c, $20, $20, $0C, $00, $00, $00, $00, 100, $00, $00, $57, $4c, $20, $20 end;  //强度为100等级 
    标记强度的数值很好找,其他数字都带有$符号,设置强度等级的数值前没有$符号  
 
    宏结束: 
    asm DB $EB, $10, $57, $4c, $20, $20, $0D, $00, $00, $00, $00, $00, $00, $00, $57, $4c, $20, $20 end; 
 
    VM宏设置好后编译源代码,然后用TMD进行保护,可以清楚的看到VM宏被TMD识别出来了。保护程序后就实现对敏感代码的VM保护了,这跟只用TMD加壳安全性大大的提高了,逆向高手看到恐怕都非常头疼了。 
 
    附件是实现VM宏的例子,一个是没有加壳的一个是加壳过的,大家可以下载比较分析一下。例子中保护选项能关的都关了,只留下必须的,虚拟机设置的也是最小选项,大家可以比较加壳前程序脱壳后分析一下,看看保护强度到底有多大(test.bak为源程序,把后缀改成exe就可以了)。 
 
 
test[1].part1.rar
(488.28 KB, 下载次数: 8)
 
 
test[1].part2.rar
(372 KB, 下载次数: 6)
 
转自一蓑烟雨  
 
[ 本帖最后由 杨家将 于 2007-11-7 23:21 编辑 ] |   
 
 
 
 |