Перейти к содержанию

DragonForce

Стажёры
  • Постов

    11
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Весь контент DragonForce

  1. ИНИЦИАЛИЗАЦИЯ ЗАЩИТЫ Перед тем как выводить какое либо приветствие на экран, таск проверяет флаг NtGlobalFlag из структуры PEB: mov eax, dword ptr fs:[30] - загружает в регистр EAX указатель на PEB структуру test byte ptr ds:[eax+68],70 - провряет флаг NtGlobalFlag по смещениею PEB+0x68 для 32-разрядной или PEB+0xBC дя 64-разрядной / Если флаг равен 0x70(FLG_HEAP_ENABLE_TAIL_CHECK (0x10) + FLG_HEAP_ENABLE_FREE_CHECK (0x20) + FLG_HEAP_VALIDATE_PARAMETERS (0x40)) - процесс создан из под отладчика. jne debug_detected Обойти это можно как изменением PEB структуры, так и просто пропатчить jne на NOP Далее идет следующий трюк, создается поток с проверкой где в цикле вызывается функция IsDebuggerPresent: Обойти можно разными путями, начиная от проNOPить создание потока, изменить пролог функции с push на ret или просто изменить логику внутри патчем cmp или jne\je Далее идет последний трюк, который так же будет выполняться в отдельном потоке как и предыдущий: Используются следующие функции: CreateToolhelp32Snapshot - Делает снимок процессов Process32Next - Получает информацию о следующем процессе Process32First - Получает информацию о первом процессе Я думаю многие уже догадались в чем заключается данный трюк, а если нет, вот подсказка: В цикле, как и в предыдущем трюке, будут искаться процессы, которые указаны выше, при детекте которых таск будет закрываться. АЛГОРИТМ Разбирать алгоритм нет никакого смысла(и желания), ибо сгенерированный ключ по имени палится в регистре перед сравнением.
  2. То-есть я должен был написать - "Дайте мне готовое решение как вызывать WINAPI функции в AutoAsm"?)
  3. Ну я же говорю, очень информативный ответ, на одном уровне с популярностью данного форума.
  4. Есть ли возможность в Auto assemble вызывать WINAPI - RegDeleteKeyW? То-есть сделать что-то типа push *Первый параметр* push *Второй параметр* call RegDeleteKeyW
  5. Спасибо Вам всем. Такой вопрос, Вы создали метку example и прописали туда через db слово - Text. Но сама память для этого слова выделяется где-то в рандомном месте или хранится в выделенной памяти newmem? Просто я не вижу чтобы персонально для метки example выделялось память через alloc.
  6. Нужно по идее выделить память через alloc, прописать туда байты нужно текста, а потом написать "mov edi, NameAllocMemory", но я не совсем знаю как правильно написать это в Auto Assembler`e, подскажите пожалуйста.
  7. Доброго времени суток. Такой вопрос, как изменить текст который хранится в регистре EDI. К примеру: push edi - edi:"TEST" call eax MessageBox выводит сообщение - "TEST". Как изменить текст который хранится в EDI перед вызовом call eax?
  8. Видимо для меня это пока не совсем понятно... Я думал достаточно в хук функции присвоить другое значение lpBuffer, а далее все что читает в оригинале этот буфер(после вызова ReadFile), будет получать уже новое значение lpBuffer`a(то, которое я присвоил в хуке)... Если у меня в собственной программе(в которой 30 строк кода-_-), которую я сделал для примера, не получается изменить lpBuffer, то о чем тогда еще речь...?
  9. Сделал как Вы подсказали, сперва вызвал TrueReadFile, а только потом указал lpBuffer = (LPVOID)"1234", но щас не работает, выводит все равно - "TEST". Из-за того что я в коде хука lpBuffer присваиваю другое значение(1234), я изменяю адрес самого lpBuffer?
  10. Для теста был написан код выше. Выводит в консоль текст - "TEST" из текстового документа 123.txt. Пытаюсь поставить хук на ReadFile, чтобы подменять считанный результат, допустим вместо "TEST" чтобы выводило "TEST1234". Но в итоге просто пустое поле появляется и все, может ли кто-нибудь помочь?
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.