Инструменты:
………………
HIEW 6.8x
PE Tools
PEiD 0.92
UPX 1.25
Some brains
………………
Всё, что написано ниже, предоставлено чисто для ознакомления. Я не несу ответственности за противозаконное использование материала.
………………
Зачем это пишется? Просто так.. Может вы скажите что умеете и так прятать любой вирус с помощью … ASProtect? Xtreme-Protector? .. or any protector? а может с помощью Afx!AVSpoffer? Да, конечно неплохо получается, пожав вирус получаем:
File size: 17KB compressed to 102KB, Ratio: 602,9%
Как круто =) да.. Об X-protector’e я уже молчу, там ещё круче.
Спуф от fij.. Скока мусора вставляется за один подход? А чтоб от веба спрятать вам придётся жать кнопку около 12-и раз. После этого шанс выжить у файла как – то резко уменьшается
. Тем более сейчас уже не актуально его использовать, по моему мнению.
В свою базу его не добавил, наверное, самый ленивый AV(Может это не так?). Т.к. сигнатуры (далее сигны -> последовательность байт) во все файлы начиная с entry point вставляет одинаковые.. Например:
Если не выбирать никакие опции получается:
CODE
60 55 81 F9 ?? 00 00 00 33 C0 55 54 81 F9 ?? 00 00 00 58 59 59 81 F9
Crypt DS:seg > 60 B8 00 ?? ?? 00 33 C9
random alghr > 60 55 90 90 81 F9 ?? 00 00
Другие опции пока ещё не доступны. Хотя мне было бы интересно посмотреть на “crypt RSRC”.
Ну а на счёт крипторов, которые вроде размер не увеличивают, да можете ими пользоваться, пока они не дойдут до суппорт-центра AV. А ребята там очень живо работают ?. Если попалится сама прожка, то вместе с ней и все чистяки.
Это я всё к тому, что зачем юзить какие - то левые проги, когда самому можно руками всё сделать. Уж тем более жать протекторами, которые совсем не для этого предназначены.
В данной статье я хочу показать вам на примере, как спрятать вирус от любых AV. Главное как можно меньше внести изменений в файл, мы же не собираемся шифровать весь файл, просто пара левых инструкций не помешает. Главное, чтоб работоспособность сохранилась, ведь нам не нужен дохлый файл
. Проверять я буду этими антивирами: KAV 5.0, Dr.WEB 4.32b, McAfee Virus Scan 8.0 #41. На остальных не имеет смысла тестить
.
Итак, как же всё - таки можно спрятать вирус? На самом деле всё очень просто… на первый взгляд
. Практически все AV начинают сканить файл с точки входа. Далее устанавливают, упакован ли файл? Если да, то следует унпак, нет продолжают дальше...( проверяя валидный ли это PE файл, ведь у нас exe ) Именно здесь где то и есть наша сигна, по которой антивир палит вирус. Это не всё конечно, есть ещё уникальные сигны, дабы каждый файл не палился -). Если знакомых сигн нету, AV начинает эмулить пару инструкций, проверяя не хотят ли его наепать. Самый нормальный эвристик у веба.. имеет глубину 12 уровней. Мда… McAfee делает совершенно иначе, как мне показалось. Похоже, что ему на EP вообще посрать как - то. Сигна есть где - то в .data или в .rsrc может быть. Представляет собой некий кусок данных. Изменив один байт, файл больше не обнаруживался
. Здесь как раз сложно найти эту сигну.
Дак вот.. нам надо подправить пару байт так, чтобы наша хорошая програмулька не упала и не палилась.
Естественно вставляемый нами код будет представлять мусор и больше ничего.
Мы не будем использовать умные фичи типа шифрования, т.к. это здесь не нужно.
Для начала возьмем свежескомпиленный pinch.exe. Будем прятать его.
Что бы можно было на себе тестить в настройках я выбрал: генерить всё в passwords.txt.
И ещё.. я не тыкнул пимпу “Encrypt”, это для шифрования инфы и паковку FSG 1.33, какой то извратный паковщик +).
Нусс.. открываем в hiew32.exe наш вир. Ну тут всё как обычно идёт pe header.. секции и т.д..
Заползём ка в третью секцию. Жмём F8 -> F6 -> .data -> [enter].
http://www.web-hack.ru/images/forum/virus/01.png
И что мы видим? упс.. наши настройки.
http://www.web-hack.ru/images/forum/virus/02.png
Естественно просто так их нельзя оставить. Но сначала надо немного поковырять Entry Point..
Идём на EP. Жмём F8 -> F5 затем ещё [enter] нажмите, будем вручную вбивать асм инструкции. Быстро записываем этот адрес. У меня: 403D8A <- OEP.
http://www.web-hack.ru/images/forum/virus/03.jpg
Сейчас мы немного побалуемся с точкой входа.
Листаем немного вниз, ищём кучу нулей. Раз 9 стоит нажать page down.
Встаем на любое место и .. Откуда эти нули?
Это обычная оптимизация для процессоров x86. Компилятор размещает данные по адресам, кратным величине выравнивания. В общем это как раз для нас
.
Введём самое простое, что приходит на ум ( F3 -> F2 ):
CODE
pushad; сохраняем регистры
mov ecx, 125; заносим какое – то число
sub ecx, 110; чего – то вычитаем ..
xchg ecx, eax
xor eax, eax; обнуляем eax
xor ecx, ecx; обн. ecx
pop eax
pop ecx
mov eax, 403D8A; в eax наш OEP
mov ecx, 9
sub eax, ecx
add eax, 9
jmp eax; прыжок на OEP
Очень примитивно..
Таких переходов можно делать сколько угодно, лишь бы места хватило, а его как видно очень даже много.
Что мы вообще сделали? Сохранили регистры, то, что идёт до [pop eax] всё мусор.. и после тоже. В eax занесли наш OEP, в ecx пихнули 9, Вычли из eax, ecx. Прибавили к eax, 9 и получился OEP. Дальше понятно.. просто джамп.
Что очень просто? Ну а что.. и этого хватит на первое время. Может в будущем такие фичи будут сечь Антивиры. Хмм.. было бы круто -)..
Такс.. всё это дело вбили, жмём [Esc], F9 для сохранения.
Получилось что – то типа того:
http://www.web-hack.ru/images/forum/virus/04.jpg
Теперь пихаем наш файл в PE Tools (я использую PE Tools v1.5 Xmas Edition - by NEOx) .
Хотя EntryPoint можно менять сразу в hiew, но я чё - то не помню как там было
.. и флаги секций тоже.. Открываем вир с помощью пе эдитора. Жмём “Optional Header” и там смотрим Entry Point. Вот здесь нам нужно положить новый адрес. Я начал вбивать с адреса 404178. Поэтому из 404178 вычитаем image base (400000 – виртуальный адрес в памяти, начиная с которого программа загружена в память), получается 00004178. Вписываем новый адрес и “Ok”. Запустим наш exe.. работает?
.. cool. Нет? Хмм.. читай всё сначала.
Проверим.. значит KAV и Веб не палят, в отличии от McAfee -).
Что делать?.. пакнем наверно. Я возьму UPX 1.25, простенький и мощный паковщик.
Сначала посмотрим что показывает PEiD…> Not a valid PE file. %)
Не очень хорошо, после паковки упиксом такого файла, он быстренько сдохнет. В этом плане ASPack более неприхотлив. Не будем далеко ходить, воспользуемся плугом для пеида.. Rebuild PE (http://www.textsoft.nm.ru/RebuildPE.dll). Теперь что у нас…> Nothing found *. Так то лучше ..-). Теперь пакуем UPX’oм. Получилось 9 216 byte. Просто монстр какой – то
.
Сейчас задача внести пару изменений, чтобы анализатор не определял упикс, следовательно, не смог его распаковать.
Засовываем опять вир в hiew, [enter]. Листаем немного вниз и видим такое:
CODE
000003D0: 00 00 00 00-00 00 00 00-00 00 00 31-2E 32 35 00 1.25
000003E0: 55 50 58 21-0C 09 02 0A-6A D5 0F A0-BC 8C 4F 48 UPX!+0O0j-0а-МOH
000003F0: F8 64 02 00-BC 1A 00 00-E7 42 00 00-26 00 00 94 °dO -> чB & Ф
Сигны UPX. Недолго думая затираем их, F3 и вставляем какой нить мусор, F9 – сохраняем.
Потом [enter], F8 > F5 и мы на EP:
CODE
.00428AC0: 60 pushad <- OEP
.00428AC1: BE00704200 mov esi,000427000 -----^ (4)
.00428AC6: 8DBE00A0FDFF lea edi,[esi][0FFFDA000]
.00428ACC: 57 push edi
.00428ACD: 83CDFF or ebp,-001;"O"
.00428AD0: EB10 jmps .000428AE2 -----v (5)
.00428AD2: 90 nop
.00428AD3: 90 nop
Проделаем тоже самое, что и с непакованным вирем. Листаем вниз.. и видим кучу нулей
.
Встаём на любой адрес, F3 и сначала вводим опкоды: 74 00, затем на следующей строчке: E9, F9, пока сохраним.
CODE
00428C21: 7400 je .000428C23 -----v (3)
00428C23: E900000000 jmp .000428C28 -----v (4)
Это просто трюк, для обхода PEiD …> PE Pack 1.0 -> ANAKiN.
Дальше вводим уже знакомое (F3 > F2):
CODE
pushad
mov ecx, 428AC0; в ecx OEP
mov eax, 1
dec eax
mov eax, ecx
jmp eax
Вот и всё.. теперь опять вир пихаем в PE Tools, меняем Entry Point на новый адрес, с которого вы начали вводить: 74 00 и т.д. У меня 00428C21 – image base = 00028C21.
По пути заходим в “Sections”, затираем названия секций и меняем характеристики на C0000080. Запускаем наш вир… и он работает
.. Проверяем антивирами.. все в дауне, включая McAfee
. Да, по ходу дела бекапте пинч, а то маловероятно, что с первого раза всё получиться.. хотя может быть.
Конец близок. Попробуем расунпачить файл.
http://www.web-hack.ru/images/forum/virus/05.jpg
А затем …
http://www.web-hack.ru/images/forum/virus/06.jpg
Хы.. крута!
.. попробуйте любыми автораспаковщиками.. у вас ничего не выйдет.
Не стоит думать, что это 100% защита, всё это дело распаковывается руками за одну минуту.
Вот так вот просто можно обойти всех антивирусов.
Если следовать этому плану, возможно будет спрятать любой вирус. Хотя бывает иногда, ну прям палится и всё..
. В этом случае придётся поискать сигну, отрезая секции например.
Дальше уже по обстоятельствам разбираться. Но не стоит пользоваться левыми прогами, для прятанья. Чистяки получаются у всех одинаковые, прога действует по определённому алгору, кот. можно подсмотреть
и никакой полиморфизм не поможет, если тока не придумывать что – то сложное (свой движок).. хотя врятли. А так руками каждый делает свой уникальный чистяк (если не будете вставлять одинаковый код, придумайте что – нить своё).
Никто не гарантирует, что всё получится с первого раза. Для этого нужно набивать руку. Таким образом, на один чистяк уходит порядка 5 мин. Ну максимум 10. Выбирать способ конечно вам, настаивать я не буду… Я лишь высказал своё мнение.
:punk: :punk: :yahoo:
………………
HIEW 6.8x
PE Tools
PEiD 0.92
UPX 1.25
Some brains
………………
Всё, что написано ниже, предоставлено чисто для ознакомления. Я не несу ответственности за противозаконное использование материала.
………………
Зачем это пишется? Просто так.. Может вы скажите что умеете и так прятать любой вирус с помощью … ASProtect? Xtreme-Protector? .. or any protector? а может с помощью Afx!AVSpoffer? Да, конечно неплохо получается, пожав вирус получаем:
File size: 17KB compressed to 102KB, Ratio: 602,9%
Как круто =) да.. Об X-protector’e я уже молчу, там ещё круче.
Спуф от fij.. Скока мусора вставляется за один подход? А чтоб от веба спрятать вам придётся жать кнопку около 12-и раз. После этого шанс выжить у файла как – то резко уменьшается
В свою базу его не добавил, наверное, самый ленивый AV(Может это не так?). Т.к. сигнатуры (далее сигны -> последовательность байт) во все файлы начиная с entry point вставляет одинаковые.. Например:
Если не выбирать никакие опции получается:
CODE
60 55 81 F9 ?? 00 00 00 33 C0 55 54 81 F9 ?? 00 00 00 58 59 59 81 F9
Crypt DS:seg > 60 B8 00 ?? ?? 00 33 C9
random alghr > 60 55 90 90 81 F9 ?? 00 00
Другие опции пока ещё не доступны. Хотя мне было бы интересно посмотреть на “crypt RSRC”.
Ну а на счёт крипторов, которые вроде размер не увеличивают, да можете ими пользоваться, пока они не дойдут до суппорт-центра AV. А ребята там очень живо работают ?. Если попалится сама прожка, то вместе с ней и все чистяки.
Это я всё к тому, что зачем юзить какие - то левые проги, когда самому можно руками всё сделать. Уж тем более жать протекторами, которые совсем не для этого предназначены.
В данной статье я хочу показать вам на примере, как спрятать вирус от любых AV. Главное как можно меньше внести изменений в файл, мы же не собираемся шифровать весь файл, просто пара левых инструкций не помешает. Главное, чтоб работоспособность сохранилась, ведь нам не нужен дохлый файл
Итак, как же всё - таки можно спрятать вирус? На самом деле всё очень просто… на первый взгляд
Дак вот.. нам надо подправить пару байт так, чтобы наша хорошая програмулька не упала и не палилась.
Естественно вставляемый нами код будет представлять мусор и больше ничего.
Мы не будем использовать умные фичи типа шифрования, т.к. это здесь не нужно.
Для начала возьмем свежескомпиленный pinch.exe. Будем прятать его.
Что бы можно было на себе тестить в настройках я выбрал: генерить всё в passwords.txt.
И ещё.. я не тыкнул пимпу “Encrypt”, это для шифрования инфы и паковку FSG 1.33, какой то извратный паковщик +).
Нусс.. открываем в hiew32.exe наш вир. Ну тут всё как обычно идёт pe header.. секции и т.д..
Заползём ка в третью секцию. Жмём F8 -> F6 -> .data -> [enter].
http://www.web-hack.ru/images/forum/virus/01.png
И что мы видим? упс.. наши настройки.
http://www.web-hack.ru/images/forum/virus/02.png
Естественно просто так их нельзя оставить. Но сначала надо немного поковырять Entry Point..
Идём на EP. Жмём F8 -> F5 затем ещё [enter] нажмите, будем вручную вбивать асм инструкции. Быстро записываем этот адрес. У меня: 403D8A <- OEP.
http://www.web-hack.ru/images/forum/virus/03.jpg
Сейчас мы немного побалуемся с точкой входа.
Листаем немного вниз, ищём кучу нулей. Раз 9 стоит нажать page down.
Встаем на любое место и .. Откуда эти нули?
Это обычная оптимизация для процессоров x86. Компилятор размещает данные по адресам, кратным величине выравнивания. В общем это как раз для нас
Введём самое простое, что приходит на ум ( F3 -> F2 ):
CODE
pushad; сохраняем регистры
mov ecx, 125; заносим какое – то число
sub ecx, 110; чего – то вычитаем ..
xchg ecx, eax
xor eax, eax; обнуляем eax
xor ecx, ecx; обн. ecx
pop eax
pop ecx
mov eax, 403D8A; в eax наш OEP
mov ecx, 9
sub eax, ecx
add eax, 9
jmp eax; прыжок на OEP
Очень примитивно..
Таких переходов можно делать сколько угодно, лишь бы места хватило, а его как видно очень даже много.
Что мы вообще сделали? Сохранили регистры, то, что идёт до [pop eax] всё мусор.. и после тоже. В eax занесли наш OEP, в ecx пихнули 9, Вычли из eax, ecx. Прибавили к eax, 9 и получился OEP. Дальше понятно.. просто джамп.
Что очень просто? Ну а что.. и этого хватит на первое время. Может в будущем такие фичи будут сечь Антивиры. Хмм.. было бы круто -)..
Такс.. всё это дело вбили, жмём [Esc], F9 для сохранения.
Получилось что – то типа того:
http://www.web-hack.ru/images/forum/virus/04.jpg
Теперь пихаем наш файл в PE Tools (я использую PE Tools v1.5 Xmas Edition - by NEOx) .
Хотя EntryPoint можно менять сразу в hiew, но я чё - то не помню как там было
Проверим.. значит KAV и Веб не палят, в отличии от McAfee -).
Что делать?.. пакнем наверно. Я возьму UPX 1.25, простенький и мощный паковщик.
Сначала посмотрим что показывает PEiD…> Not a valid PE file. %)
Не очень хорошо, после паковки упиксом такого файла, он быстренько сдохнет. В этом плане ASPack более неприхотлив. Не будем далеко ходить, воспользуемся плугом для пеида.. Rebuild PE (http://www.textsoft.nm.ru/RebuildPE.dll). Теперь что у нас…> Nothing found *. Так то лучше ..-). Теперь пакуем UPX’oм. Получилось 9 216 byte. Просто монстр какой – то
Сейчас задача внести пару изменений, чтобы анализатор не определял упикс, следовательно, не смог его распаковать.
Засовываем опять вир в hiew, [enter]. Листаем немного вниз и видим такое:
CODE
000003D0: 00 00 00 00-00 00 00 00-00 00 00 31-2E 32 35 00 1.25
000003E0: 55 50 58 21-0C 09 02 0A-6A D5 0F A0-BC 8C 4F 48 UPX!+0O0j-0а-МOH
000003F0: F8 64 02 00-BC 1A 00 00-E7 42 00 00-26 00 00 94 °dO -> чB & Ф
Сигны UPX. Недолго думая затираем их, F3 и вставляем какой нить мусор, F9 – сохраняем.
Потом [enter], F8 > F5 и мы на EP:
CODE
.00428AC0: 60 pushad <- OEP
.00428AC1: BE00704200 mov esi,000427000 -----^ (4)
.00428AC6: 8DBE00A0FDFF lea edi,[esi][0FFFDA000]
.00428ACC: 57 push edi
.00428ACD: 83CDFF or ebp,-001;"O"
.00428AD0: EB10 jmps .000428AE2 -----v (5)
.00428AD2: 90 nop
.00428AD3: 90 nop
Проделаем тоже самое, что и с непакованным вирем. Листаем вниз.. и видим кучу нулей
Встаём на любой адрес, F3 и сначала вводим опкоды: 74 00, затем на следующей строчке: E9, F9, пока сохраним.
CODE
00428C21: 7400 je .000428C23 -----v (3)
00428C23: E900000000 jmp .000428C28 -----v (4)
Это просто трюк, для обхода PEiD …> PE Pack 1.0 -> ANAKiN.
Дальше вводим уже знакомое (F3 > F2):
CODE
pushad
mov ecx, 428AC0; в ecx OEP
mov eax, 1
dec eax
mov eax, ecx
jmp eax
Вот и всё.. теперь опять вир пихаем в PE Tools, меняем Entry Point на новый адрес, с которого вы начали вводить: 74 00 и т.д. У меня 00428C21 – image base = 00028C21.
По пути заходим в “Sections”, затираем названия секций и меняем характеристики на C0000080. Запускаем наш вир… и он работает
Конец близок. Попробуем расунпачить файл.
http://www.web-hack.ru/images/forum/virus/05.jpg
А затем …
http://www.web-hack.ru/images/forum/virus/06.jpg
Хы.. крута!
Не стоит думать, что это 100% защита, всё это дело распаковывается руками за одну минуту.
Вот так вот просто можно обойти всех антивирусов.
Если следовать этому плану, возможно будет спрятать любой вирус. Хотя бывает иногда, ну прям палится и всё..
Дальше уже по обстоятельствам разбираться. Но не стоит пользоваться левыми прогами, для прятанья. Чистяки получаются у всех одинаковые, прога действует по определённому алгору, кот. можно подсмотреть
Никто не гарантирует, что всё получится с первого раза. Для этого нужно набивать руку. Таким образом, на один чистяк уходит порядка 5 мин. Ну максимум 10. Выбирать способ конечно вам, настаивать я не буду… Я лишь высказал своё мнение.
:punk: :punk: :yahoo: