1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Путешествие из Kernel32 в HAL

25 фев 2017

Оригинал статьи http://www.debasish.in/2014/02/reversing-tiny-built-in-windows-kernel.html Путешествие из Kernel32 в HAL В этом посте я собираюсь изучить ядро Wiindows путем небольшого реверса встроенного в ядро модуля. Если вы когда-нибудь разрабатывали ядерный драйвер (модуль), это будет очень просто для понимания. Если вы не знакомы с тем, как работают драйвера, то на Codeproject.com есть немного хороших ресурсов, чтобы начать. Но прежде чем мы сможем начать реверсинг основного...
Читать далее
Лайков +9 Комментариев2 Просмотров4.828

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

22 ноя 2017

Осталось решить незаконченное упражнение IDA1.EXE. [ATTACH] Функция основана на EBP как предыдущие упражнения. Разница заключается в том, что этот пример скомпилирован с помощью DEVC++, который имеет особый способ компиляции вызовов API, отличный от обычного способа и это может вызвать головокружение, у тех, кто никогда такого не видел. Хорошо, "VAMOS POR PARTES", как сказал Джек. Первое, что мы видим - это функция MAIN. Если она не появляется, Вы также можете перейти к важной функции,...
Читать далее
Лайков +9 Комментариев9 Просмотров5.230

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

26 ноя 2017

Решение для упражнения IDA2.EXE довольно похоже на предыдущее, только здесь присутствуют две переменные или мы можем назвать их кукисами. Для того, чтобы перенести Вас в область хорошего сообщения, теперь сравниваются две переменные, а не одна. [ATTACH] Давайте посмотрим, существует ли место, где Вы можете изменить эти переменные? Мы переименовываем переменные в COOKIE и COOKIE 2, так как сама IDA называет их такими именами. [ATTACH] Мы видим, что единственные места, где есть доступ к...
Читать далее
Лайков +7 Комментариев8 Просмотров5.261

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

3 ноя 2018

Хорошо. Мы будем пытаться эксплуатировать переполнение стека из скрипта PYTHON. Обычно эксплуатация ядра происходит локально. Другими словами, скрипт уже эксплуатирует некоторую программу, которая не имеет привилегий системы и хочет повысить привилегии и быть с правами SYSTEM, что устраняет ограничения, которые имеет эксплуатируемый процесс, который имеет только ограниченные привилегии обычного пользователя на машине. Поэтому, за исключением очень редких исключений, эксплойты ядра - это...
Читать далее
Лайков +7 Комментариев5 Просмотров3.283

Виртуализация для самых маленьких #2: управляющие структуры, EPT, MTRR

18 июн 2020

Продолжаем писать изучать гипервизор. В прошлой части мы написали шаблон драйвера и заготовку функции для виртуализации всех логических процессоров. Прежде всего, следует напомнить, что под логическим процессором понимается или одно физическое ядро процессора (если процессор не поддерживает SMT/Hyper-Threading), или один логический поток в процессорах с поддержкой SMT/Hyper-Threading. Иными словами, если у процессора 4 ядра и он поддерживает Hyper-Threading (два потока на одно физическое...
Читать далее
Лайков +7 Комментариев5 Просмотров1.642

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

3 дек 2017

СТРУКТУРЫ В этой части, мы начнём изучать, как IDA PRO помогает нам при реверсинге, когда программа использует структуры. В конце этой части, решения для файлов IDA3 и IDA4 будут краткими, потому что похожая проблема уже обсуждалась. Что же такое структура? Нам не нужно очень техническое определение, но мы видели, что МАССИВЫ это контейнеры, которые резервировали пространство в памяти для своих полей. Поля были того же типа, что и сами массивы, поэтому МАССИВЫ могут быть из байтов, слов,...
Читать далее
Лайков +6 Комментариев8 Просмотров6.599

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

3 дек 2017

Концепция программирования, при которой большая часть нужных нам данных сгруппирована в структурах, имеет большой смысл. Если я, например, создам программу, в которой будет использоваться много разных типов данных и они будут передаваться в функции при вызове - получится слишком сложно. Когда мы используем структуры, мы группируем все эти данные и просто используем адрес начала структуры. В любой части программы мы может изменить любое поле структуры. Давайте разберем следующий пример...
Читать далее
Лайков +6 Комментариев12 Просмотров5.722

Деобфускация JS-вредоноса

3 янв 2018

Доброго времени суток. Некоторое время назад один из участников нашего форума обратился к сообществу за помощью в исследовании найденного на просторах интернета вредоносного java-script'а. Сам скрипт сильно обфусцирован и в том виде, в котором он был представлен, проанализировать его активность невозможно. В связи с этим я хотел бы рассказать как же посмотреть что он делает. Каких-то особых спецсредств для работы нам не потребуется. Понадобится лишь текстовый редактор. Я обычно использую...
Читать далее
Лайков +6 Комментариев1 Просмотров3.925