Путеводитель по написанию вирусов под Win32

         

Очищаем 32-х битный регистр и помещаем что-нибудь в LSW


Самый понятный пример - это то, что делают все вирусы, когда помещают количество секций в PE-файле в AX (так как это значение занимает 1 слово в PE-заголовке).

xor eax,eax ; 2 байта mov ax,word ptr [esi+6] ; 4 байта

Или так:

mov ax,word ptr [esi+6] ; 4 байта cwde ; 1 байт

Я все еще удивляюсь, почему все VX-еры используют эти "старую" формулы, особенно, когда у нас есть инструкция 386+, которая делает регистр равным нулю перед помещением слова в AX. Эта инструкция равна MOVZX.

movzx eax,word ptr [esi+6] ; 4 байта

Хех, мы избежали одной лишней инструкции и лишних байтов. Круто, правда?



Содержание раздела