Сейчас на форуме: bedop66938, testrev1337, vsv1, 2nd (+7 невидимых)

 eXeL@B —› Крэки, обсуждения —› Опять Access MDE ! Подведём итоги ?
Посл.ответ Сообщение


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

Создано: 26 мая 2007 17:50
· Личное сообщение · #1

В который раз уже сталкиваюсь с программой на Access в MDE файле. Поиск в гугле и по форуму вывел всего на несколько утилит для работы с этим: MDE Source Code Protector и MDE Unlocker от известной всем EverythingAccess.com, а так же на массу вопросов о взломе MDE и расплывчатых ответов типа «в принципе можно сломать», «юзай Олю, бряк на память» и ссылку на давно недоступную статью на xtin.km.ru
Я ни разу не видел статьи про успешный взлом MDE, не видел ни одной попытки разобрать код, не видел статей. Отсюда вопрос: неужели VBA находящийся в MDE файле намного сложнее Явы для которой полно инструментов в том числе и для работы с байт кодом, неужели структура в корне отличается от обычного VB для которого есть инструменты и даже очень успешные ? Неужели тема взлома MDE не актуальна ? Проще или интересней плодить статьи по распаковке аспра ? Ведь нет на паблике средств для работы с MDE пусть даже примитивных… Хотя варианты для создания подобного есть. Вот к примеру что выдаёт MDE Source Code Protector:

' VBA MODULE: cpySelect
' Module Variables
'------------------------------
Private Const dbNameKM As String = {VALUE NOT SHOWN FOR PROTECTION}
Private Const dbNamePrice As String = {VALUE NOT SHOWN FOR PROTECTION}
Private Const iCont As String = {VALUE NOT SHOWN FOR PROTECTION}

Public Function MkInsStmt(IntoName As String, dbName As String, sqlSel As String) As String
Dim stmt As String
'{COMPILED SOURCE CODE}
End Function

Public Sub cpyToKM()
Dim i As Integer
Dim iStm(6) As String
Dim sqlStmt As String
Dim sStm(6) As String
'{COMPILED SOURCE CODE}
End Sub

Public Sub DelFromKM()
Dim dbName As String
Dim i As Integer
Dim iStm(6) As String
Dim sStm(6) As String
'{COMPILED SOURCE CODE}
End Sub

Public Sub DelFromPrice()
Dim dbName As String
Dim i As Integer
Dim iStm(7) As String
'{COMPILED SOURCE CODE}
End Sub


Я не думаю, что зная структуру VB и сумев написать декомпилятор наш общий друг GPcH не смог бы за 10 минут написать простую программку которая анализируя MDE файл и ища в нём например DelFromPrice выдавала бы всего один ответ: адрес начала байткода этой процедуры. Что бы это дало ?
Можно было бы установить браяк на эту область, можно было бы экспериментальным методом написать простейший анализатор байткода, в конце концов можно было бы попытаться пропатчить функцию. Блин, я функцию IsDemo():Boolean встречал, а сделать ничего не смог…
Рассуждаем дальше. Наткнулся я на утилитку VBSpy. Она перехватывает вызовы некоторых VB5 и VB6 функций и ведёт лог в таком виде:

4048A7 VarBstrFromAnsi(48)=0
4048A7 VarBstrFromAnsi(55)=7
4048A7 VarBstrFromAnsi(42)=*
404CCA Mid(D:\Program Files\XXXXX\,20,1)=2
404CDF AnsiValueBstr(0)=48
404CCA Mid(D:\Program Files\XXXXX\,23,1)=2
404CDF AnsiValueBstr(2)=50
404ECA Mid(07*16*04,7,2)=04
404F0F StrCat(1924,+)=1924+
404F56 StrCat(1924+,112)=1924+112
403C65 Left(1924+112+1+64,4)=1924
403C85 StrI2(2)=2
403E8A StrCat(02,+)=02+
403E9E StrCat(02+,111111111111)=02+111111111111
403EC4 LenBstr(02+111111111111)=17
403FA5 StrCat(D:\Program Files\XXXXX,\)=D:\Program Files\XXXXX\


То есть делает расшифровку мест вызовов некоторых функций работы со строками.
Насколько я себе представляю, VBA код запихивается в виртуальную машину которая находится тут: VBE6.DLL
Может есть средства похожие на это но для VBA ?
К слову скажу, что я с помощью Kerberos 1.07 пытался перехватить вызовы из VBE6.dll, но к сожалению это мало что дало:

MSACCESS.EXE | 30017FE0 | DllVbeInit() returns: 00000000
VBE6.DLL | 65042568 | DllRegisterServer() returns: 00000000
VBE6.DLL | 65044F30 | DllRegisterServerEx() returns: 00000000
VBE6.DLL | 6502115A | rtcLeftCharVar() returns: 0013D698
VBE6.DLL | 650211B3 | rtcDir() returns: 0023493C
VBE6.DLL | 650211B3 | rtcErrObj() returns: 001BCAE8
VBE6.DLL | 650211B3 | rtcErrObj() returns: 001BCAE8
VBE6.DLL | 650211B3 | rtcErrObj() returns: 001BCAE8
VBE6.DLL | 65022D39 | rtcGetCurrentCalendar() returns: 00000000
VBE6.DLL | 65022D39 | rtcGetCurrentCalendar() returns: 00000000
VBE6.DLL | 650211B3 | rtcIsNull() returns: 00000000
VBE6.DLL | 65022D39 | rtcGetCurrentCalendar() returns: 00000000
VBE6.DLL | 6502115A | rtcLeftCharVar() returns: 0013C6DC
VBE6.DLL | 650211B3 | rtcDir() returns: 09264C3C
VBE6.DLL | 650211B3 | rtcErrObj() returns: 001BCAE8
VBE6.DLL | 6502115A | rtcLeftCharVar() returns: 0013C350
VBE6.DLL | 6502115A | rtcLeftCharVar() returns: 0013C350
VBE6.DLL | 650211B3 | rtcDir() returns: 09264C3C
VBE6.DLL | 6502115A | rtcLeftCharVar() returns: 0013C258
VBE6.DLL | 650211B3 | rtcFreeFile() returns: 00130001
VBE6.DLL | 650211B3 | rtcFreeFile() returns: 001B0001
VBE6.DLL | 6502115A | rtcShell() returns: 00000001
VBE6.DLL | 6502115A | rtcDoEvents() returns: 00000000
VBE6.DLL | 6502115A | rtcAppActivate()


Я зацикливал функцию DllVbeInit и после аттачился керберосом а далее идой для того что продолжить выполнение кода. К сожалению не поймал ни одного месаджбокса, хотя они там были. Но это не так важно, вопрос в другом, как искать нужное место в программе и самое главное как его потом править ?

У кого есть опыт в работе c MDE, кто ломал, у кого есть инструменты или советы – отзовитесь. Кому интересно разобраться – давайте это сделаем вместе на каком ни будь конкретном примере. По-моему давно назрела необходимость в исчерпывающей статье по данной тематике.
Конечно я пойму, если для многих это как распаковать upx и я где то чего то недопонял или не въезжаю в данную тему, а может плохо учил матчасть, но если это непростая задача и вы чувствуете неуверенность в успешной реализации взлома MDE собственными силами – давайте объединяться !
Согласен, что время у всех мало, полно других дел и проблем, но может всё намного проще, чем кажется ? Может совместными усилиями и навыками это не так сложно ? Может достаточно сломать пару простых программ, что бы потом этот вопрос не вызывал затруднений ?
Жду комментариев…



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 28 мая 2007 11:58 · Поправил: crc1
· Личное сообщение · #2

ToBad пишет:
вопрос в другом, как искать нужное место в программе и самое главное как его потом править ?

Во блин ты тему замутил, мне самому дааааавно хочется ее расковырять. Но думаю дело глухо. Я свою прогу, давно уже дело было, защитил паролем, который генриться от винта. Потом думаю давай взломаю, трахался дня три, потом плюнул. Вот ссылка по этой теме если интересно http://forum.ru-board.com/topic.cgi?forum=35&bm=1&topic=25630&start=20 http://forum.ru-board.com/topic.cgi?forum=35&bm=1&topic=25630&start=20



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

Создано: 28 мая 2007 13:41
· Личное сообщение · #3

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

Все же в тему:
Из MDE восстановить можно все, КРОМЕ макросов, которые в основном и содержат всю вкуснятину. Прог по теме декомпиляции макросов MDE не нашел, пользовался MDE Unlocker'ом для восстановления всего остального. В инете много ссылок на сервис восстановления everythingaccess но народ там молчит, по ходу авторы закрыли проект, мне не ответили не на запрос с сайта, не на почту.

Кстати, тема по взлому/декомпиляции MDE думаю очень актуальна, вот правда прог написанных MDE я не много знаю, в основном все заказы коммерческие и используются внутри одной фирмы/группы, от сюда такое отсутствие "крекерской" документации. Достаточно зайти на sql.ru и посмотреть на активность пользователей, значит это кому то надо...



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 28 мая 2007 14:18
· Личное сообщение · #4

Enigma пишет:
вот правда прог написанных MDE я не много знаю

Дык, потому что это геморно, писать легко, а дистрибутировать Поэтому наверное и отсутсвие инфы




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

Создано: 29 мая 2007 15:29
· Личное сообщение · #5

Огромное спасибо, что откликнулись и высказались на эту тему !

Я долго ждал, что будут ответы, но был очень удивлён, когда первые несколько дней ответов не было вообще. Знаю, что на форуме есть те, кто мог бы что-то сказать на эту тему. Например интересно было бы услышать мнение GPcH.

По ссылке которую дал Crc1 я нашёл программу AccessToVB, но к сожалению она проблемы не решает ибо как я понял не декомпилирует байткод, а лишь преобразует проект c Access на VB6. Это не касается MDE файлов. Вот их сайт h..p://www.gfminc.com/accessto.htm

Я хочу отметить, что не ставлю для себя задачу полной декомпиляции MDE до исходника. Меня интересует возможность взлома и патчинга VBA кода в MDE файле. Просто хочу разобраться в этой технологии и узнать есть ли на нашем форуме люди кому это удавалось…

Вот программы которые изучал я. Если кому интересно позаниматься совместно – буду очень рад.
h..p://www.softoman.ru/download.php?id=4729 - 1.4 Мб.
h..p://www.dea-analysis.com/ftp/price_mon/PRICE_MON_XP.zip - 12 Мб.

В общем тема остаётся открытой, надеюсь на ваши высказывания и идеи…




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 29 мая 2007 19:09
· Личное сообщение · #6

ToBad пишет:
Я не думаю, что зная структуру VB и сумев написать декомпилятор наш общий друг GPcH не смог бы за 10 минут написать простую программку которая анализируя MDE файл и ища в нём например DelFromPrice выдавала бы всего один ответ: адрес начала байткода этой процедуры.


За десять минут у меня только загрузится винда и я запущу проектный файл. MDE у меня пока нет в планах. Все просто - на это банально нет времени и это банально никому кроме крекеров не нужно.

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!





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

Создано: 29 мая 2007 20:09
· Личное сообщение · #7

GPcH пишет:
это банально никому кроме крекеров не нужно

Не согласен ! Разрабам - тоже нужно. Просто погугли на эту тему. Я так скажу, что даже чаще ищут не крекеры. Вот пример только с этого топика:

crc1 пишет:
Я свою прогу, давно уже дело было, защитил паролем


Enigma пишет:
Тоже занимался этой темой, тут же, надо было восстановить исходники MDE.
Вообщем моя проблема решилась таким макаром - восстановил все, кроме макросов, их не восстановил, а переписал...


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

Public Sub DelFromKM()
Dim dbName As String
Dim i As Integer
Dim iStm(6) As String
Dim sStm(6) As String
'{COMPILED SOURCE CODE}
End Sub


Как найти смещение в файле на этот самый {COMPILED SOURCE CODE} этой процедуры ?



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

Создано: 19 апреля 2008 14:27
· Личное сообщение · #8

Смотрю нет обсуждения с 2007 года. Я щас тоже ищу способ, как справиться с этим зверем - mde. Так и не нарыл никто ничего по этой теме?




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

Создано: 19 апреля 2008 19:29
· Личное сообщение · #9

Pafic пишет:
Так и не нарыл никто ничего по этой теме?


Я не нарыл...



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

Создано: 20 апреля 2008 11:18
· Личное сообщение · #10

ToBad пишет:
Я не нарыл...


Вот посмотри. Это старые наработки HEHа за 2003 год. Давал другой человек. Не пойму только, куда сам HEH делся.



e9d8_20.04.2008_CRACKLAB.rU.tgz - mde.zip



Ранг: 192.3 (ветеран), 18thx
Активность: 0.120
Статус: Участник
stoned machine-gunner

Создано: 20 апреля 2008 17:40
· Личное сообщение · #11

Pafic пишет:
Вот посмотри. Это старые наработки HEHа за 2003 год. Давал другой человек. Не пойму только, куда сам HEH делся.

гы-гы, не НЕН, а Hex. Найти его можно --> ТУТ <-- http://xtin.activebb.net/ .

-----
once you have tried it, you will never want anything else





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

Создано: 21 апреля 2008 03:45
· Личное сообщение · #12

Pafic пишет:
Вот посмотри. Это старые наработки HEXа за 2003 год.


Это я находил. Путёвого ничего не сделал, так как была проблема найти нужное место в MDE.

gloom пишет:
Найти его можно тут


Спасибо за ссылку !



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

Создано: 22 апреля 2008 14:47 · Поправил: Pafic
· Личное сообщение · #13

msdn2.microsoft.com/en-us/library/cc216515.aspx Если кто силен в английском.
Microsoft открыла форматы файлов офиса.



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 08 марта 2009 16:54
· Личное сообщение · #14

Поднял старую тему, ребята, подскажите, кто занимался, на данный момент взлом осуществим ?, стоит,ли вообще заморачиваться ? У меня есть запароленная база (Full) и с урезанными данными (Demo), может из демки как нибудь алгаритм стащить

В общем все надежды тухнут...




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 08 марта 2009 17:05
· Личное сообщение · #15

в чем-то гпч прав..особого смысла заморачиваться с МДЕ нету, из-за скудности софта.
Никто так и не рискнул поюзать китайские сервисы по декомпилингу МДЕ?




Ранг: 88.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 09 марта 2009 07:06
· Личное сообщение · #16

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




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 09 марта 2009 07:44
· Личное сообщение · #17

топик чтоли прочитай...


 eXeL@B —› Крэки, обсуждения —› Опять Access MDE ! Подведём итоги ?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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