注册 登录
编程论坛 汇编论坛

关于花指令的一点疑问

发布于 2010-05-14 09:04, 662 次点击
花指令是指在代码中加入一段无用代码,改变正常代码的位置,用于干扰杀毒软件对病毒特征码的判定。先看未加入花指令的代码:
00403e5d push ebp
...      mov ebp,esp
...      push -1
...      push ...   假设为病毒特征码
...
代码尾
加入花指令后的代码如下:
00403e5d jmp 00417600  替换了原代码中开头的三行代码
00403e62 push ...      假设为病毒特征码
...
代码尾
00417600 inc eax
00417601 dec eax
00417602 push ebp
...      mov ebp,esp
...      push -1
00417607 jmp 00403e62
可见在原代码尾部追加了6行代码,其中
00417600 inc eax
00417601 dec eax 即所谓的花指令,问题是它起作用了吗?没有它,病毒特征码在内存中的位置(00403e62)照样改变!它完全取决于jmp长短,很不解,请高手帮助!
2 回复
#2
ONEPROBLEM2010-05-18 22:39
我不是高手,对这个问题也很不解!!
只能谈一下个人看法,供LZ参考:
可能是因为现在我们所使用的指令体系是不等长的!要在一个代码段中读取出每一条正确的指令,必须从代码的头部开始(或入口处吧);如果在代码中加入了一些垃圾的代码(花指令),那么对反汇编工具就造成了一定的干扰.甚至会反汇编出无法执行下去的指令.
(以下纯粹个人臆测!)
而杀软在查杀过程中,如果对每个程序都从头开始解析每一条指令,那么花费的时间是巨大的.只能通过 比对 特征码的方式吧?至于具体是怎么样的我也不知道了.
#3
ok100fen2010-05-19 13:33
杀毒方式不同,
花指令已经不能用了
卡巴照杀
1