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

partoftheworlD

Помогаторы
  • Публикаций

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

  • Посещение

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

    155

partoftheworlD стал победителем дня 20 июня

partoftheworlD имел наиболее популярный контент!

Репутация

774 Advanced Gamehacker

Информация о partoftheworlD

  • Звание
    инженер проектирующий свалки

Посетители профиля

11001 просмотр профиля
  1. https://github.com/x64dbg/x64dbg/blob/7d53b1ae08814665405e84bf39d0a016ab911df5/src/dbg/memory.cpp
  2. if(mbi.State != MEM_FREE) плюс цикл не верный, ты вообще в курсе как будет такой цикл работать? while (VirtualQueryEx(hndl, (LPCVOID)(0 + offset), &mbi, sizeof(MEMORY_BASIC_INFORMATION)))
  3. partoftheworlD

    Странности СЕ

    Неправильный модуль для указателя используешь.
  4. partoftheworlD

    Radare2 Эмуляция кода

    Глава 0. Пролог В общем в прошлой статье слетели картинки, да и статья не особо понравилась, вот её переписанная и обновленная версия. Место действия – терминал, в главных ролях – radare2, отлаживаемая программа. Глава 1. Настройка окружения ESIL e asm.emu=true - Run ESIL emulation analysis on disasm e io.cache=true Глава 2. Настройка эмулятора Тут достаточно простой список команд: aei – инициализирует состояние виртуальной машины aeim – инициализирует стек aeip – устанавливает EIP по текущему положению в коде после всех этих команд в регистрах выставились адреса ebp, esp, eip. Остальные регистры устанавливаем с помощью команды aer, значения обычно берутся из отладчика, но можно выставить любые. aer eax = 00000004;aer ebx = 0x17426e8;aer edx = 00000004;aer edi = 0x05e4830;aer tf = 1;aer if = 1; Для пошагового выполнения кода используем aes, я обычно использую такую связку, чтобы получать необходимый минимум информации: pd -1 @ eip; aer=; aes но если кому так не удобно, есть возможность использовать визуальную отладку используя команду V! Глава 3. Тест Попробуем отладить код из дампа и посмотреть, что там вообще происходит. Глава 4. Эпилог Как видите, все достаточно просто, плюс поддерживается для эмуляции туева хуча архитектур. Так же это быстрее, чем поднять qemu или использовать реальное железо, плюс поддержка скриптов радара делает из эмуляции достаточно мощный инструмент для статической отладки и анализа кода.
  5. movzx преобразует операнд без знака в эквивалентный ему операнд без знака большей размерности. Для этого содержимое операнда источника, начиная с его младших разрядов, записывается в операнд приемник. Старшие разряды операнда приемника заполняются нулем. Потому что стоит разобраться с настройками и уровнями сканирования Конечно, поэтому чтобы наверняка иметь правильный указатель, можно комбинировать ручной поиск и автоматический(найти пару уровней руками, а после сказать сканеру, чтобы он искал все указатели заканчивающиеся на эти 2 уровня)
  6. Т.е. alloc/HeapAlloc/new выделяют не n-кол-во байт? Если так, то будет над чем поковыряться.
  7. Как вариант, можно попробовать перехватить указатель на участок памяти, хукнув функцию выделяющую память и зная размер участка, отфильтровать только то что нужно.(Не в курсе как работает память во флеше) Или без хука, перебором всех сегментов и вычислением размера.
  8. На основе этого урока, немного подумав можно найти место, где пишется настоящее значение в визуальное.
  9. partoftheworlD

    Релиз ArtMoney 8.0

    Обращайся к тем у кого покупал, какой смысл об этом спрашивать здесь?
  10. Покажу на примере кода по расшифровке строк, ничего особенного, просто xor шифрование, вроде бы все и понятно, но так не хочется вручную восстанавливать. А декомпилятор в x64dbg ужасен. И что же в таком случае делать? Воспользоваться radare2. Просто выделяем функцию, записываем её в файл и отрываем этот файл в r2. Теперь определяемся что нам нужно из этого кода? Например, регистр cl. Пишем такую команду: pdc~cl Читается как: pdc - pseudo disassembler output in C-like syntax ~ - grep cl Хоба, и видим алгоритм расшифровки: [0x00aa93b0]> pdc~cl cl = bl cl ^= dl byte [rdi + rax + 1] = cl cl = bl cl ^= byte [rsi + 0x12c66dc] byte [rsp + rax + 0x1d] = cl cl = bl cl ^= byte [rsi + 0x12c66e0] byte [rax + rbp + 3] = cl cl = bl cl ^= dl byte [rsp + rax + 0x1f] = cl Это не совсем декомпилятор, просто вывод дизассемблерного кода в удобно читаемом виде. Код целиком.
  11. struct vec3_t { float x; float y; float z; }; Но для таких целей контейнеры будут удобней.
  12. Это нереальный вариант, т.к. простейшую тему растянули на 17 сообщений, хотя ответ дали еще в 5-м сообщении.
  13. Никак, в ReClass определяются структуры. Когда-нибудь
  14. В документации же ясно написано.
  15. Ищи модификатор, либо функцию задающую псевдо-рандом.
×

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

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