怒剑狂花使用说明
本程序支持自定义加花,可以重复加花(需要花指令本身支持),支持双重跳转,支持一些简单的压缩壳,如UPX、Aspack、北斗等,支持附加数据,可以保存自己的个性化设置。值得注意的是,本版本和以前的不兼容,花指令必须重新添加,否则会出现乱码。使用方法和木马彩衣大致相同,这里只演示“自定义”花指令功能的使用。
第一种:只跳一次型的花指令添加法(指的是跳到oep的那一次)
这种花指令一般是以“jmp xxxxxxxx”或者“call xxxxxxxx”结尾(xxxxxxxx就是原OEP地址),这里,我只演示以“jmp xxxxxxxx”结尾的,以vc++6.0这个花指令为例。首先,用od载入一个Microsoft Visual C++ 6.0编写的程序,将这段花指令用od的“二进复制”功能复制到剪贴版中!
其次,打开“怒剑狂花”,点击“设置”-“自定义”,出现下图所示界面,再点“添加”,在编辑框中填写花指令的名称,这个可随意,再把剪贴板中的花指令二进制代码粘贴到图中所示位置,注意要把末尾的空格和中间的换行符删掉,否则可能出错!,当然,也可以点击“自动调整格式”这个选项让程序自动调整,不过,还是手动为好。然后是最关键的一步,数一数跳转的位置。比如这个花指令,跳到oep处的汇编代码是“jmp 004B0F84”,从二进制代码来看,是“E9 4A4FFCFF”。原则上,我们要找OEP地址前的那个值,显然,这里的OEP地址所对应的代码应该是“4A4FFCFF”它前面的第一个字符是“E9”,就是找它了!我们要数一下 “E9”的位置序号,结果数出来是第54,所以在“跳转位置”中填入54。当然,我们也可以让程序给我们完成这项工作,把鼠标光标放在“E9”的E和9中间,在程序的状态栏上会显示“选中字符的序号为:54”,不过,还是自己数一下保险些,因为程序的算法不一定可靠。
不过要注意的是只有用“JMP”跳转的才是找“E9” 的位置,如果你用“CALL OEP地址”这种方式跳转的话就要找“OEP地址”前的那个字符了,一般是“E8”就行了!,依此类推,如果花指令以 MOV EAX, OEP地址
CALL EAX
这种方式结尾的话,就找“OEP地址”前的那个字符,此时一般是“B8”,总之一句话,所谓的跳转位置,就是指花指令中的那个OEP地址的前一个字符在花指令中的序号!
第二种、跳两次的花指令添加法
有人觉得最后那一次跳到oep的语句是免杀的关键之一,想用je/jne这种双重跳转方式,怒剑狂花也是支持的,以下面这个花指令为例:
像这种花指令,跳到oep处的语句是条件跳转方式
这种花指令如何加呢?还是差不多的,把它用od的“二进制复制”功能复制到怒剑狂花中
这里要注意的是跳转位置,它有两处跳转,两处都要填。在这里,第一条跳转指令是 je 0046C3E8 转换成二进制方式是 0F84 D183FEFF,其中D183FEFF是OEP地址,而0F84是操作符,根据我们上面的经验,应该找地址之前最后一个操作符的位置,所以,只要找“84”的序号就可以了,“OF”就不管了。我们数一数“84”在花指令中是第几个,数出来是19。同理,第二条跳转指令是 jne 0046C3E8 转换成二进制方式是 0F85 CB83FEFF,只要找“85”的序号就可以了,数得的结果是25。怎么填呢?很简单,把19和25用加号连起来就可以了,程序会自动识别的!其它的地方和第一种是一样的,就不多说了!
使用方法就介绍到这里,只要大家记住跳转位置就是指花指令中的那个OEP地址的前一个字符在花指令中的序号应该就会用了。本软件自带了几条花指令,大家可以把自己的花指令添加进去,网上有专门的抓花教程,照着做就行了。