Все, кто хорошо знаком с современным С++ слышал, что начиная с С++11 в стандарт был введен спецификатор constexpr, при помощи которого можно проводить лимитированные compile-time вычисления. В последующие стандарты были добавлены if constexpr и constexpr lambdas которые в некоторой степени снимают ограничения и помогают писать код с compile time вычислениями. Сегодня мы поговорим о случайной кодогенерации в compile time.
На хабре есть много замечательных статей о возможностях и способах применения LLVM. Мне бы хотелось рассказать подробнее о популярных техниках обфускации, которые можно реализовать при помощи LLVM, с целью усложнения анализа приложений.
Релиз OllyDbg 2.01 прошел незаметно и не был освещен на Хабре. Вместе с 2 версией автор выпустил дизассемблер по лицензии GPL v3. В конце октября была анонсирована будущая поддержка х64.
WinDbg — позволяет отлаживать 32/64 битные приложения пользовательского уровня, драйвера, может быть использован для анализа аварийных дампов памяти, WinDbg поддерживает автоматическую загрузку отладочных символов, имеется встроенный скриптовый язык для автоматизации процесса отладки, скачать отладчик можно тут.
PEB — структура процесса в windows, заполняется загрузчиком на этапе создания процесса, которая содержит информацию о окружении, загруженных модулях (LDR_DATA), базовой информации по текущему модулю и другие критичные данные необходимые для функционирования процесса. Многие системные api windows, получающие информацию о модулях (библиотеках) в процессе, вызывают ReadProcessMemory для считывания информации из PEB нужного процесса.
Совсем недавно озадачился защитой приложений от перехвата системных api, решил поделиться и обсудить то, к чему пришел. Многие из вас знают, что перехват системных api сводится к перенаправлению оригинальной функции в нужное место, благодаря этому можно модифицировать параметры функции, возвращать результат отличный от оригинала, хранить оригинальный вызов с параметрами и многое другое. Так как это теоретическая часть, примеры в статье будут сопровождаться псевдокодом.
Тема этой статьи интерфейсы Screenshots,UserStats и библиотека wxWidgets. Мы напишем GUI приложение под Windows, при помощи которого можно будет подменять скриншоты и просматривать невыполненные достижения.
Сегодня мы будем работать с интерфейсами Apps, Utils, а так же познакомимся с тем как реализовывать callbacks в нашем приложении. Рекомендую ознакомиться с 1 частью, прежде чем приступать ко второй.
SteamWorks — это интерфейс, который обеспечивает разработку и публикацию инструментов для разработчиков игр. Он предоставляет возможность интеграции с клиентом Steam, интеграция с комьюнити, добавлять и редактировать достижения для игр и многое другое.