Показаны сообщения с ярлыком reversing. Показать все сообщения
Показаны сообщения с ярлыком reversing. Показать все сообщения

понедельник, 23 декабря 2013 г.

Статический распаковщик для полиморфных пакеров

Собственно давно уже пора вытащить на свет божий набор шагов, которые должен проделать статический распаковщик для полиморфных пакеров.

воскресенье, 30 июня 2013 г.

Тестирование протекторов на предмет обработки C++ программ

Этот пост о созданном мною проекте в BitBucket. Проект нацелен на тестирование виртуализации кода это фича современных протекторов. О том для чего нужна виртуализация кода можно почитать в описании продукта Code Virtualizer компании Oreans.

вторник, 28 мая 2013 г.

Как отключить синхронизацию времени для виртуальной машины VmWare

Иногда при изучении компьютерных вирусов требуется отключить синхронизацию времени. Дело в том что некоторые экземпляры malware работают в пределах небольшого промежутка времени, к примеру 3 недели. Нам бы хотелось перед выпуском лекарства суметь за это время изучить работу файла достаточно хорошо, иногда этого промежутка времени может быть мало. 

понедельник, 8 августа 2011 г.

OllyDbg 2.x теперь с плагинами

Наверное все привыкли, что олька в чем-то не удобно, а в чем-то это самый удобный инструмент. Меня как-то не вставляла ветка 1.x и я ждал когда же будут плагины к 2-ке! Вот! Вот оно свершилось, теперь оно с плагинами ! ;)))

понедельник, 14 марта 2011 г.

Видосы для реверсеров

Нашел интересный ресурс, где есть видосы связанные с информационной безопасностью и реверсингом. Вот securitytube

понедельник, 13 сентября 2010 г.

Забавное нововведение в использовании реестра MS Windows

Вобщем, теперь можно менять способ поиска DLL-ок, но об этом лучше почитать тут. Фактически означает еще одну "возможность" ;)

среда, 8 сентября 2010 г.

Меня догнал Python

Итак, как дикая смесь ленивого + системаного программиста + реверсера мне всегда было любопытны технологиии автоматизирующие реверс и поиск чего-либо для решения моих задач в кратчейшее время или чтобы само искалось ))) Но в этот раз технологии, а точнее язык, сам меня догнал и четко сказал мне "Я Python! Меня надо учить!" и сколько бы не убегал от его эгоцентричности, что мол он сказал и ... не убежал. Он твердо сегодня мне заявил: "А теперь я еще и в WinDbg"

О чем это я ? О том что скриптовый язык Python теперь почти в любом в более-менее значимом реверс-инструменте:

суббота, 4 сентября 2010 г.

Создание нового SVN-проекта на кряклаб

Ввиду того что команда cracklab.ru подняли SVN сервак, то я тут же воспользовался этой возможностью ) Поэтому теперь, все мои публичные исходники будут только тут .

Цель проекта:
Сбор существующего или разработка нового кода облегчающего написание приложений или исполнимых модулей, т.е. драйверов или динамических библиотек.

Пока еще все конечно сырое, но в последствии будет куда лучше ;)

среда, 1 сентября 2010 г.

Упаковщики, крипторы, протекторы

Громадное количество реверсеров рано или поздно могут осознать, что им почему-то вдруг стал нужен упаковщик\криптор\протектор. Наступает такое прозрение по разным причинам, вероятно малвару по прятать, может быть это их новая развивающая задача, либо защита софта, но хотел бы отметить последних лиц. Да, речь пойдет о тех людях, которые в силу каких-либо причин решили писать свой протектор и им почему-то не подошли экземпляры существующих на рынке и в свободном доступе протекторы.

четверг, 26 августа 2010 г.

Плагины к Hiew

 Итак, новости которые меня весьма поразили ;)
  1. Hiewplus, ссылка на hiewplus
  2. PyHiew, ссылка на pyhiew 
  Первый представляет собой приложение win32 и позволяет попытаться открыть процессы в стандартном Hiew-шном интерфейсе.
  Второй же служит для добавления возможности написания скриптов на Python и использовать их к открытому в Hiew файле.

четверг, 12 августа 2010 г.

Перевод "%UPX_SOURCE%\upx-3.05-src\doc\filter.txt"

Этот документ поясняет концепцию "фильтрация" в UPX. В основном фильтрация это метод препроцессинга данных, который может улучшить коэффициент сжатия файлов UPX-ом.

понедельник, 9 августа 2010 г.

Моя первая статья

На прошлой неделе вышла моя статья с названием "Некоторые приёмы статического анализа кода из арсенала вирусного аналитика" в журнале "No bunkum". Статья посвящена некоторым полезным приемам использования реверс-тулзы Hiew, которые помогают повысить эффективность и качество работы при анализе исполнимых файлов.
Прошу не судить строго и учесть, что это мой первый опыт написания чего-либо на паблику. Хотя нет, вру,  второй ))) Но между первым и вторым был слишком большой промежуток и можно считать эту статью условно первым моим опытом )

Статью можно  найти тут .

P.S.:
Для справки, первой была статья "Алгоритм шифрования ГОСТ 28147-89. Метод простой замены."  на  wasm.ru , по этой ссылке можно перейти к статье

понедельник, 26 июля 2010 г.

Подмена dll зная CLSID КоСервера

Исследуя недавно Windows Messenger, задался вопросом: "а как внедрить в его адресное пространство процесса свою dll ?". Именно об этом эта заметка:

понедельник, 12 июля 2010 г.

Создание заготовки распакованного файла

Заметка для тех кто по каким-либо причинам заинтересовался разработкой статических распаковщиков.

понедельник, 7 июня 2010 г.

Полиморфные объекты от Microsoft

Решил сегодня поглядеть внутрь Win32k.sys через Hiew. Этот файл у меня располагается по пути:
c:\Windows\winsxs\amd64_microsoft-windows-win32k_31bf3856ad364e35_6.1.7600.16385_none_14e86b61b437d067\win32k.sys

Система win7 x64 и увидел:

.FF0C3761: 666666666666660F1F840000000000 nop [rax][rax][0]
.FF0C3770: 66666690 nop
.FF0C3774: 666690 nop

Удивлению нет предела )))

Причем здесь "полиморфизм"? А при том, что если вы детектили полиморфные объекты, то вы должны знать о способе детекта по мусору. Напомню, что суть детекта заключается в подсчете подозрительных(уникальных) инструкций и выдаче статуса "обнаружен", если их количество превысило допустимое значени. Думаю, теперь на лицо "подозрительная" инструкция nop :)

четверг, 27 мая 2010 г.

Дружба VirtualKD и WinXP SP3 внутри VMware

Сегодня удалось подружить VirtualKD и WinXP SP3 поставленную в качестве гостевой системы внутри VMware.

Сначала коротко о том, что же такое VirtualKD ?
Если вы перейдете по следующей ссылке, то вы можете прочесть все сами, но приведу слова тут:

In English:
Welcome to the VirtualKD homepage. This project allows speeding up (up to 45x) Windows kernel module debugging using VMWare and VirtualBox virtual machines. If you have ever noticed that the standard debugging over virtual COM port is irritatingly slow, this software is for you!

In Russian(от меня)
Добро пожаловать на домашнюю страничку VirtualKD. Это проект позволяет провысить скорость(до 45x) отладки модулей ядра Windows используя виртуальные машины VMware и VirtualBox . Если Вы когда-либо замечали что стандартная отладка через виртуальный COM порт раздражающе медленная, то это программное обеспечение для Вас!

Думаю теперь вам цель этого проекта понятно и можно приступить к описанию установки, настройки.

1) Установить собственно Windows внутрь VMware
2) Каким-либо способом передать архив дистрибутива внутрь гостевой системы
3) Запустить "target\vminstall.exe" внутри этой гостевой системы
4) Запустить на хостовой, т.е. там где стоит VMware файл "virtualkd\vmmon.exe"
5) Через кнопку "Debugger path" указать путь к отладчику в проге vmmon.exe
6) Перезагрузить гостевую с выбором варианта отладочной загрузки системы
7) После выбора варианта загрузки, система остановится и не будет грузиться. Это нормально!!!
Для этого в загруженном отладчике нужно сказать "ГОУ", для WinDBG это команда "g" в его командной строке и возможно придется два раза, пока не появится "debugging running"
8) Система загрузилась

Теперь, предпочитаю "сохраниться" ;))) Для этого надо перейти в WinDBG и выбрать в верхнем меню Debug->break. После этого гостевая "замрет" и можно нажать кнопку "save snapshot". В комантариях к снэпшоту укажите что хотите не забыть в будущем, чтобы потом не тупить )

воскресенье, 16 мая 2010 г.

Развивая Hiew

Сбылась, мечта идиота! :))) Это я о том, что и у меня есть проект, в который можно вкладывать душу! ;) Ну а теперь все по порядку.

Давным-давно, у меня была мечта учавствовать в проекте развития программного средства или системы, которое используют очень множество людей. Очень долго зрела идея помогать множеству людей, быть действительно полезным и нужным, чтобы мой труд приносил пользу как можно большему количеству народу. Шло время, а возможности реализации этой идеи все не представлялось. Буквально недавно до меня дошло как же осуществить мою затею :)

До устройства на постоянную работу в ЗАО "Лабораторию Касперского"(далее ЛК) вирусным аналитиком, мне приходилось сталкиваться с анализом исполнимых файлов формата PE исключительно в личных целях, мне было интересно как устроены защиты ПО, как работают вирусы. В то время анализировал файлы только в основном с помощью небольшого множества инструментов, туда входили Hiew, OllyDebugger, PE-Tools, WinHex. Думаю, вы заметили что я не упомянул IDA Pro, потому что в то время ее не использовал, в силу сложности ее освоения, также не использовал и WinDbg. С течением времени, будучу сотрудником ЛК освоил множество других инструментов, поменялось почти полностью точка зрения на техники исследования. Страшно представить, какое количество файлов пересмотрел, проанализировал, сколько всего узнал работая вирусным аналитиком. Среди большого количества нового, интересного и полезного выделяется одна маленькая утиллита, весом не больше 200 КБ и называется она "Hiew". Именно о ней говорит множество системных программистов и реверсеров, потому что она имеет довольно простой интерфейс и множество весьма полезных возможностей.

Идея заключается в том, что не только я выделяю Hiew, но и множество других вирусных аналитиков. Принимать участие в разработке плагинов, а также написание документирущих возможности инструмента.
Именно этим и буду заниматься в ближайшее время, писать статьи и разрабатывать плагины.

Приведу, пиар-инфу ;)

Ссылка на домашнюю страницу на русском
Ссылка на интернет-магазин

На данный, момент разработал плагин "mbytes2csrc", цель которого выделенные байты в режимах Hex, Code скопировать в буфер обмена оформленых в виде исходников на Си.

суббота, 8 мая 2010 г.

Выдираем из Hiew-листинга байты инструкций

Получил тут листинг, который ребята получили в результате копирования в режиме Code из Hiew. Чтобы удобней было анализить, т.е. юзать IDA pro и ставить коменты в ходе анализа, то написал небольшой скрипт на Perl:

extract_code.pl:


#!/usr/bin/perl
use strict;
use warnings;

sub ParseFile
{
open (SRCFILE, $_[0]) or die "Can't open source file";
open (DESTFILE, ">$_[1]") or die "Can't create destination file";

while()
{
chomp;
if(/(\.[A-F0-9]{8}: )([A-F0-9]+)(.*)/)
{
my $bin = pack('H*', $2);
syswrite DESTFILE, $bin;
}
}

close(DESTFILE);
close(SRCFILE);
}

ParseFile($ARGV[0],$ARGV[1]);


extract_code.pl usage:
extract_code.pl

Хавает листинг вида:
.0043F3A5: 74F4 jz 00043F39B -- 1
.0043F3A7: 8D441812 lea eax,[eax][ebx][012]
.0043F3AB: EB12 jmps 00043F3BF -- 2
.0043F3AD: 8D742600 lea esi,[esi][0]

среда, 7 октября 2009 г.

Obfuscated objects. Names for and URLs to Articles only

Тут будут публиковать ссылки на источники для тех, кто интересуется устройством вредоносных объектов содержащих полиморфный и метоморфный код, а также методами борьбы с подобными исчадиями ада.

[!!!]Будьте осторожны, по ссылкам может оказаться вредоносная программа, поэтому лучше скачайте wget'ом и посмотрите что залилось в Hiew и только потом уже юзайте.

На английском:


  1. Stephen Pearce. "Viral Polymorphism" . vx.netlux.org/lib/asp00.html
  2. Quazah. "Do polymorphism". http://vx.netlux.org/lib/static/vdat/tumisc76.htm
  3. Quazah. "Polymorphism and grammars" . vx.netlux.org/lib/static/vdat/tupolgra.htm
  4. Lord Julus. "Polymorphism - analysys on the decryptor generator" . vx.netlux.org/lib/static/vdat/tupolydg.htm
  5. Arun Lakhotia, Moinuddin Mohammed . "Improsing Order on Program Statements to Assist Anti-Virus scanners" . vx.netlux.org/lib/aal01.html
  6. "Understanding and Managing Polymorphic Viruses" . www.symantec.com/avcenter/reference/striker.pdf
  7. Rou Ando. "Paralell analysis of polymorphic viral code using automated deduction system" . www2.nict.go.jp/y/y212/ruo/pdfs/SNPD07_RuoAndo.pdf
  8. Peter Szor, Peter Ferrie . "Hunting for metamorphic" . http://www.symantec.com/avcenter/reference/hunting.for.metamorphic.pdf
  9. Evgenios Konstaninou . "Metamorphic virus: Analysis and detection" . http://www.ma.rhul.ac.uk/static/techrep/2008/RHUL-MA-2008-02.pdf


На русском:

  1. Billy Bolcebu. "Путеводитель по написанию вирусов: 7. Полиморфизм" . www.wasm.ru/print.php?article=1006009
  2. Billy Bolcebu. "Путеводитель по написанию вирусов под Win32: 9. Win32-Полиморфизм" . www.wasm.ru/print.php?article=vgw09
  3. Trigger/SLAM. "Путеводитель идиота по написанию полиморфных движков" . www.wasm.ru/print.php?article=1006100
  4. slon . "Полиморфизм. Новые техники" . www.wasm.ru/print.php?article=polimorf
  5. slon . "Построение простого EPO-мотора" . www.wasm.ru/print.php?article=epoengine
  6. Billy Bolcebu . "Метаморфизм (часть1)" . www.wasm.ru/print.php?article=mmei
  7. Billy Bolcebu ."Метаморфизм (часть2)" . www.wasm.ru/print.php?article=mmeii
  8. Mentall Driller. "Создание продвинутых полиморфных движков" . www.wasm.ru/print.php?article=advpoly
  9. zOmbie . "Метаморфизм. Часть 1" . z0mbie.daemonlab.org/meta1.html

среда, 12 августа 2009 г.

Перехват Win32 API функций в привязанных PE-файлах

Цель:
Показать два вида хука в привзязанных по импорту PE32-файлах.
Задачи:
  • Пояснить что такое привязанный файл;
  • Показать способ создания привязанного файла;
  • Описать установку хука функций в привязанных файлах;
  • Перечислить условия срабатывания Хук-функции;
  • Указать на важность обнаружения таких хуков в файлах;