Coder Опубликовано 30 июля, 2012 Поделиться Опубликовано 30 июля, 2012 В этом топике будут содержаться ответы на ваши вопросы.1) A. Как мне просто занопить какую-либо инструкцию?Для этого достаточно просто записать байты в память:DWORD address = 0xABCDEF00;BYTE orgiginal[6] = { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 };VirtualProtect( (void*)address, sizeof(original), PAGE_EXECUTE_READWRITE, &old_prot);memcpy( (void*)address, original, sizeof(original));VirtualProtect( (void*)address, sizeof(original), old_prot, &old_prot);DWORD old_prot = 0;2) A. Как ты делаешь сигнатуры?Я делаю сигнатуры при помощи olly dbg.1) Открываем olly находим нужную инструкцию.2) Выделяем вместе с нашей инструкцией ещё пару (чтобы наша сигнатура была уникальной)3) Делаем правый клик мышью, выбираем Make Sig, а после Test SigДолжно получиться примерно это:4) Проверяем, одна ли наша сигнатура в своём роде, если нет, то возвращаемся к шагу 2.Моя olly dbg:OllyDbg.zip3) A. Как я могу получить адрес DLL в памяти без MODULEINFO?char* module_name = "test.dll"; // здесь мы указываем имя модуляDWORD dll_address = (DWORD)GetModuleHandle(module_name);4) А. Как я могу вывести адрес чего-либо на экран?Используя отладочную консоль, так:printf("Address: 0x%X", MyFunction); // вывод адреса функции, с классами и массивами точно такжеprintf("Address: 0x%X", &address); // вывод адреса переменной5). А. Почему эта инструкция не работает в твоём авто ассемблере на C++?1) Проверьте на правильность написания ваш код.2) Если ваша инструкция такого вида, mov dword ptr [0x1005194],esi (и студия ругается на недопустимый тип операнда), тот вам нужно сделать так:push eax // тут можно писать любой удобный для вас регистрmov eax,[0x1005194]mov [eax],esi//ваш кодpop eax6. Как использовать d3d windower?1) Запускаем саму программу2) Кликаем на "+"3) Выбираем нужное нам приложение4) Тыкаем на кнопку, которая идёт после значка компьютера (она чуть правее)5) Заходим в последнюю вкладку, и ставим две галочки.6) Перезапустить программу, и приложение можно запускать 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
boss Опубликовано 30 июля, 2012 Поделиться Опубликовано 30 июля, 2012 вопрос а как найти там нужную сигнатуру ?взять адрес СЕ и вписать в олю ? Ссылка на комментарий Поделиться на другие сайты Поделиться
ARM4ND0 Опубликовано 30 июля, 2012 Поделиться Опубликовано 30 июля, 2012 взять адрес СЕ и вписать в олю ?Ты хоть понял, что сказал ?) Ссылка на комментарий Поделиться на другие сайты Поделиться
boss Опубликовано 30 июля, 2012 Поделиться Опубликовано 30 июля, 2012 Ты хоть понял, что сказал ?) ну подскажи тогда Ссылка на комментарий Поделиться на другие сайты Поделиться
ARM4ND0 Опубликовано 30 июля, 2012 Поделиться Опубликовано 30 июля, 2012 Находишь нужную инструкцию и смотришь на скрин #2. Ссылка на комментарий Поделиться на другие сайты Поделиться
boss Опубликовано 30 июля, 2012 Поделиться Опубликовано 30 июля, 2012 Находишь нужную инструкцию и смотришь на скрин #2.ты вопрос видел я написал как её найти я же не возьму любую сигнатуру Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 30 июля, 2012 Поделиться Опубликовано 30 июля, 2012 Суть сигнатуры в том, что она должна указывать на первый байт нужной команды. Переходишь в оле в окно кода, жмёшь ctrl+g, вбиваешь адрес инструкции и копируешь байты нужной инструкции и ниже (потому что определённая последовательность команд уникальна, в отличие от одной команды, которая может встречаться в коде много раз).PS: "Я делаю сигнатуры при помощи оли" - не совсем корректно, потому что сигнатуры делает не сама оля, а плагин для неё. Ссылка на комментарий Поделиться на другие сайты Поделиться
boss Опубликовано 30 июля, 2012 Поделиться Опубликовано 30 июля, 2012 Суть сигнатуры в том, что она должна указывать на первый байт нужной команды. Переходишь в оле в окно кода, жмёшь ctrl+g, вбиваешь адрес инструкции и копируешь байты нужной инструкции и ниже (потому что определённая последовательность команд уникальна, в отличие от одной команды, которая может встречаться в коде много раз).PS: "Я делаю сигнатуры при помощи оли" - не совсем корректно, потому что сигнатуры делает не сама оля, а плагин для неё.ок спс буду пробовать ) Ссылка на комментарий Поделиться на другие сайты Поделиться
sooqua Опубликовано 31 июля, 2012 Поделиться Опубликовано 31 июля, 2012 Сделал вручную в OllyDbg аналог иньекции кода в CE (нашёл место в файле, где много нулей, и заменил оригинальную инструкцию прыжком на мой код)Попытался сохранить это дело, а оно не работает. В олли потрассировал его немного и стало ясно что я прыгал на виртуальную память, которая не существует в самом PE.Можно ли как-то выделить физическую память под свой code injection? Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 31 июля, 2012 Автор Поделиться Опубликовано 31 июля, 2012 Сделал вручную в OllyDbg аналог иньекции кода в CE (нашёл место в файле, где много нулей, и заменил оригинальную инструкцию прыжком на мой код)Попытался сохранить это дело, а оно не работает. В олли потрассировал его немного и стало ясно что я прыгал на виртуальную память, которая не существует в самом PE.Можно ли как-то выделить физическую память под свой code injection?Думаю это поможет - http://msdn.microsoft.com/en-us/library/windows/desktop/aa366890(v=vs.85).aspx Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 31 июля, 2012 Поделиться Опубликовано 31 июля, 2012 Сделал вручную в OllyDbg аналог иньекции кода в CE (нашёл место в файле, где много нулей, и заменил оригинальную инструкцию прыжком на мой код)Попытался сохранить это дело, а оно не работает. В олли потрассировал его немного и стало ясно что я прыгал на виртуальную память, которая не существует в самом PE.Можно ли как-то выделить физическую память под свой code injection?Воспользуйся любой тулзой аля "code cave finder" (она есть и встроенная в самом СЕ), пиши туда. Приобщись к 0ldsk00l! Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 31 июля, 2012 Автор Поделиться Опубликовано 31 июля, 2012 Воспользуйся любой тулзой аля "code cave finder" (она есть и встроенная в самом СЕ), пиши туда. Приобщись к 0ldsk00l! Он спрашивал вообще-то про динамическое выделение памяти) Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 31 июля, 2012 Поделиться Опубликовано 31 июля, 2012 Он спрашивал вообще-то про динамическое выделение памяти)Тогда да, твой вариант лучше. Но мой тоже работать будет. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения