Метка «ассемблер» - 6

image
Речь пойдёт о том, как можно спрятать «лишние» ассемблерные команды в обычном коде. Данный метод полезен для усложнения дизассемблирования кода, особенно, если генерацию «скрытых» команд автоматизировать.
Инструментарий: отладчик OllyDbg.

Странный странный код

Взглянем на следующий код, в котором скрыто намного больше команд, чем видно на первый згляд:
MOV EAX,1EBC031
MOV EBX,90DB3190
CMP EAX,EBX
JNE SHORT 0000009E
NOP
Читать полностью »

История команд одного процессора. Часть 1. Отличия ассемблерных инструкций lddqu и movdqu
В не столь далеком 2000 году корпорация Intel представила на рынке микроархитектуру NetBurst для процессоров Pentium 4. В 2004 году, когда появились процессоры на ядре Prescott, в наборе команд SSE3 была реализована команда LDDQU.Читать полностью »

Приветствую!

Сегодня на хабре появилась статья, повествующая о том, как можно перехватывать вызовы DLL из программы и обрабатывать их нужным образом — в законных, а может быть, и не совсем, целях. Так или иначе, данная техника может пригодиться в разных случаях.

Для того, чтобы постоянно не совершать одни и те же действия, я решил автоматизировать процесс создания проекта Visual Studio на основе выбранной dll.

Сперва мной были скачаны исходники проекта из статьи. Для автоматизации взят скриптовый язык AutoIt, на нём набросанЧитать полностью »

Хочу поделиться историей из профессиональной деятельности, которую можно заслуженно поместить в блог с именем crazydev :) Это рассказ о необычных решениях (тех, что я попытался описать в двух словах в заголовке), к которым меня вынудили прийти еще более необычные ограничения и требования.

Ненормальное программирование / Сетевое обращение к библиотекам и рантайм формирование вызовов функций
И вот как-то так, через хитро закрученную ***у, оно и работает ©

Постановка проблемы

Несколько лет назад работали над системой, предназначенной для <a rel="nofollow"Читать полностью »

Системное программирование / Создание прокси dll для запуска DirectDraw игр в окнеВ продолжение темы расширения функциональности готовых программ хотелось бы рассказать об ещё одном способе изменения логики работы уже скомпилированной программы, который не требует делать изменений в самом исполняемом файле. Это может пригодиться при распространении вашей модификации в США, где прямое вмешательство в исполняемый файл строго осуждается. Речь пойдёт о создании крошечной прокси-dll (всего ≈4 килобайта) для подмены используемой приложением библиотеки на примере ddraw.dll.

Приступим

Вся работа будет проводитьсяЧитать полностью »

Программирование / Создание прокси dll для запуска DirectDraw игр в окнеВ продолжение темы расширения функциональности готовых программ хотелось бы рассказать об ещё одном способе изменения логики работы уже скомпилированной программы, который не требует делать изменений в самом исполняемом файле. Это может пригодиться при распространении вашей модификации в США, где прямое вмешательство в исполняемый файл строго осуждается. Речь пойдёт о создании крошечной прокси-dll (всего ≈4 килобайта) для подмены используемой приложением библиотеки на примере ddraw.dll.

Приступим

Вся работа будет проводитьсяЧитать полностью »

Вдохновившись статьёй Привет из свободного от libc мира, я так же решил проделать нечто подобное. Чтобы не заниматься этим бесцельно, я решил поставить перед собой следующую задачу. Сделать программу, выводящую какую-нибудь простую строку, вроде «ELF, hello!». Разобраться с тем, как именно она будет представлена в исполняемом файле. Ну и попутно, постараться уложиться в 100 байт.
Для начала, стандартный helloworld на C++
#include
using namespace std;
int main()
{
cout << "ELF, hello!n";
return 0;
}

Компилируем, смотри размер:$ g++ test.cpp -static && ls -s -h a.out
1,3M a.out
Сколько, сколько? 1.3 Мб? Для вывода одного единственное сообщения размером в 12 байт? Хм… Ладно,Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js