Исследование PPPWorld 6.3.0.2: пишем KeyGen.

25 июн 2022

Данный материал публикуется исключительно в ознакомительных целях. Автор не несёт никакой ответственности за его применение в корыстных целях. ЦЕЛЬ : PPPWorld 6.3.0.2 Инструменты : OllyDbg + PEExplorer + MASM32 Я думаю, многие из вас знают о довольно популярном способе проведения досуга, таком как решение японских кроссвордов. Зачастую, печатные версии этих головоломок можно видеть на полках газетных киосков, магазинов. Помимо печатных изданий сегодня существует огромное множество...
Читать далее
Лайков +2 Комментариев1 Просмотров365

Hook engine. Может кому-то пригодится

11 апр 2022

Hook engine Движок для перехвата функций. Подойдет как для ring3 перехватов, так и для ring0. Проблемы могут возникнуть при копировании call в тело функции, но я думаю этого не будет. Функции аллока и освобождения памяти намеренно убраны, т.к. для разных ring свои функции аллока памяти. Работает так: дизассемблирует начальный код функции, и копирует в буфер столько кода, чтобы заместо него поместился call. После копирования, начало функции заменяется на call <> + nop для добивки остатков....
Читать далее
Лайков +2 Комментариев1 Просмотров578

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

21 июн 2020

В прошлой части мы получили теоретическую базу по принципам настройки гипервизора и EPT. Применим их на практике. В первой части мы написали шаблон драйвера и заготовку для виртуализации всех процессоров - функцию VirtualizeAllProcessors. Код виртуализации будет необходимо выполнить на всех процессорах и это легко сделать через генерацию межпроцессорного прерывания функцией KeIpiGenericCall. Каждый логический процессор выполнит код, переводящий его в режим виртуализации, и продолжит свою...
Читать далее
Лайков +7 Комментариев19 Просмотров2.657

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

20 июн 2020

Здравствуйте, друзья, мы с вами продолжаем исследовать возможности мета-программирования различных высокоуровневых языков в одной единственной прикладной сфере - обфускации. На этот раз мы рассмотрим язык программирования Nim - модный, молодежный, немного питонный, немного паскальный язык, который позиционируется как альтернатива C++. Насколько дизайн и реализация языка Nim удачны - вопрос спорный, но нас как бы это не особо то и интересует. Нас интересуют только весьма богатые возможности...
Читать далее
Лайков +4 Комментариев4 Просмотров3.325

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

18 июн 2020

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

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

15 июн 2020

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

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

13 июн 2020

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

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

9 мар 2020

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