Сейчас на форуме: (+8 невидимых) |
eXeL@B —› Протекторы —› Quick Unpack - универсальный распаковщик |
<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . >> |
Посл.ответ | Сообщение |
|
Создано: 13 мая 2006 12:51 · Поправил: Модератор · Личное сообщение · #1 Quick Unpack 2.1 История версий -------------- v2.1 [!] исправлены многие ошибки. например, падение при восстановлении ресурсов на некоторых программах [!] многопоточные приложения теперь корректно обрабатываются [+] добавлена возможность установить конец модуля при трассировке функций импорта. Когда найдено обращение к импорту, оно анализируется, ведёт ли оно за пределы модуля (чтобы не трассировать внутренние функции). Некоторые проты перенаправляют импорт в последнюю секцию файла. Чтобы убрать эту проблему и была введена данная возможность. Это RVA [+] добавлена возможность класть таблицу импорта по указанному RVA вместо создания новой секции [+] добавлена возможность установить дельту для хука RDTSC (см. rdtsc_delta в Scripts.rus.txt) [+] добавлена опция Load libraries only к списку методов восстановления импорта. с этой опцией импорт в прямом смысле слова не восстанавливается, просто берётся по 1 функции импорта из каждой из загруженных библиотек. после этого дамп будет загружен со всеми нужными библиотеками, а для импорта будут использоваться старые адреса функций, записанные протектором. эту опцию можно использовать, когда перенаправление импорта уж слишком забористое, но дамп после установки сервис пака или серьёзного апдейта работать перестанет [+] добавлена опция Execute functions while tracing import. по умолчанию во время трассировки импорта функции не исполняются, но некоторые протекторы используют результаты выполнения функций в своей работе, для них и добавлена эта опция [+] добавлена опция Process call xxx/jmp xxx. некоторые протекторы переделывают обращения к импорту из call [xxx]/jmp [xxx] в call xxx/jmp xxx. эта опция позволяет обрабатывать также и такие обращения к импорту [+] добавлено несколько новых функций и переменных для скриптов [+] generic OEP finder от UsAr теперь поддерживает и DLL [+] добавлен новый манифест для Висты Конструктивные отзывы приветствуются. Ссылки на архив: http://qunpack.ahteam.org/wp-content/uploads/2008/03/qunpack21.zip http://qunpack.ahteam.org/wp-content/uploads/2008/03/qunpack21.zip Сайт: http://qunpack.ahteam.org/ http://qunpack.ahteam.org/ |
|
Создано: 21 сентября 2018 00:11 · Личное сообщение · #2 |
|
Создано: 21 сентября 2018 00:43 · Личное сообщение · #3 |
|
Создано: 21 сентября 2018 04:17 · Личное сообщение · #4 |
|
Создано: 21 сентября 2018 09:06 · Личное сообщение · #5 |
|
Создано: 21 сентября 2018 10:47 · Личное сообщение · #6 Alchemistry пишет: Вы еще скажите что он не прав Конечно же он не прав и просто старается дешёвыми приёмами привлечь внимание к себе. Ты тоже пытаешься этим заниматься, но до Клерка тебе как до луны. Так как ты к сожалению уныл и посредственен, а Клерк талантлив. difexacaw пишет: А если же поделка нужна для работы только с юм, то км не нужно лишний раз трогать, способов достаточно. Расскажи тогда про способы эмуляции RDTSC в User Mode? ----- http://ntinfo.biz |
|
Создано: 21 сентября 2018 11:00 · Личное сообщение · #7 |
|
Создано: 21 сентября 2018 11:04 · Личное сообщение · #8 hors пишет: Расскажи тогда про способы эмуляции RDTSC в User Mode? Про моторы забыл?! Эмуляцией и построением графа, я вот жду когда Клерк выложит последнее решение для подобной эмуляции, свой полный эмулятор, очень интересно технически, но тема как-то заглохла в топике. ClockMan пишет: mak пишет: Намёк на полный декомпиль Темиды ага держи карман шире... Куплю даже сумку Не предавай своё кредо оптимиста! ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube |
|
Создано: 21 сентября 2018 11:15 · Поправил: hors · Личное сообщение · #9 |
|
Создано: 21 сентября 2018 11:25 · Личное сообщение · #10 |
|
Создано: 21 сентября 2018 11:57 · Личное сообщение · #11 Доступ к CR-регистрам, как чтение, так и запись, запрещены из ring3. | Сообщение посчитали полезным: ClockMan |
|
Создано: 21 сентября 2018 13:37 · Личное сообщение · #12 |
|
Создано: 21 сентября 2018 14:48 · Поправил: DenCoder · Личное сообщение · #13 hors пишет: А если защита проверяет значение отладочных регистров? DR-регистры можно проверить через GetThreadContext(). Но если не завязано на прямых вызовах сервисов через шлюз, то можно перехватить. Добавлено спустя 2 минуты hors пишет: Расскажи тогда про способы эмуляции RDTSC в User Mode? ClockMan пишет: ну можно сбросить бит TSD в CR4 это запретит исполнение RDTSC в ring3, перехватить исключение и подсунуть нужное значение)))) Archer пишет: Доступ к CR-регистрам, как чтение, так и запись, запрещены из ring3. без км ----- IZ.RU |
|
Создано: 21 сентября 2018 20:35 · Поправил: difexacaw · Личное сообщение · #14 Не нужно ничего усложнять, решение собирается за вечер под пивас. В данном случае не нужны все эти сложности по профайлу, детектам, формату кода, куча системной обработки етц. Достаточно реализовать простейший визор, это зная принцип задача для ньюби. Берём ксед, от него нужен декодер длин и определение modrm. Забиваем битмапу маркеров не линейных инструкций, это всевозможные ветвления. Используем тлс для многопотока, там реализуем RWX буфер на 16 байт. Из битмапы ветвлений определяем линейная ли инструкция, если это так, то копируем и исполняем и идём дальше в цикл. Ели это ветвление, то пересчитываем адрес и переходим к нему. Если есть адресная выборка(EA(modrm)), то читаем значение и переходим туда. Элементарно это реализуется. Нужно есчо поставить нотифи на системные события, но это так же не проблема. Мелкая задача. Когда визор обнаружит опкод вашей rdtsc измените контекст должным образом. Добавлено спустя 6 минут mak > решение для подобной эмуляции, свой полный эмулятор Я никогда не писал полноценный эмулятор и не вижу смысла это использовать. Есть лишь один случай, когда это может быть нужно(локально, не вари всякие) - альтернатива прямому исполнению, тоесть инструкцию можно исполнить, но для этого нужна RWX память, что может зарубить защита или привести к детекту. Если задача не затрагивает обход защиты в динамике, то эмуляция никакого смысла не имеет. Тем более что она не профайл, в отличие от прямого исполнения, а до кучи проблем - размеры, а значит и стабильность не фонтан. А есчо у эмулятора есть такая фишка, как изолированная выборка данных(атомы). Это просто палево, большее чем даже отладчик Добавлено спустя 18 минут mak Кстате по выборке в эмуляторах, если вы не в курсе, то работает это очень просто. Эмулятор пытается транслировать адрес при выборке, а он не валид. Это спец событие формируется эмулируемым кодом. Тогда эмулируемый код попытается декодировать инструкцию, а её нет - эмулятор изолирован от эмулируемого кода(атом). На этом эмуляция закончится. ----- vx |
|
Создано: 21 сентября 2018 21:27 · Личное сообщение · #15 difexacaw пишет: Тогда эмулируемый код попытается декодировать инструкцию, а её нет - эмулятор изолирован от эмулируемого кода(атом). На этом эмуляция закончится. И мы все умрём? Я пытался читать с начала, но уснул. Прошу прощения. Но вот под конец, когда эмулятор и эмулируемый код схлестнулись, стало интересно. | Сообщение посчитали полезным: Jupiter |
|
Создано: 21 сентября 2018 21:29 · Личное сообщение · #16 |
|
Создано: 21 сентября 2018 21:32 · Личное сообщение · #17 sefkrd пишет: QU4.3 https://www38.zippyshare.com/v/OLXJeygu/file.html сойдет? | Сообщение посчитали полезным: sefkrd |
|
Создано: 21 сентября 2018 23:40 · Личное сообщение · #18 |
|
Создано: 22 сентября 2018 01:05 · Поправил: hors · Личное сообщение · #19 difexacaw пишет: Не нужно ничего усложнять, решение собирается за вечер под пивас. В данном случае не нужны все эти сложности по профайлу, детектам, формату кода, куча системной обработки етц. Достаточно реализовать простейший визор, это зная принцип задача для ньюби. Берём ксед, от него нужен декодер длин и определение modrm. Забиваем битмапу маркеров не линейных инструкций, это всевозможные ветвления. Используем тлс для многопотока, там реализуем RWX буфер на 16 байт. Из битмапы ветвлений определяем линейная ли инструкция, если это так, то копируем и исполняем и идём дальше в цикл. Ели это ветвление, то пересчитываем адрес и переходим к нему. Если есть адресная выборка(EA(modrm)), то читаем значение и переходим туда. Элементарно это реализуется. Если я правильно понял,ты предлагаешь дизассемблировать каждую отдельную инструкцию, копировать её в буфер, каждый раз настраивать контекст и там исполнять? Всякие WinAPI не эмулировать, а тоже прогонять через твой "визор"? Идея конечно интересная, но практической пользы от этого нет. Так как это будет очень и очень медленно. ----- http://ntinfo.biz |
|
Создано: 22 сентября 2018 05:22 · Поправил: Gideon Vi · Личное сообщение · #20 |
|
Создано: 22 сентября 2018 23:01 · Личное сообщение · #21 Gideon Vi пишет: какой пивас пьёшь? Готов заслать, чтобы увидеть решение от тебя в виде исполняемого файла, который будет запускаться. Присоединяюсь. Зашлю в два раза больше того что зашлёт Gideon Vi. ----- http://ntinfo.biz | Сообщение посчитали полезным: Gideon Vi |
|
Создано: 23 сентября 2018 02:10 · Личное сообщение · #22 |
|
Создано: 23 сентября 2018 08:26 · Личное сообщение · #23 |
|
Создано: 23 сентября 2018 11:03 · Личное сообщение · #24 |
|
Создано: 23 сентября 2018 20:43 · Личное сообщение · #25 |
|
Создано: 23 сентября 2018 20:47 · Поправил: difexacaw · Личное сообщение · #26 Вот собрал пример, фактически лишь немногие рутины взял из прошлых реализаций, что бы собрать чистый пример. В процессе работы выводит в дебаг лог события если встречает сервисный вызов(senter, int, far) и rdtsc, cpuid, smsw. Так как долгое время заняла отладка, я не прикрутил системную обработку, поэтому пока на многопотоке не заведётся. А есчо оно прилично тормозное получилось - 140 раз в сравнении с прямым исполнением, но это из за того что сырая сборка, нет пакетной обработки, кэшей, циклов и прочей оптимизации. Работает на xp, 7; 8(wow). 5ec5_23.09.2018_EXELAB.rU.tgz - d2s.7z ----- vx | Сообщение посчитали полезным: Gideon Vi |
|
Создано: 24 сентября 2018 05:52 · Поправил: Alchemistry · Личное сообщение · #27 difexacaw Почему в 2018 году как и в 2009 твои поделия надо трахать под отладчиком чтоб они запустились и выдали хоть что-то? Прям как и сейчас. Если ты думаешь что это порог вхождения для какой-то илиты, то уже пора повзрослеть. Тоже касается описания всего этого. Ну оно работает, с пинка правда, поздравляю, как обычно 99% потенциальной аудитории не поймет ровным счетом ничего. |
|
Создано: 24 сентября 2018 06:18 · Личное сообщение · #28 |
|
Создано: 24 сентября 2018 17:30 · Поправил: difexacaw · Личное сообщение · #29 Alchemistry > надо трахать под отладчиком чтоб они запустились А как вы хотите узнать как оно работает, тот же дебаг вывод смотреть. Какой там смысл от адресов, без содержимого по ним. Или вам может нужен гуй и диалог с надписью работает.. Вопрос был выше как трекнуть события типо тск, не ясно чего вы ждёте. В примере фича лишняя с адресами, можно урезать на треть или даже в половину, если выкинуть адресную трансляцию - можно определить указатель в индирект ветвлениях без трансляции, заменить два бита в опкоде и получится push раскодированного значения. Но трансляция позволяет мониторить адреса, строку например в памяти найти и тп. Низкий профайл - если использовать пакетную обработку, не перезагружать без надобности контекст, он повысится ровно на порядок. Это кстате невозможно сделать для обычной эмуляции. Что бы завести это на обычном апп нужно допилить системную часть - мониторить потоки, передачи управления из км, обработать сервисы, нп NtContinue. Иначе новые потоки не будут мониториться и при некоторых вызовах для мониторящегося потока слежение за ним будет теряться. ----- vx |
|
Создано: 25 сентября 2018 09:07 · Личное сообщение · #30 difexacaw пишет: Или вам может нужен гуй и диалог с надписью работает.. Как ты не поймёшь - ты и выложил апликуху котора 3 раза выводит MessageBox. Что оно там внутри ещё делает никому нафиг не интересно - практической пользы ноль. difexacaw пишет: Низкий профайл - если использовать пакетную обработку, не перезагружать без надобности контекст, он повысится ровно на порядок. Это кстате невозможно сделать для обычной эмуляции. И нафига тогда этот велосипед? Если можно запустить процесс под отладкой, включить сингл стэп и в обработчике анализировать опкоды. Будет также по скорости, если не быстрее. Плюс стабильнее - т.к. кода минимум, без всех этих дизасмов и т.п. difexacaw пишет: Что бы завести это на обычном апп нужно допилить системную часть - мониторить потоки, передачи управления из км, обработать сервисы, нп NtContinue. Иначе новые потоки не будут мониториться и при некоторых вызовах для мониторящегося потока слежение за ним будет теряться. Воу воу, а как же "не надо усложнять" и "собирается под пивас"??? В итоге очередная поделка. Если бы она хотя бы делала то что ты сам написал - позволяла запустить любой процесс и писала в лог (не в debug output!) адреса определённых команд (cpuid, rdtsc к примеру) - польза бы была, хоть какая-то. А так очередной мотор и непризнанный гений, а вы все ламо и учите матчасть... |
|
Создано: 25 сентября 2018 13:46 · Личное сообщение · #31 Такой ажиотаж, я прямо не удержался. Code:
Code:
----- 2 оттенка серого |
<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . >> |
eXeL@B —› Протекторы —› Quick Unpack - универсальный распаковщик |