Сейчас на форуме: (+8 невидимых)

 eXeL@B —› Протекторы —› Quick Unpack - универсальный распаковщик
<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . >>
Посл.ответ Сообщение


Ранг: 55.8 (постоянный), 6thx
Активность: 0.030
Статус: Участник
[www.AHTeam.org]

Создано: 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/




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 21 сентября 2018 00:11
· Личное сообщение · #2

mak пишет:
Намёк на полный декомпиль Темиды

ага держи карман шире...

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 21 сентября 2018 00:43
· Личное сообщение · #3

difexacaw
Можешь сделать лучше - возьми и сделай.
Но кроме громких и пафосных слов ничего не видно и не слышно.




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 21 сентября 2018 04:17
· Личное сообщение · #4

tihiy_grom пишет:
Но кроме громких и пафосных слов ничего не видно и не слышно.


это троль. Он существует, пока его замечают.



Ранг: 145.8 (ветеран), 190thx
Активность: 0.140.36
Статус: Участник

Создано: 21 сентября 2018 09:06
· Личное сообщение · #5

Вы еще скажите что он не прав насчет KiDebugRoutine Впрочем какая теперь разница.




Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 21 сентября 2018 10:47
· Личное сообщение · #6

Alchemistry пишет:
Вы еще скажите что он не прав


Конечно же он не прав и просто старается дешёвыми приёмами привлечь внимание к себе.

Ты тоже пытаешься этим заниматься, но до Клерка тебе как до луны. Так как ты к сожалению уныл и посредственен, а Клерк талантлив.

difexacaw пишет:
А если же поделка нужна для работы только с юм, то км не нужно лишний раз трогать, способов достаточно.


Расскажи тогда про способы эмуляции RDTSC в User Mode?

-----
http://ntinfo.biz





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 21 сентября 2018 11:00
· Личное сообщение · #7

hors пишет:
RDTSC

ну можно сбросить бит TSD в CR4 это запретит исполнение RDTSC в ring3, перехватить исключение и подсунуть нужное значение))))

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 21 сентября 2018 11:04
· Личное сообщение · #8

hors пишет:
Расскажи тогда про способы эмуляции RDTSC в User Mode?


Про моторы забыл?! Эмуляцией и построением графа, я вот жду когда Клерк выложит последнее решение для подобной эмуляции, свой полный эмулятор, очень интересно технически, но тема как-то заглохла в топике.

ClockMan пишет:
mak пишет:
Намёк на полный декомпиль Темиды
ага держи карман шире...

Куплю даже сумку Не предавай своё кредо оптимиста!

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube





Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 21 сентября 2018 11:15 · Поправил: hors
· Личное сообщение · #9

ClockMan пишет:
ну можно сбросить бит TSD в CR4 это запретит исполнение RDTSC в ring3, перехватить исключение и подсунуть нужное значение))))


А если защита проверяет значение отладочных регистров?

-----
http://ntinfo.biz





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 21 сентября 2018 11:25
· Личное сообщение · #10

hors пишет:
А если защита проверяет значение отладочных регистров

что бы их проверить надо быть быстрее моего левого хука

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 21 сентября 2018 11:57
· Личное сообщение · #11

Доступ к CR-регистрам, как чтение, так и запись, запрещены из ring3.

| Сообщение посчитали полезным: ClockMan


Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 21 сентября 2018 13:37
· Личное сообщение · #12

mak пишет:
я вот жду когда Клерк выложит последнее решение для подобной эмуляции

По последним обрывочным сведениям клерковизор почти дописан и теперь штурмует микроконтроллеры "на другой архитектуре, не важно актуальна или нет", потому что "не всё же IA юзать".

-----
2 оттенка серого





Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 21 сентября 2018 14:48 · Поправил: DenCoder
· Личное сообщение · #13

hors пишет:
А если защита проверяет значение отладочных регистров?


DR-регистры можно проверить через GetThreadContext(). Но если не завязано на прямых вызовах сервисов через шлюз, то можно перехватить.

Добавлено спустя 2 минуты
hors пишет:
Расскажи тогда про способы эмуляции RDTSC в User Mode?


ClockMan пишет:
ну можно сбросить бит TSD в CR4 это запретит исполнение RDTSC в ring3, перехватить исключение и подсунуть нужное значение))))


Archer пишет:
Доступ к CR-регистрам, как чтение, так и запись, запрещены из ring3.


без км никак только выявлять эмулятором rdtsc и патчить

-----
IZ.RU





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 21 сентября 2018 20:35 · Поправил: difexacaw
· Личное сообщение · #14

Не нужно ничего усложнять, решение собирается за вечер под пивас. В данном случае не нужны все эти сложности по профайлу, детектам, формату кода, куча системной обработки етц.
Достаточно реализовать простейший визор, это зная принцип задача для ньюби. Берём ксед, от него нужен декодер длин и определение modrm. Забиваем битмапу маркеров не линейных инструкций, это всевозможные ветвления. Используем тлс для многопотока, там реализуем RWX буфер на 16 байт. Из битмапы ветвлений определяем линейная ли инструкция, если это так, то копируем и исполняем и идём дальше в цикл. Ели это ветвление, то пересчитываем адрес и переходим к нему. Если есть адресная выборка(EA(modrm)), то читаем значение и переходим туда. Элементарно это реализуется.

Нужно есчо поставить нотифи на системные события, но это так же не проблема. Мелкая задача. Когда визор обнаружит опкод вашей rdtsc измените контекст должным образом.

Добавлено спустя 6 минут
mak

> решение для подобной эмуляции, свой полный эмулятор

Я никогда не писал полноценный эмулятор и не вижу смысла это использовать. Есть лишь один случай, когда это может быть нужно(локально, не вари всякие) - альтернатива прямому исполнению, тоесть инструкцию можно исполнить, но для этого нужна RWX память, что может зарубить защита или привести к детекту. Если задача не затрагивает обход защиты в динамике, то эмуляция никакого смысла не имеет. Тем более что она не профайл, в отличие от прямого исполнения, а до кучи проблем - размеры, а значит и стабильность не фонтан.

А есчо у эмулятора есть такая фишка, как изолированная выборка данных(атомы). Это просто палево, большее чем даже отладчик

Добавлено спустя 18 минут
mak

Кстате по выборке в эмуляторах, если вы не в курсе, то работает это очень просто. Эмулятор пытается транслировать адрес при выборке, а он не валид. Это спец событие формируется эмулируемым кодом. Тогда эмулируемый код попытается декодировать инструкцию, а её нет - эмулятор изолирован от эмулируемого кода(атом). На этом эмуляция закончится.

-----
vx




Ранг: 35.9 (посетитель), 94thx
Активность: 0.050.01
Статус: Участник

Создано: 21 сентября 2018 21:27
· Личное сообщение · #15

difexacaw пишет:
Тогда эмулируемый код попытается декодировать инструкцию, а её нет - эмулятор изолирован от эмулируемого кода(атом). На этом эмуляция закончится.

И мы все умрём?
Я пытался читать с начала, но уснул. Прошу прощения. Но вот под конец, когда эмулятор и эмулируемый код схлестнулись, стало интересно.

| Сообщение посчитали полезным: Jupiter


Ранг: 77.2 (постоянный), 73thx
Активность: 0.190.15
Статус: Участник

Создано: 21 сентября 2018 21:29
· Личное сообщение · #16

Господа, можно от кого-нибудь дубль ссылки на другой обменник для QU4.3..
RG не даёт скачать..
Спасибо!



Ранг: 35.9 (посетитель), 94thx
Активность: 0.050.01
Статус: Участник

Создано: 21 сентября 2018 21:32
· Личное сообщение · #17

sefkrd пишет:
QU4.3

https://www38.zippyshare.com/v/OLXJeygu/file.html
сойдет?

| Сообщение посчитали полезным: sefkrd


Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 21 сентября 2018 23:40
· Личное сообщение · #18

Вот читаю этот топ и перед глазами ну просто типичная же картина, которая описывается парой слов так ёмко и так полно, что ну не о чём тут просто холиварить:

кому-то шашечки, а кому-то ехать

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.





Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 22 сентября 2018 01:05 · Поправил: hors
· Личное сообщение · #19

difexacaw пишет:
Не нужно ничего усложнять, решение собирается за вечер под пивас. В данном случае не нужны все эти сложности по профайлу, детектам, формату кода, куча системной обработки етц.
Достаточно реализовать простейший визор, это зная принцип задача для ньюби. Берём ксед, от него нужен декодер длин и определение modrm. Забиваем битмапу маркеров не линейных инструкций, это всевозможные ветвления. Используем тлс для многопотока, там реализуем RWX буфер на 16 байт. Из битмапы ветвлений определяем линейная ли инструкция, если это так, то копируем и исполняем и идём дальше в цикл. Ели это ветвление, то пересчитываем адрес и переходим к нему. Если есть адресная выборка(EA(modrm)), то читаем значение и переходим туда. Элементарно это реализуется.


Если я правильно понял,ты предлагаешь дизассемблировать каждую отдельную инструкцию, копировать её в буфер, каждый раз настраивать контекст и там исполнять?
Всякие WinAPI не эмулировать, а тоже прогонять через твой "визор"?


Идея конечно интересная, но практической пользы от этого нет. Так как это будет очень и очень медленно.

-----
http://ntinfo.biz





Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 22 сентября 2018 05:22 · Поправил: Gideon Vi
· Личное сообщение · #20

difexacaw пишет:
решение собирается за вечер под пивас


какой пивас пьёшь? Готов заслать, чтобы увидеть решение от тебя в виде исполняемого файла, который будет запускаться.

| Сообщение посчитали полезным: sefkrd, HandMill, hors


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 22 сентября 2018 23:01
· Личное сообщение · #21

Gideon Vi пишет:
какой пивас пьёшь? Готов заслать, чтобы увидеть решение от тебя в виде исполняемого файла, который будет запускаться.


Присоединяюсь. Зашлю в два раза больше того что зашлёт Gideon Vi.

-----
http://ntinfo.biz


| Сообщение посчитали полезным: Gideon Vi


Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 23 сентября 2018 02:10
· Личное сообщение · #22

difexacaw, продавай квартиру, деньги через меня возвращаем тебе, скан платежки hors, гешефт делим пополам.




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 23 сентября 2018 08:26
· Личное сообщение · #23

hors

> Так как это будет очень и очень медленно.

А почему вы так решили ?

> Всякие WinAPI не эмулировать, а тоже прогонять через твой "визор"?

Иначе нужно знать все входа в целевой код. Так как из апи бывают обратные вызовы.

Gideon Vi

Хорошо, соберу сегодня вам пример.

-----
vx




Ранг: 5.5 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 23 сентября 2018 11:03
· Личное сообщение · #24

difexacaw пишет:
Хорошо, соберу сегодня вам пример.

Походу сегодня второе свершится пришествие Иисуса.



Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 23 сентября 2018 20:43
· Личное сообщение · #25

nv пишет:
Походу сегодня второе свершится пришествие Иисуса.

Наивный




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 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

Ранг: 145.8 (ветеран), 190thx
Активность: 0.140.36
Статус: Участник

Создано: 24 сентября 2018 05:52 · Поправил: Alchemistry
· Личное сообщение · #27

difexacaw
Почему в 2018 году как и в 2009 твои поделия надо трахать под отладчиком чтоб они запустились и выдали хоть что-то? Прям как и сейчас. Если ты думаешь что это порог вхождения для какой-то илиты, то уже пора повзрослеть. Тоже касается описания всего этого. Ну оно работает, с пинка правда, поздравляю, как обычно 99% потенциальной аудитории не поймет ровным счетом ничего.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 24 сентября 2018 06:18
· Личное сообщение · #28

Alchemistry
Чтобы собирать их в отдельную папочку и созерцать осенними вечерами, успокаивая себя "ну вот, а я пока ещё здоров"

-----
EnJoy!





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 24 сентября 2018 17:30 · Поправил: difexacaw
· Личное сообщение · #29

Alchemistry

> надо трахать под отладчиком чтоб они запустились

А как вы хотите узнать как оно работает, тот же дебаг вывод смотреть. Какой там смысл от адресов, без содержимого по ним. Или вам может нужен гуй и диалог с надписью работает.. Вопрос был выше как трекнуть события типо тск, не ясно чего вы ждёте. В примере фича лишняя с адресами, можно урезать на треть или даже в половину, если выкинуть адресную трансляцию - можно определить указатель в индирект ветвлениях без трансляции, заменить два бита в опкоде и получится push раскодированного значения. Но трансляция позволяет мониторить адреса, строку например в памяти найти и тп. Низкий профайл - если использовать пакетную обработку, не перезагружать без надобности контекст, он повысится ровно на порядок. Это кстате невозможно сделать для обычной эмуляции.

Что бы завести это на обычном апп нужно допилить системную часть - мониторить потоки, передачи управления из км, обработать сервисы, нп NtContinue. Иначе новые потоки не будут мониториться и при некоторых вызовах для мониторящегося потока слежение за ним будет теряться.

-----
vx




Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 25 сентября 2018 09:07
· Личное сообщение · #30

difexacaw пишет:
Или вам может нужен гуй и диалог с надписью работает..

Как ты не поймёшь - ты и выложил апликуху котора 3 раза выводит MessageBox.
Что оно там внутри ещё делает никому нафиг не интересно - практической пользы ноль.

difexacaw пишет:
Низкий профайл - если использовать пакетную обработку, не перезагружать без надобности контекст, он повысится ровно на порядок. Это кстате невозможно сделать для обычной эмуляции.

И нафига тогда этот велосипед?
Если можно запустить процесс под отладкой, включить сингл стэп и в обработчике анализировать опкоды.
Будет также по скорости, если не быстрее. Плюс стабильнее - т.к. кода минимум, без всех этих дизасмов и т.п.

difexacaw пишет:
Что бы завести это на обычном апп нужно допилить системную часть - мониторить потоки, передачи управления из км, обработать сервисы, нп NtContinue. Иначе новые потоки не будут мониториться и при некоторых вызовах для мониторящегося потока слежение за ним будет теряться.

Воу воу, а как же "не надо усложнять" и "собирается под пивас"???

В итоге очередная поделка.
Если бы она хотя бы делала то что ты сам написал - позволяла запустить любой процесс и писала в лог (не в debug output!) адреса определённых команд (cpuid, rdtsc к примеру) - польза бы была, хоть какая-то.
А так очередной мотор и непризнанный гений, а вы все ламо и учите матчасть...




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 25 сентября 2018 13:46
· Личное сообщение · #31

Такой ажиотаж, я прямо не удержался.
Code:
  1. 23.09.2018  20:31             8 704 d2s.dll
  2. 23.09.2018  20:30             2 048 Test.exe
  3. 18.06.2017  12:14         1 544 192 xedl.dll
8кб. Ну да, ну под 0.5 пиваса можно 8кб накидать. Внешним дизассемблером оно декодирует по 1 инструкции и переносит в буфер, следом за этой одной инструкцией джамп обратно:
Code:
  1. 00240000 68 0A104000 PUSH 40100A
  2. 00240000 8BFF        MOV EDI,EDI
  3. 00240000 55          PUSH EBP
  4. 00240000 8BEC        MOV EBP,ESP
  5. 00240000 837D 08 00  CMP DWORD PTR SS:[EBP+8],0
  6. 00240000 53          PUSH EBX
  7. 00240000 56          PUSH ESI
  8. 00240000 68 84AC0F77 PUSH 770FAC84
  9. 00240000 FF75 08     PUSH DWORD PTR SS:[EBP+8]
По одной, карл! Помнится шеллшторм выкладывал полторы строчки на си, которые делали то же самое, и они были закиданы ссаными тряпками, а здесь даже базового "дробить по инструкциями перехода" нету, не говоря уже обо всей остальной "прочей оптимизации". Надо было несколько месяцев парафинить головы, чтоб такой фуфел выкатить.

-----
2 оттенка серого



<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . >>
 eXeL@B —› Протекторы —› Quick Unpack - универсальный распаковщик
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати