Виртуализация для самых маленьких #1: гипервизор - что, зачем и почему

15 июн 2020

[ATTACH] Развитие технологий аппаратной виртуализации (Intel VT-x и AMD-V) открывает широкие возможности по контролю выполнения кода на самом низком уровне. Привычные всем гипервизоры (Hyper-V, KVM, VMware или VirtualBox) позволяют запускать операционные системы в изолированном окружении: это становится возможным, благодаря способности процессоров работать в специальном режиме, в котором они контролируют доступ к ресурсам и обрабатывают выполнение заданных инструкций и событий. При...
Читать далее
Лайков +15 Комментариев18 Просмотров8.894

Мета-программирование С++ и обфускация

13 июн 2020

Здравствуйте, друзья, это - моя первая статья на Wasm'е, не судите строго. Надеюсь она же станет первой статьей в цикле, в котором я рассмотрю возможности мета-программирования разных ЯП и компиляторов применительно к обфускации кода. Первым пациентом у нас будет великий и могучий, ненавидимый многими программистами по всему миру, прородитель buffer overflow и use after free багов - добрый дядька С++. Когда то очень давно, а именно в 2013 году, когда в компиляторы С++ начали завозить...
Читать далее
Лайков +5 Комментариев6 Просмотров7.770

Квантовая сепарация или разбираемся с Win32PrioritySeparation

9 мар 2020

В этой заметке речь пойдёт об известной настройке планировщика - Win32PrioritySeparation, позволяющей настраивать количество квантов времени, выделяемых фоновым (background) и активным (foreground) процессам. Этот параметр - поле в реестре с типом REG_DWORD: HKLM\System\CurrentControlSet\Control\PriorityControl\Win32PrioritySeparation Во многих источниках есть описания возможных значений без объяснения внутреннего устройства этого параметра - эти пробелы и призвана закрыть эта статья....
Читать далее
Лайков +3 Комментариев2 Просмотров17.897

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

19 июн 2019

Проблема в том, что эта секция будет использоваться источником, и вам нужно скопировать данные до SEH, а затем завершить ввод, поэтому происходит сбой чтения перед копированием всего стека и сбой в стеке ядра. Я поставлю эту IDA на паузу на одну минуту и открою другую, где у меня есть драйвер. Одна вещь, которую я не видел и допустил ошибку - это то, что буфер назначения [ATTACH] Мы видим, что он инициализируется байтами 0x1FF, но непосредственно перед обнулением байта, который находится...
Читать далее
Лайков +6 Комментариев3 Просмотров10.712

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

13 июн 2019

Мы видим, что есть две разные операции и SEND. Мы должны изучить обе операции, чтобы увидеть, какая из них работает и почему. [ATTACH] В этом компиляторе резервируются 4 QWORDS над пространством переменных, так что дочерняя функция хранит аргументы, которые передаются через регистры. [ATTACH] Таким образом, поскольку дочерняя функция имеет 5 аргументов, 5-й будет VAR_248. Я переименую переменную в CONST_0, так как программа пишет туда ноль. [ATTACH] Давайте сначала проанализируем...
Читать далее
Лайков +1 Комментариев0 Просмотров4.228

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

11 июн 2019

[ATTACH] Но мы можем считать, что программа возвращает значение, которое является случайным и увеличивается, и это значение делится на константу 0x7D0. [ATTACH] И результат сохраняется в EAX, остаток - в EDX. [ATTACH] Поэтому COUNTER_GUITA на этом этапе будет меньше, чем CONTADOR_GUITA₂. [ATTACH] И когда COUNTER_GUITA будет меньше 30000, а COUNTER_GUITA_2 будет больше, программа изменит вывод на желтый, то же самое произойдет, когда COUNTER_GUITA будет меньше 10000, а COUNTER_GUITA_2...
Читать далее
Лайков +2 Комментариев0 Просмотров3.377

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

24 апр 2019

Метод, который мы не рассмотрели, чтобы эксплуатировать одну из уязвимостей драйвера HACKSYS. Мой друг попросил у меня несколько разъяснений о методе, используемом для обхода COOKIE на 32-битных машинах, когда у нас есть переполнение стека в ядре, и мы можем перезаписать адрес возврата, но есть COOKIE, который мешает нам завершить выполнение кода. Очевидно, что если у нас есть другая уязвимость, которая допускает утечку данных, мы могли бы прочитать значение COOKIE и затем использовать его...
Читать далее
Лайков +1 Комментариев0 Просмотров4.538

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

19 апр 2019

ТУТОРИАЛ ДЛЯ РЕШЕНИЯ ЗАДАНИЯ NICO ИЗ EKOPARTY 2018 - ЧАСТЬ 2. Давайте сделаем скрипт на PYTHON для решения конкурсной задачи NICO, которую мы реверсировали в предыдущей части. Cкрипт основан на реверсинге, который мы делали, а также на решении, которое прислал мой дружбан LUCAS KOW, особенно это видно в части про ROP, и мы объясним, как это сделать. [ATTACH] Если я запускаю скрипт LUCAS, я вижу что останавливается счетчик de la fuga de capitales(сложно понять без запуска про что он...
Читать далее
Лайков +2 Комментариев0 Просмотров3.172