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

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

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

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

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



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

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

aprivate пишет:
vmprotect3.0

aprivate пишет:
QuickUnpack

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




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

Создано: 11 ноября 2018 00:36
· Личное сообщение · #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


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




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

Создано: 11 ноября 2018 01:20
· Личное сообщение · #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



Ранг: 123.0 (ветеран), 10thx
Активность: 0.060
Статус: Участник

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

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

-----
.[ rE! p0w4 ].




Ранг: 7.1 (гость), 6thx
Активность: 0.040.01
Статус: Участник

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

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



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

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

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


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

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


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




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

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

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




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

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

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

-----
vx




Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

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

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




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

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

SReg

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

-----
vx




Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

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

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




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

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

SReg

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

-----
vx




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

Создано: 11 ноября 2018 22:38
· Личное сообщение · #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 пишет:
я же тебе намедни советовал почитать статьи для новичков но ты всех обгадил закрыв топик.


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




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

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

aprivate

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

SReg

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

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

-----
vx




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

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

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

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




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

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

aprivate

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

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

-----
vx




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

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

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

вот посмотрите на картинку
6052_12.11.2018_EXELAB.rU.tgz - why.png



Ранг: 173.8 (ветеран), 208thx
Активность: 0.120.36
Статус: Участник

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

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

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

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

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



Ранг: 20.2 (новичок), 16thx
Активность: 0.020.01
Статус: Участник

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

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

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




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

Создано: 12 ноября 2018 09:45
· Личное сообщение · #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 (число вместо строки)

-----
EnJoy!


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


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

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

Jupiter

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

-----
vx





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

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

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

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

-----
EnJoy!





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

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

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




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

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

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

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

-----
EnJoy!





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

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

Jupiter

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

-----
vx





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

Создано: 17 ноября 2018 15:57
· Личное сообщение · #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-наработки не новая идея у коммерсов )

-----
EnJoy!





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

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

Jupiter

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

LdrFindResource_U
LdrEnumResources

FindResoureA
etc

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

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

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

-----
vx





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

Создано: 17 ноября 2018 19:33 · Поправил: difexacaw
· Личное сообщение · #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.. это нэйтив.

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

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

3596_17.11.2018_EXELAB.rU.tgz - pep.txt

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

-----
vx





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

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

А у тебя какие типы ресурсов?
PeP тырил не всё подряд.
Попробуй запротектить файлы Delphi с ресурсами типа RCData.
Насколько я помню, PeP тырил RCData и строковые ресурсы.

-----
EnJoy!



. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› как найти CUSTOM RESОURCE в дампе exe vb6 vmprotect QuickUnpack
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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