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

12 мар 2017

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

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

12 мар 2017

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

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

25 фев 2017

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

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

25 фев 2017

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

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

25 фев 2017

Оптимизация для процессоров семейства Pentium — Архив WASM.RU Содержание Введение Литература Вызов ассемблерных функций из языка высокого уровня Отладка Модель памяти Выравнивание Кэш Исполнение кода в первый раз Задержка генерации адреса Спаривание целочисленных инструкций (PPlain и PMMX) Разбивка сложных инструкций на более простые (PPlain и PMMX) Префиксы (PPlain и PMMX) Обзор конвейера PPro, PII и PIII Раскодировка инструкций (PPro, PII и PIII) Доставка инструкций (PPro, PII и PIII)...
Читать далее
Лайков +2 Комментариев0 Просмотров188

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

25 фев 2017

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

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

20 фев 2017

Мы продолжаем рассматривать инструкции обмена данными в IDA. XCHG A, B Эта инструкция обменивает значение A со значением B, давайте рассмотрим пример. [ATTACH] В файле VEVIEWER нет такой инструкции, поэтому я загружаю СRACKME.EXE Cruehead, и меняю инструкцию по адресу 0x4013D8. Я помещаю курсор на строку адреса и перехожу в меню EDIT->PATCH PROGRAM->ASSEMBLE. [ATTACH] Мы видим, что функция была повреждена, так как я работаю сейчас с ней. [ATTACH] Мы уже видели, что, если инструкция...
Читать далее
Лайков 0 Комментариев3 Просмотров403

Введение в разработку эксплоитов. Часть 1

20 фев 2017

Часть 1: Введение в разработку эксплоитов Это первая часть в (скромной) многотомной серии туториалов, посвященной разработке эксплоитов. Эта часть просто расскажет некоторые базовые вещи, такие, которые нам нужны, чтобы сделать нашу работу, основные идеи скрытые за разработкой эксплоитов и некоторые вещи, которые нужно держать в памяти, если мы хотим заслать и выполнить наш шеллкод. Эти туториалы не будут рассказывать как находить ошибки, вместо этого, каждая часть будет включать уязвимую...
Читать далее
Лайков 0 Комментариев18 Просмотров435