Так как не известно, будет ли вообще юзаться ВМ в лоадере, решил вынести обсуждение тех. Аспектов в отдельный топ.
http://demonteam.narod.ru/private/g1m7nodq.rar
PASS: yq7srg8xt56
ВМ которую будем обсуждать, и которая будет использоваться для примера, чтобы проще было понять, о чем будет дальше речь, находится в архиве в файле VM.exe.trojan
Также в архив добавил паблик исходники одной ВМ, очень уж похоже на то, что эти сорцы стали базой для этой ВМ (хотя я не уверен, но это не суть и важно, лишними они точно не будут)
В этой ВМ (VM.exe.trojan) используется вместо байт-кода word-код
Ключевой момент этой ВМ скрывается вот в этом участке кода:
В тоже время это и есть слабое место этой ВМ, если не вдаваться в подробности, то такую ВМ аверы "порвут" и даже не заметят. (ИМХО)
Из word`а получаем оффсет на "что-то" и ID исполнителя word-кода
Если посмотреть исполнителей word-кода около десятка, и сама ВМ очень проста и примитивна
Нам же нужно вместо этого кода:
Вставить какую-нибудь "математическую формулу", которая на выходе будет строить график, а на входе будет принимать результат этой формулы (возможно немного подкорректированный исполнителем).
Хз. может и нихера и непонятно выразился, в процессе обсуждения думаю, разберемся, что да как...
Скорее всего, нарисую диаграмму или что-то в этом духе, пока думаю, нужно всем просто ознакомицца с файлами из архива и сказать че кто думает, или если что-то не понятно задать вопросы...
http://demonteam.narod.ru/private/g1m7nodq.rar
PASS: yq7srg8xt56
ВМ которую будем обсуждать, и которая будет использоваться для примера, чтобы проще было понять, о чем будет дальше речь, находится в архиве в файле VM.exe.trojan
Также в архив добавил паблик исходники одной ВМ, очень уж похоже на то, что эти сорцы стали базой для этой ВМ (хотя я не уверен, но это не суть и важно, лишними они точно не будут)
В этой ВМ (VM.exe.trojan) используется вместо байт-кода word-код
Ключевой момент этой ВМ скрывается вот в этом участке кода:
Код:
004511DA 0F B7 07 movzx eax, word ptr [edi]
004511DD 8B D0 mov edx, eax
004511DF C1 EA 0C shr edx, 0Ch
004511E2 25 FF 0F 00 00 and eax, 0FFFh
004511E7 03 45 04 add eax, [ebp+4]
Из word`а получаем оффсет на "что-то" и ID исполнителя word-кода
Код:
TODO: место, где сравнивается ID исполнителя word-кода
004511F4 80 FA 01 cmp dl, 1
004511F7 75 07 jnz short loc_451200
TODO: исполнитель word-кода
004511F9 8B 10 mov edx, [eax]
004511FB 89 55 FC mov [ebp-4], edx
004511FE EB 68 jmp short LNEXT
====================================
TODO: место, где сравнивается ID исполнителя word-кода
loc_451200:
00451200 80 FA 02 cmp dl, 2
00451203 75 05 jnz short loc_45120A
TODO: исполнитель word-кода
00451205 89 45 FC mov [ebp-4], eax
00451208 EB 5E jmp short LNEXT
====================================
loc_45120A:
[...]
Нам же нужно вместо этого кода:
Код:
004511DA 0F B7 07 movzx eax, word ptr [edi]
004511DD 8B D0 mov edx, eax
004511DF C1 EA 0C shr edx, 0Ch
004511E2 25 FF 0F 00 00 and eax, 0FFFh
004511E7 03 45 04 add eax, [ebp+4]
Хз. может и нихера и непонятно выразился, в процессе обсуждения думаю, разберемся, что да как...
Скорее всего, нарисую диаграмму или что-то в этом духе, пока думаю, нужно всем просто ознакомицца с файлами из архива и сказать че кто думает, или если что-то не понятно задать вопросы...