eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: XN210 (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› как найти CUSTOM RESОURCE в дампе exe vb6 vmprotect QuickUnpack
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 1.8 (гость)
Статус: Участник

Создано: 10 ноября 2018 22:26 New!
Цитата · Личное сообщение · #1

привет кто знает при компиляции vb6 программы, куда и по какому смещению (как найти) компилятор складывает resource files? Есть нерабочий дамп vb6 программы упакованой vmprotect3.0 и сдампленый QuickUnpack. Как найти в дампе ресурсы? Или QuickUnpack не дампит их? Поиск с Hiew ничего недал. Кто знает, спасибо всем

Ранг: 226.5 (наставник)
Статус: Участник

Создано: 10 ноября 2018 22:48 New!
Цитата · Личное сообщение · #2

aprivate пишет:
vmprotect3.0

aprivate пишет:
QuickUnpack

вы это серьезно?


Ранг: 119.9 (ветеран)
Статус: Участник

Создано: 11 ноября 2018 00:36 New!
Цитата · Личное сообщение · #3

Возьми IMAGE_OPTIONAL_HEADER.DataDirectoryResource.VirtualAddress, потом IMAGE_SECTION_HEADER.VirtualAddress секции, внутри которой этот адрес, вычти его из адреса ресурсов, сложи с файловым смещением этой секции. И развлекайся дальше:
Code:
  1. struct RESOURCE_DIRECTORY_TABLE
  2.          Characteristics   dd ?
  3.          TimeDateStamp       dd ?
  4.          MajorVersion         dw ?
  5.          MinorVersion         dw ?
  6.          NumberOfNameEntries       dw ?
  7.          NumberOfIdEntries         dw ?
  8. ends
  9.  
  10. struct RESOURCE_DIRECTORY_ENTRY
  11.          union
  12.                  NameOffset               dd ?
  13.                  IntegerId                  dd ?
  14.          ends
  15.          union
  16.                  DataEntryOffset          dd ?
  17.                  SubdirectoryOffset       dd ?
  18.          ends
  19. ends
  20.  
  21. struct RESOURCE_DATA_ENTRY
  22.          DataRva          dd ?
  23.          Size       dd ?
  24.          Codepage         dd ?
  25.          Reserved         dd ?
  26. ends

Ранг: 1.8 (гость)
Статус: Участник

Создано: 11 ноября 2018 01:20 New!
Цитата · Личное сообщение · #4

TryAga1n пишет:
aprivate пишет:
vmprotect3.0
aprivate пишет:
QuickUnpack
вы это серьезно?


Абсолютно серьезно, а что не так?
Мне не нужна сама рабочая программа,только ресурсы найти в дампе.
Более того этот нерабочий дамп весьма успешно открывается в VBDecompiler.
Вот код где ссылка на ресурс

loc_4EAF58: Proc_0_3_451D28(&H64)
loc_4EAF8C: Me.Global.LoadResData CVar(var_1D4), "CUSTOM", var_140
loc_4EAFB1: var_1DC = Bytes_TO_String(var_140)

Т.е. прога грузит данные из Custom ресурса var_1D4 в переменную var_140, и потом конвертит байты в стринг.
Вот как найти в теле дампа где сидит var_1D4

Ранг: 122.0 (ветеран)
Статус: Участник

Создано: 11 ноября 2018 09:56 New!
Цитата · Личное сообщение · #5

Чем не вариант: взять любую незащищенную программу на vb6 и посмотреть как и куда компилятор сложил ресурсы?

Ранг: 2.4 (гость)
Статус: Участник

Создано: 11 ноября 2018 14:27 New!
Цитата · Личное сообщение · #6

aprivate Попробуй прогу Resource Hacker, она для просмотра ресурсов. Правда, не помню, работает ли с VB

Ранг: 1.8 (гость)
Статус: Участник

Создано: 11 ноября 2018 14:28 New!
Цитата · Личное сообщение · #7

Ultras пишет:
Чем не вариант: взять любую незащищенную программу на vb6 и посмотреть как и куда компилятор сложил ресурсы?


я думал об этом, но как ее найти, может ктонибудь посоветовать exe info scanner по всем exe в директории или всего C:\

Добавлено спустя 19 минут
lx60 пишет:
Попробуй прогу Resource Hacker, она для просмотра ресурсов. Правда, не помню, работает ли с VB


спасибо, пробывал , она нашла только иконку и version info


Ранг: 1964.0 (!!!!)
Статус: Модератор
retired

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

Есть в QuickUnpack галка перестройки ресурсов, помогает?


Ранг: 264.9 (наставник)
Статус: Участник

Создано: 11 ноября 2018 21:59 New!
Цитата · Личное сообщение · #9

Есть способ, но я дух. Archer не так ли ?

Ранг: 271.6 (наставник)
Статус: Модератор
CrackLab

Создано: 11 ноября 2018 22:03 New!
Цитата · Личное сообщение · #10

так у него я так понял только нерабочий дамп на руках


Ранг: 264.9 (наставник)
Статус: Участник

Создано: 11 ноября 2018 22:18 · Поправил: difexacaw New!
Цитата · Личное сообщение · #11

SReg

Из дампа можно достать инфу, но игра не стоит свеч". Адреса не будут сходится с тестовой ос. Можно всё решить если у тс семпл в рабочей ос.

Ранг: 271.6 (наставник)
Статус: Модератор
CrackLab

Создано: 11 ноября 2018 22:25 New!
Цитата · Личное сообщение · #12

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


Ранг: 264.9 (наставник)
Статус: Участник

Создано: 11 ноября 2018 22:30 New!
Цитата · Личное сообщение · #13

SReg

В дампе есть образ, это же всегда дамп памяти. С него что угодно можно достать. Но это не точно, дамп в смысле полноценный, а тут тс сомнительной тулзой что то сохранил.

Ранг: 1.8 (гость)
Статус: Участник

Создано: 11 ноября 2018 22:38 New!
Цитата · Личное сообщение · #14

Archer пишет:
Есть в QuickUnpack галка перестройки ресурсов, помогает


какая именно? я вроде все попереключал.
Я использую QU 4.3 версию и дамплю как Attach proccess->Full unpack->Save

я нашел как найти в другой незапакованной проге ресурсы по стрингу "C U S T O M" т.е. 43005500530054004F004D, но в моем дампе я все облазил его там нет, у меня подозрения что QuickUnpack не дампит запакованые VMprotect ресурсы. Но почему этот нерабочий дамп отлично декомпилируется VBdecompiler? т.е код отлично дампится а ресурсы нет

Добавлено спустя 3 минуты
SReg пишет:
инде какую инфу ты достанешь из выделенной протектором памяти которой нет?


Но почему тогда, VBdecompiler отлично открыывает этот нерабочий дамп??


SReg пишет:
я же тебе намедни советовал почитать статьи для новичков но ты всех обгадил закрыв топик.


Уважаемый , вы меня с кем то путаете


Ранг: 264.9 (наставник)
Статус: Участник

Создано: 11 ноября 2018 22:43 New!
Цитата · Личное сообщение · #15

aprivate

Секция ресурсов прямо не адресуется. Приложение к ней обращается через системный апи. Ставь туда точку останова и получишь ресурсы. Апи ищи в мсдн.

SReg

> я же тебе намедни советовал почитать статьи для новичков но ты всех обгадил

Это вы всё обгадили, я немного обиделся из за тупиковой задачи и метания говном, залился хохлядским коньяком и остапа понесло

Ранг: 1.8 (гость)
Статус: Участник

Создано: 11 ноября 2018 22:49 New!
Цитата · Личное сообщение · #16

господа тут форум новичков, неругайте , я только учусь)
По делу, я сдампил 4Гига HxD и winhex и тоже ничего не нашел.
Кто нибудь знает как достать из VMprotect ресурсы, сам код не нужен

Добавлено спустя 4 минуты
на сколько я понял VB6 компилятор хранит в секции CUSTOM просто байты, и индекс к ним.
В моем случае там текст т.е. в незапакованном exe он хранит например текст "HELLO" как CUSTOM,1,48454C4C4F


Ранг: 264.9 (наставник)
Статус: Участник

Создано: 11 ноября 2018 22:55 New!
Цитата · Личное сообщение · #17

aprivate

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

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

Ранг: 1.8 (гость)
Статус: Участник

Создано: 12 ноября 2018 01:55 · Поправил: aprivate New!
Цитата · Личное сообщение · #18

Почему тогда этот "один из самых сильный протекторов" позволяет получить абсолютно почти прозрачный исходный код двумя щелчками мыши ?? Получается любой vb6 exe проект запакованый Vmprotect можно получить исходники не напрягаясь. Неужели програмисты Vmprotect сделали очень сложным извлечением ресурсов а про исходный код который более важен забыли?

вот посмотрите на картинку
{ Атач доступен только для участников форума } - why.png

Ранг: 105.3 (ветеран)
Статус: Участник

Создано: 12 ноября 2018 03:51 · Поправил: VOLKOFF New!
Цитата · Личное сообщение · #19

aprivate пишет:
Почему тогда этот "один из самых сильный протекторов" позволяет получить абсолютно почти прозрачный исходный код

Новые версии VB не поддерживаются толком протом (как-то сам не уследил за этой инфой, VB почти не попадается)

aprivate пишет:
Получается любой vb6 exe проект запакованый Vmprotect можно получить исходники

Нет не получается, старые версии 5,6 поддерживаются.

Ранг: 17.3 (новичок)
Статус: Участник

Создано: 12 ноября 2018 05:09 New!
Цитата · Личное сообщение · #20

difexacaw пишет:
Как вы не поймёте. В динамике это делается просто.

+100500
ТС сделайте уже инжект dll в ваш таргет и стандартными ф-ями winapi для работы с ресурсами достаньте все, что нужно. Тем более ID вам известны.


Ранг: 574.3 (!)
Статус: Модератор
Research & Development

Создано: 12 ноября 2018 09:45 New!
Цитата · Личное сообщение · #21

aprivate
Почему тогда этот "один из самых сильный протекторов" позволяет получить абсолютно почти прозрачный исходный код двумя щелчками мыши

Потому что:
1. VMProtect адекватно защищает только Native VB, а не P-Code VB.
2. GPcH создал хороший декомпилятор P-Code VB, который ты используешь.

По факту P-Code и так работает при помощи виртуальной машины Visual Basic Virtual Machine.

По твоей задаче:
Перехватывай LoadResData и получай данные в чистом виде.

Описание LoadResData:
Code:
  1. LoadResData(ID, Type)


У пользовательского типа "Custom" может быть Type = 10 (число вместо строки)

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



Ранг: 264.9 (наставник)
Статус: Участник

Создано: 17 ноября 2018 04:25 New!
Цитата · Личное сообщение · #22

Jupiter

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


Ранг: 574.3 (!)
Статус: Модератор
Research & Development

Создано: 17 ноября 2018 11:30 New!
Цитата · Личное сообщение · #23

difexacaw пишет:
ресурс всегда распакован в памяти

В большинстве случаев это так, но насколько я помню, PeP (Private exe Protector) хукал системные функции работы с ресурсами в контексте процесса и выдавал распакованный ресурс только при обращению к нему через эти функции. По задумке автора защиты это должно было усложнить восстановление ресурсов после дампа, но по факту эти запакованные ресурсы хранились в запакованной структуре, которую было не сложно распарсить и создать чистую директорию ресурсов. Как вариант можно инжектнуть свой модуль (библу), которая будет вызывать EnumResourceTypes[Ex], EnumResourceNames[Ex] и потом дампить все найденные ресурсы.


Ранг: 1964.0 (!!!!)
Статус: Модератор
retired

Создано: 17 ноября 2018 12:00 New!
Цитата · Личное сообщение · #24

Насколько помню, в проте, где ресурсы пошифрованы, а доступ к ним похукан, не реализованы функи перечисления ресурсов. Видимо, полагаются на то, что защищённый софт их не дёргает.


Ранг: 574.3 (!)
Статус: Модератор
Research & Development

Создано: 17 ноября 2018 13:07 New!
Цитата · Личное сообщение · #25

Archer пишет:
не реализованы функи перечисления ресурсов

Возможно. Поэтому я и написал про разбор внутренней запакованной структуры с потыренными ресурсами.


Ранг: 264.9 (наставник)
Статус: Участник

Создано: 17 ноября 2018 15:25 · Поправил: difexacaw New!
Цитата · Личное сообщение · #26

Jupiter

PEP ?
Если это так, то это реализация анклава(software enclave) - данные существуют лишь при их выборке. Это техника из виксов по сокрытию памяти. Я посмотрю подробно.


Ранг: 574.3 (!)
Статус: Модератор
Research & Development

Создано: 17 ноября 2018 15:57 New!
Цитата · Личное сообщение · #27

difexacaw
Я его (Private exe Protector) последний раз копал 10 лет тому назад, когда писал кейген к самому пепу и к LikeRusXP (была такая прога для локализаторов), поэтому уже смутно помню, как именно там была реализована защита ресурсов в деталях, но в той версии (а это была версия 2.7x) восстановить ресурсы не было проблемой.


difexacaw пишет:
Это техника из виксов по сокрытию памяти

Одним из первых vx-техники в коммерческом софте стал "использовать" Лёша Солодовников, когда заюзал двиги старого доброго Win32.Crypto (Prizzy/29A) и Win95.Marburg (GriYo/29A) в ASPack 2.11 и ASProtect 1.1.
Так что тырить vx-наработки не новая идея у коммерсов )


Ранг: 264.9 (наставник)
Статус: Участник

Создано: 17 ноября 2018 18:42 New!
Цитата · Личное сообщение · #28

Jupiter

Та версия PEP что у меня есть не трогает апи работы с ресурсами:

LdrFindResource_U
LdrEnumResources

FindResoureA
etc

В образах не тронуты.

Это было бы слишком круто, если бы протектор реализовал анклав на исключениях для подмены выборки. Такое было использовано как POC и наработанная техника, но практически даже в крипторах наверно не применялось, по крайней мере мне не известно.

Можно ради интереса трекнуть события при доступе к секции ресурсов.


Ранг: 264.9 (наставник)
Статус: Участник

Создано: 17 ноября 2018 19:33 · Поправил: difexacaw New!
Цитата · Личное сообщение · #29

Jupiter

Лог по событиям. Обычное апп накрыто PEP, при запуске стартуем поток, он ожидает запуск апп, те полный анпак и обращается к ресурсам:

Code:
  1.          invoke LdrFindResource_U, G_iBase, addr Rid, 3, addr Res
  2.          invoke LdrAccessResource, G_iBase, Res, addr Rbase, addr Rsize
  3.          mov eax,Rbase
  4.          mov eax,D[eax]


Инициализация апп, это старт треда, затем он входит в ожидание.

0x10000000 база монитора(визора).
0x7C9.. это нэйтив.

Тред выходит из ожидания и обращается к ресурсам.

Последнее событие и есть тот доступ к ресурсу. Ресурс в памяти полностью распакован.

{ Атач доступен только для участников форума } - pep.txt

Добавлено спустя 7 минут
Версия PEP взята с вашего сайта из раздела скачать.


Ранг: 574.3 (!)
Статус: Модератор
Research & Development

Создано: 17 ноября 2018 22:07 New!
Цитата · Личное сообщение · #30

А у тебя какие типы ресурсов?
PeP тырил не всё подряд.
Попробуй запротектить файлы Delphi с ресурсами типа RCData.
Насколько я помню, PeP тырил RCData и строковые ресурсы.
. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› как найти CUSTOM RESОURCE в дампе exe vb6 vmprotect QuickUnpack

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS