Новые публикации

Заголовок
Оценка
Ответов
Последнее сообщение

    Кодирование Хаффмана (часть 3)

    24 авг 2017

    Кодирование Хаффмана. Часть 3 Вступление В прошлой части мы рассмотрели программу на C++, сжимающую данные. Кроме этого, автор соизволил признаться, что написанная программа не является идеалом, и что при определённых наборах частот сжатие будет неверным. Эта статья посвящена распаковке сжатого файла при помощи программы на ассемблере и дерева, построенного программой сжатия. Опять же следует оговориться: программа не рассчитана на распаковку гигантских файлов, но её в любой момент можно...
    Читать далее
    Лайков +2 Комментариев2 Просмотров4.499

    Кодирование Хаффмана (часть 1 и 2)

    20 авг 2017

    Кодирование Хаффмана. Часть 1. Вступление Здравствуй, дорогой читатель! В данной статье будет рассмотрен один из способов сжатия данных. Этот способ является достаточно широко распространённым и заслуживает определённого внимания. Данный материал рассчитан по объёму на три статьи, первая из которых будет посвящена алгоритму сжатия, вторая - программной реализации алгоритма, а третья ― декомпрессии. Алгоритм сжатия будет написан на языке C++, алгоритм декомпрессии ― на языке Assembler....
    Читать далее
    Лайков +2 Комментариев1 Просмотров28.585

    Введение в реверсинг с нуля используя IDA PRO. Часть 12.

    13 авг 2017

    Хорошо, чтобы не было скучно, мы будем объединять теорию и некоторые упражнения, в этом случае, это другая программа скомпилированная мной, которая называется TEST_REVERSER.EXE и которая очень простая, но она поможет нам увидеть некоторые новые вещи в статическом реверсинге и которые мы проверим в отладчике. Если мы запустим программу вне IDA, то мы увидим. [ATTACH] Нас просят ввести имя пользователя и затем пароль, а потом программа говорит нам, что мы проиграли, и она смеётся над нами....
    Читать далее
    Лайков +15 Комментариев13 Просмотров13.241

    Введение в реверсинг с нуля используя IDA PRO. Часть 11.

    10 авг 2017

    Перед тем как продолжить, давайте посмотрим сможем ли мы убрать баг, который присутствует в IDA версии 6.8, и который был исправлен в версии 6.9, и которой у нас нет :”( , чтобы увидеть присутствует ли у нас этот БАГ, откройте IDA, и на любой инструкции нажмите ALT + M, что равносильно размещению метки (JUMP → MARK POSITION), а затем на той же инструкции сделайте правый щелчок. [ATTACH] В интернете мы находим рецепт как исправить этот баг, давайте посмотрим как хорошо работает этот совет...
    Читать далее
    Лайков +17 Комментариев14 Просмотров10.925

    Введение в реверсинг с нуля используя IDA PRO. Часть 10

    30 июл 2017

    Хорошо, мы уже увидели что-то о ЗАГРУЗЧИКЕ и мы будем продолжать его разбирать и дальше, но сейчас мы будем разбирать некоторые особенности ОТЛАДЧИКА, которые дополняют друг друга. IDA поддерживает множество ОТЛАДЧИКОВ, чтобы увидеть их, мы открываем оригинальный файл КРЭКМИ CRUEHEAD без патча в IDA. Очевидно, мы выбираем OVERWRITE, если IDA спросит нас, хотим ли мы создать новую базу данных и затереть старую, чтобы сделать новый анализ, если у нас уже была в том же месте предыдущая база...
    Читать далее
    Лайков +23 Комментариев13 Просмотров21.861

    Введение в реверсинг с нуля используя IDA PRO. Часть 9

    21 июл 2017

    Мы разбираемся понемногу как нужно работать с ЗАГРУЗЧИКОМ, мы оставили некоторые вещи на потом, чтобы наблюдать за ними позже в ОТЛАДЧИКЕ, например, как меняются флаги в зависимости от используемых инструкций. Мы будем практиковаться на очень простых примерах, в нашем случае это очень простые крэкми, которые скомпилированы в VISUAL STUDIO 2015 для нашей практики. Очевидно, для того, чтобы крэкми заработал, у Вас должны быть установлены последние версия библиотек VISUAL STUDIO 2015 C++....
    Читать далее
    Лайков +24 Комментариев23 Просмотров17.556

    Програмирование на fasm под Win64 часть 2 \\\"Системы счисления, память, регистры\\\"

    7 июл 2017

    Данная статья будет чисто теоретической, ничего программировать в ней мы не будем, но то, что здесь рассказывается знать необходимо. Системы счисления Начнём мы с систем счисления, они определяют способ записи чисел. Вам хорошо знакома десятичная система счисления, в ней существует десять цифр от 0 до 9. Число в данной системе счисления представляется как сумма чисел, каждое из которых принимает значения от нуля до девяти, умноженных на 10 в соответствующей степени, например, рассмотрим...
    Читать далее
    Лайков +5 Комментариев2 Просмотров5.196

    Програмирование на fasm под Win64 часть 1 \"Ассемблер, отладчик, IDE\"

    5 июл 2017

    Введение Я начинаю цикл статей по ассемблеру fasm. Возможно у вас есть вопрос: “Зачем в 21 веке нужен ассемблер?”. Я бы ответил так: Конечно, знание ассемблера не обязятельно, но оно способствует пониманию, во что превращается ваш код, как он работает, это позволяет почувствовать силу. Ну и в конце концов: Писать на ассемблере просто приятно (ну по крайней мере небольшие приложения). Так что надеюсь, что мои статьи будут вам полезны. Где взять fasm? Собственно тут:...
    Читать далее
    Лайков +5 Комментариев5 Просмотров32.207

    Введение в реверсинг с нуля используя IDA PRO. Часть 8

    10 июн 2017

    Мы уже увидели в деле основные инструкции, сейчас давайте продолжим работу с ЗАГРУЗЧИКОМ. Способ работать, когда мы не имеем много опыта по статическому реверсингу состоит в том, чтобы комментировать и переименовывать инструкции и области, чтобы иметь лучшую ориентацию по коду и этим мы делаем большую часть своей работы. По мере того, как Вы больше практикуетесь в статическом реверсинге, то можно добиться больше и больше успехов в реверсинге, даже почти без использования отладчика или,...
    Читать далее
    Лайков +28 Комментариев30 Просмотров18.137

    Про криптование малвари, и сколько будет FUD

    16 май 2017

    Краткая теория защиты специфического программного обеспечения от детектирования антивирусами в вопросах и ответах «на пальцах» 1. >Сколько продержится FUD? Один из самых тупых и надоедливых вопросов клиентов. Клиент даёт нам файл, мы его криптуем, убеждаемся на чекерах, что он ФУД; проверяем на Virtual Box, как правило на х64 Windows 7 и х86 Windows XP, что он работает (если встроена защита от VM – смотрим что крипт отрабатывает без проблем) и передаем закриптованный файл. Дальнейшие...
    Читать далее
    Лайков +2 Комментариев4 Просмотров4.744

    Введение в реверсинг с нуля используя IDA PRO. Часть 7

    15 май 2017

    ИНСТРУКЦИИ УПРАВЛЕНИЯ ПОТОКОМ ВЫПОЛНЕНИЯ ПРОГРАММЫ Давайте закончим с инструкциями, которые всегда являются самой сложной частью, проглотите эту жесткую таблетку, потому что дальше будет лучше. Следующие инструкции управляют потоком выполнения программы. Мы знаем, что EIP указывает на следующую инструкцию, которая будет выполнена, и когда это произойдёт, EIP будет указывать снова на следующую инструкцию. Но сама программа имеет в себе инструкции, которые управляют её потоком и могут...
    Читать далее
    Лайков +19 Комментариев8 Просмотров15.073

    Введение в крэкинг с нуля, используя OllyDbg - Глава 55

    6 май 2017

    В этой главе мы продолжим починку execryptor, для этого мы создадим скрипт, ремонтирующий IAT. У многих, когда они слышат слово "скрипт", волосы встают дыбом (если они есть, хе-хе-хе), но создать скрипт - действительно очень просто, загвоздка состоит в том, что, когда смотришь на готовый скрипт, кажется, что он очень сложен, но в действительности скрипт не формируется сразу цельным, он начинается с простой идеи, к которой затем добавляются части, например, для execryptor, в котором мы должны...
    Читать далее
    Лайков +2 Комментариев2 Просмотров4.392

    Введение в крэкинг с нуля, используя OllyDbg - Глава 54

    3 май 2017

    При анализе неизвестного упаковщика лучше всего сначала проверить, существует ли для него известный анпэкми, поскольку нам нужен его распакованный код. Если, как в нашем случае, анпэкми есть, у нас будет и код распакованного анпэкми для сравнения. Анпэкми могут быть реализованы в нескольких вариантах, начиная от самой простой защиты упаковщика, до самой сложной, чтобы можно было постепенно обезвреживать каждый трюк. Когда нам будут известны все трюки упаковщика, можно будет приступать...
    Читать далее
    Лайков +2 Комментариев2 Просмотров6.833

    Введение в реверсинг с нуля используя IDA PRO. Часть 6

    12 мар 2017

    Давайте продолжим с арифметическими и логическими инструкциями. ADD A, B Инструкция складывает значение B и A, и помещает результат в A. A может быть регистром или содержимым ячейки памяти, B может быть регистром, константой или содержимым ячейки памяти (A и B не должны быть в памяти в одно и то же время, в одной и той же инструкции) Рассмотрим несколько примеров инструкции ADD ища текст ADD через VEVIEWER. [ATTACH] Здесь мы видим много примеров сложений, где первый член регистр, а...
    Читать далее
    Лайков +15 Комментариев11 Просмотров11.671

    Введение в реверсинг с нуля используя IDA PRO. Часть 5

    12 мар 2017

    Мы продолжаем рассматривать основные инструкции и их использование в коде, когда мы дойдем до части где используется отладчик, мы будем видеть больше примеров, где рассматриваются результаты применения каждой из этих инструкций на реальном примере. LEA (LOAD EFFECTIVE ADDRESS) LEA A, B Инструкция LEA помещает указанный адрес из B в A. Она никогда не получает доступ к содержимому B, это всегда будет адрес или результат работы операции между квадратными скобками во втором операнде....
    Читать далее
    Лайков +17 Комментариев6 Просмотров13.526

    Софтверные анклавы.

    11 мар 2017

    Механизм защиты памяти(продолжение темы про DFG). Довольно краткое(опирается на более ранние публикации) описание, но понятное. Полноценный антидамп.
    Читать далее
    Лайков +4 Комментариев3 Просмотров4.516

    Преобразование чисел в указанную систему счисления

    10 мар 2017

    Всех приветствую! Постарался изложить материал, для тех кто не знаком с системами счисления очень кратко и без лишней воды. Дабы человек мог конкретно сконцентрироваться на интересующем его материале, надеюсь такой стиль изложения кому-то поможет. Прежде всего небольшой ликбез, в таблице представлены числа из разных систем счисления и их эквивалент. Также сюда можно заглядывать во время чтения статьи. ДесятичнаяШестнадцатиричнаяДвоичная четырех разрядная 0 0 0000 1 1 0001 2 2 0010 3 3...
    Читать далее
    Лайков +2 Комментариев0 Просмотров2.518

    Анализ атомов AV

    27 фев 2017

    Анализ атомов1 AVПоказан пример анализа атомов в AV. В данном тесте не используется код самих AV, а только результат тестирования в виде сигнатурного детекта. В следствие этого за один тест может быть проверено одно булево условие. Как было сказано ранее, в VM код API содержит атомы, которые служат шлюзами VM. Через них управление получает VM и эмулирует API, которые не могут быть выполнены без использования среды VM. Простые API в свою очередь атомов не содержат. Для тестов используется...
    Читать далее
    Лайков +3 Комментариев3 Просмотров4.455

    Оптимизация для процессоров семейства Pentium (часть 3)

    25 фев 2017

    Чтобы подсчитать количество прочитываемых регистров, вам нужно включить все регистры, которые считываются инструкцией. В это число входят все целочисленные регистры, флаговые регистры, указатель на стек, регистры плавающей запятой и регистры MMX. Регистр XMM идет за два, кроме тех случаев, когда используется только его часть, например в ADDSS и MOVHLPS. Сегментные регистр и указатель на инструкцию не учитываются. Например в 'SETZ AL' вы считаете флаговый регистр, но не AL. В 'ADD EBX, ECX'...
    Читать далее
    Лайков +3 Комментариев0 Просмотров2.293

    Оптимизация для процессоров семейства Pentium (часть 2)

    25 фев 2017

    10.2 Несовершенное спаривание Бывают ситуации, когда две спаривающиеся инструкции не будут выполняться одновременно или будут частично рассинхронизированы во времени. Пока обе инструкции не выполняться (каждая в своем конвейере) ни одна другая инструкция не начнет выполняться. Несовершенное спаривание возникает в следующих случаях: Если вторая инструкция приводит к задержке AGU (глава 9). Две инструкции не могут обращаться к одному и тому двойному слову в памяти одновременно: MOV AL,...
    Читать далее
    Лайков +2 Комментариев0 Просмотров2.218