Сейчас на форуме: surunnerr, Vicshann, zds (+4 невидимых)

 eXeL@B —› Оффтоп —› VMProtect…
<< . 1 . 2 . 3 . >>
Посл.ответ Сообщение

Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 21 апреля 2007 19:51
· Личное сообщение · #1

Товарищем dermatolog было предложено лично(!), создать топик для побайтного разбора на CRACKLAB.RU его ВМ (чисто ради интеллектуально-спортивного интереса, сталобыть партия в шахматы, где проигравших нет)
Топик расписан в такой манере, для того чтобы снять комплекс (с тех, кто неуверен, что это возможно сделать(себя тоже сюда приплюсую))

С чем предстоит столкнуться (быстрый предварительный анализ)
много кода в открытом виде, хм… вполне возможен копипаст , поставим нам за это +1
шелкод неюзается, разочаровало, но нам опять +1
мусор в ВМ незначительный, сталобыть значит, его вообще нет, еще в нашу копилку +1
пермутатора/мутатора не заметил, но кто знает, может гений инженерной мысли, нам это предоставил на закуску, еще, но уже такой ?1
проверка на бряк сисфунок (первый байт 0CCh) в открытом виде, -1 VMProtect
импорт вроде неизгажен - ИМХО (быстрый предварительный анализ показал - что в теле ВМ переходник спрятан в открытом виде)
предстоит разобрать 48 фунок, пропарсить внутренний стек (уж очень активно юзаеццо), сделать несколько таблиц и т. д.
написать статью как мне кажется это глупо, а сталобыть не реально и подсилу только нескольким людям (а попробовать всем хоццо) – ИМХО (в принципе это уже можно считать как защиту)
поэтому был создан топик для неограниченного числа людей, кто захочет понять, как это работает, ну и сталобыть кто самостоятельно нароет что-нибудь интересное, сможет здесь написать и объяснить подробно об этом, для того чтобы другие уже не изучали/анализировали этот участок кода, еще +1

что потребуеццо
знание ASM (средние), желательно еще несколько доп. ЯВУ
умение вступать и компилировать(обязательно)
сам срякмикс (сорри не удержался)
скачать его можно в той теме (его мы и будем подробненько разбирать) – (комментарий) у меня сложилось впечатление, что полностью весь рабочий код прожки был покрыт VMProtect(ИМХО), но нас это не остановит…
мой плагин (без него никак - ИМХО), чтобы избавиться от статик/~динамик анализа
свободное время и большое желание (времени очень много, но вот свободного как всегда ну очень мало)

цель
восстановить оригинальный код, если потребуется перекомпилировать…

!!!WARNING!!!
людей страдающих головокружением просьба не беспокоиться (за смерть головой-апстол ответственности не несем)
Посты с двумя словами не приветствуюцца

Пока будем пытаться победить танк… палками и камнями в тазике, но кто знает, что можно найти на своем пути ради победы ;)
Всем нам свойственно ошибаться, но методом проб и ошибок, сталобыть методом тыка, всегда можно добиться положительного результата…

Если кто за, прошу отписаться здесь...

P. S.
Если да, то завтра начну первый слив инфы, которую нарыл, не супер, но кое-что имеецца (мегакультных-крЭкеров просьба не обращать на наш скромный топик никакого внимания, ну и сталобыть для себя нового ВЫ ничего не найдете…) (все это для чайнЕка(такого как я), ну и для тех, кто просто горит/загорится желанием разобрать VMProtect)
Здесь приветствуется инфа от знающих людей, хотелось бы обсуждать эту ВМ в форме полностью доступной для новичков (если что где непонятно и хотелось бы подробнее, спрашивайте, такие вопросы(без них стопудофф никак) приветствуюццо, но про поиск по сайту и т. д. не забывайте…)

Пссс
Я не крЭкер – не ломаю ничего…
Я кодер – создатель & рипер – собиратель душ (для коллекции)
заюзав поиск по сайту, я заметил, что тех, кто поднимают руку на VMProtect, принижают незаслуженно, значит надо восстановить равновесие

PP. S.
Если все получиться и топик большинству понравиться, будет создан другой для разбора следующей ВМ, нет(!), делов-то, закрою и все…
Не будет желающих(!) тоже закрою…
Не спорю, всегда было трудно поднимать темы про разбор любого ВМ, но, а вдруг получиться?
Надеюсь, что все это не сочтут за флуд…

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com




Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 24 апреля 2007 19:41
· Личное сообщение · #2

dermatolog пишет:
это ИСПОЛНИТЕЛЬ байткода.

Да-да, согласен, псссиб баааальшое за подсказку!

Подведем незначительно-предварительные итоги того, что мы имеем на данный момент на паблике о фул-версии…
Байт-код это на что указывает регистр “ESI”, сталобыть в нем находиться указатель на адрес в памяти, где находиться сам Байт-код, 093h - это так для примера, я уже точно не помню ;)
После преобразования получается индекс смещения в таблице 10h
А вот сам код (то, что я называю функой, является – ИСПОЛНИТЕЛЕМ байт-кода)
Вот так выглядит ИСПОЛНИТЕЛЬ БАЙТ-КОДА в фул-версии:
0040755C NOT AH
0040755E MOV EAX,DWORD PTR SS:[EBP]
00407561 PUSHFD
00407562 LEA ESP,DWORD PTR SS:[ESP+4]
00407566 JNS 004070B6
0040756C PUSH D39FCCAC
00407571 PUSHAD
00407572 MOV EAX,DWORD PTR SS:[EAX]
00407575 CALL 0040864F
0040864F MOV DWORD PTR SS:[EBP],EAX
00408652 MOV BYTE PTR SS:[ESP],AL
00408655 PUSHFD
00408656 LEA ESP,DWORD PTR SS:[ESP+2C]
0040865A JMP 00401177

А вот так в демо-версии:
004566B4 MOV EAX,DWORD PTR SS:[EBP]
004566B7 MOV EAX,DWORD PTR SS:[EAX]
004566BA MOV DWORD PTR SS:[EBP],EAX
004566BD JMP 004560C9
Из выделенных участков кода мы видим, что код в фул-версии НЕ БЫЛ СУПЕР-ЗАМОРФЕН, так как находится в открытом виде:
Сталобыть подтвержден факт того, что в фул-версии были пока(!) обнаружены два движка – это двиг самого ВМ и движка обычного ОБФУСКАТОРА
Кто не согласен с моим мнением – прошу высказаться?! (всегда готов почерпнуть новые знания…)

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com




Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 25 апреля 2007 19:13
· Личное сообщение · #3

0040FBE0 55 PUSH EBP
0040FBE1 8BEC MOV EBP,ESP
0040FBE3 6A FF PUSH -1
0040FBE5 68 D0834100 PUSH 004183D0
0040FBEA 68 58104100 PUSH 00411058
Покрываем это EP демкой, и сделаем быстрый анализ, вот результаты:
(жесть, но я покрыл демкой прогу с защитой, для того чтобы пропачить ВМ и посмотреть на результаты… (результаты этого эксперимента я оставлю как великую святую тайну…))
Это как выглядит код оригинальной проги
6A FF PUSH -1 – опкод 6A
А вот так это выглядит в ВМ (ДЕМО)
61 FF – байт-код ВМ 61

вот так запускается исполнитель байт-кода
0042C617 MOV AL,BYTE PTR DS:[ESI]
EAX=00000061
0042C619 INC ESI
ESI=0042D111 \это EIP
0042C61A MOVZX EAX,AL
0042C61D JMP NEAR DWORD PTR DS:[EAX*4+42C13F] DS:[0042C2C3]=0042C5C4

А вот это функа самого исполнителя байт-кода
(Расширяет знаковый байт, до знакового двойного слова и кладет его в стек)
0042C5C4 MOV AL,BYTE PTR DS:[ESI]
EAX=000000FF
0042C5C6 INC ESI
ESI=0042D112
0042C5C7 CBW
EAX=0000FFFF
0042C5C9 CWDE
EAX=FFFFFFFF
0042C5CA SUB EBP,4
EBP=0012FFBC
0042C5CD MOV DWORD PTR SS:[EBP],EAX \здесь записывается в стек результат полученного значения
0042C5D0 JMP 0042C0D6
Продолжим дальше…

Это как выглядит код оригинальной проги
68 D0834100 PUSH 004183D0
А вот так это выглядит в ВМ (ДЕМО)
5F D0834100 – байт-код ВМ 5F

вот так запускается исполнитель байт-кода
0042C617 MOV AL,BYTE PTR DS:[ESI]
EAX=0012FF5F
0042C619 INC ESI
ESI=0042D113
0042C61A MOVZX EAX,AL
EAX=0000005F
0042C61D JMP NEAR DWORD PTR DS:[EAX*4+42C13F] DS:[0042C2BB]=0042C012

А вот это функа самого исполнителя байт-кода
(осуществляет чтение из памяти “ВМ” двойного слова находящегося после байт-кода и записывает в стек)
0042C012 MOV EAX,DWORD PTR DS:[ESI]
EAX=004183D0
0042C014 SUB EBP,4
EBP=0012FFB8
0042C017 MOV DWORD PTR SS:[EBP],EAX \здесь записывается в стек результат полученного значения
0042C01A LEA ESI,DWORD PTR DS:[ESI+4]
ESI=0042D117
0042C01D JMP 0042C0D6

А теперь посмотрим, что же у нас получается
ОРИГИНАЛ
0040FBE3 6A FF \ PUSH -1
0040FBE5 68 D0834100 \ PUSH 004183D0
0040FBEA 68 58104100 \ PUSH 00411058
“ВМ”
0042D110 61 FF
0042D112 5F D0834100
0042D117 5F 58104100
Из этих результатов видно, что движок “ВМ” (ДЕМО) берет оригинальный опкод (в данном случае PUSH) проги и, сделав обычную операцию вычитания из опкода значения 09, записывает его в свое адресное пространство, а данные находящиеся после опкода просто копирует…
Отсюда можно заключить что двиг “ВМ” содержит в себе обычный дизасмдлин и супер-примитивное алго вычитания, Мда… “ВПЕЧАТЛЯЕТ” просто Ах(Пиии.....)!!! (а, да чуть про копипаст не забыл…)

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com





Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 25 апреля 2007 20:02
· Личное сообщение · #4

Может попросим дерматолога защитить наш код? Чтобы иметь оригинал и 1-2 экземпляра vmp.exe

-----
Тут не могла быть ваша реклама





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

Создано: 25 апреля 2007 21:22
· Личное сообщение · #5

жжоте давайте купим ВМпрот, вещь в хозяйсте нужная.




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 25 апреля 2007 21:50
· Личное сообщение · #6

Мы уже акк на рапиду купили

-----
Тут не могла быть ваша реклама





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

Создано: 25 апреля 2007 22:46
· Личное сообщение · #7


Ко мне претензии есть?




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

Создано: 25 апреля 2007 23:05 · Поправил: Модератор
· Личное сообщение · #8

что ара пропил деньге?

Ara:
Нед-нед, это не я



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

Создано: 25 апреля 2007 23:31 · Поправил: sniperZ
· Личное сообщение · #9

Red Bar0n пишет:
что ара пропил деньге?

я пацстулам.да наверно.

а идейка про вмпрот неплохая.



Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 25 апреля 2007 23:53
· Личное сообщение · #10

Так, Флуд пошел…
Значит, ТЕМА никому не нужна, закрываю…

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com





Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 26 апреля 2007 07:25
· Личное сообщение · #11

Demon666 пишет:
Значит, ТЕМА никому не нужна, закрываю…

Нет нет - тема очень нужная, я её читаю перед сном )

Demon666 пишет:
0040FBE3 6A FF \ PUSH -1
0040FBE5 68 D0834100 \ PUSH 004183D0
0040FBEA 68 58104100 \ PUSH 00411058
“ВМ”
0042D110 61 FF
0042D112 5F D0834100
0042D117 5F 58104100

Дак вот чтобы в байткоде не было констант в оригинальном виде есть опция "Скрывать константы"
Demon666 пишет:
Отсюда можно заключить что двиг “ВМ” содержит в себе обычный дизасмдлин и супер-примитивное алго вычитания

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



Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 27 апреля 2007 04:14
· Личное сообщение · #12

dermatolog пишет:
в оригинальном виде есть опция "Скрывать константы"

lord_Phoenix пишет:
Может попросим дерматолога защитить наш код? Чтобы иметь оригинал и 1-2 экземпляра vmp.exe

Ara пишет:
давайте купим ВМпрот



-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com





Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 27 апреля 2007 07:12
· Личное сообщение · #13

Ну и сколько он стоит?

-----
Тут не могла быть ваша реклама





Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 27 апреля 2007 10:03
· Личное сообщение · #14

lord_Phoenix пишет:
Ну и сколько он стоит?

www.vmprotect.ru/buy.php




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 27 апреля 2007 10:22
· Личное сообщение · #15

хех, не мало (~140 wmz) можно и скинуться, только нужно ли оно так?

-----
[nice coder and reverser]




Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 27 апреля 2007 12:00
· Личное сообщение · #16

dermatolog пишет:
www.vmprotect.ru/buy.php

Что его продажи такие стремные чтоле(?), раз тут решил им банджить %))))…
Hellspawn пишет:
только нужно ли оно так?

Нет - ИМХО
Это просто нужно лично только Ara, он яростный поклонник ВМпрот`а - ИМХО

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com




Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 27 апреля 2007 12:35
· Личное сообщение · #17

Hellspawn пишет:
хех, не мало (~140 wmz) можно и скинуться, только нужно ли оно так?

Так может проще на декомпилер скинутся?



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

Создано: 27 апреля 2007 12:44 · Поправил: WoLFeR
· Личное сообщение · #18

Ухты прот сиски поддерживает

Supported formats (x32 and x64):
* EXE
* DLL
* SYS

Кстате а кто еще из протов sys супортит?
dermatolog
залей плиз ещераз обработаный крякмис с идентичными опциями




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

Создано: 27 апреля 2007 13:33
· Личное сообщение · #19

не, за 140 мне не нужен...и я не поклонник.




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

Создано: 27 апреля 2007 14:06
· Личное сообщение · #20

pavka пишет:
Так может проще на декомпилер скинутся?


Проще написать нужный плагин и получить декомпиль нахаляву для личного пользования.
Вот только кто только не начинал писать плагины, 99% забили на полпути

PS: Это офтоп, потому предлагаю любые ответы на данный пост в личку или на мыло

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





Ранг: 327.3 (мудрец)
Активность: 0.250
Статус: Участник

Создано: 27 апреля 2007 17:24
· Личное сообщение · #21

WoLFeR пишет:
Кстате а кто еще из протов sys супортит?

вроде как CodeVirtualizer

-----
in search of sunrise




Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 28 апреля 2007 01:49
· Личное сообщение · #22

WoLFeR
Думаю, это может объяснить, почему он ее не дает…

Посмотрим на инициализацию внутренних регистров “ВМ” (в демо - так проще для понимания написанного), интерфейс “ВМ” с реальным стеком, и сравним с фул-версией (попробуем определить уровень мутатора)

Две копии, покрытые демо и их начало, после того как попадаем внутрь волшебного CALL`а
0040FBE0 PUSH EBP<-------------------------------------->0040FBE0 PUSH EBP
0040FBE1 MOV EBP,ESP<--------------------------------->0040FBE1 MOV EBP,ESP
EBP=0012FFC0
0040FBE3 PUSH 0042C77F<------------------------------>0040FBE3 PUSH 0042C7CE
0040FBE8 CALL 0042C751<------------------------------>0040FBE8 CALL 0042C110
0042C751 PUSH EDX<------------------------------------->0042C110 PUSH ECX
0042C752 PUSH EBX<------------------------------------->0042C111 PUSH EBP
0042C753 PUSH EAX<------------------------------------->0042C112 PUSH EDX
0042C754 PUSH EBX<------------------------------------->0042C113 PUSH EAX
0042C755 PUSH EBP<------------------------------------->0042C114 PUSH EDX
0042C756 PUSH EDI<-------------------------------------->0042C115 PUSH EDI
0042C757 PUSHFD<---------------------------------------->0042C116 PUSH ESI
0042C758 PUSH ESI<-------------------------------------->0042C117 PUSH EBX
0042C759 PUSH ECX<------------------------------------->0042C118 PUSHFD
0042C75A PUSH 0<----------------------------------------->0042C119 PUSH 0
0042C75F MOV ESI,DWORD PTR SS:[ESP+2C] <------>0042C11E MOV ESI,DWORD PTR SS:[ESP+2C]
ESI=0042C77F<---------------------------------------------> ESI=0042C7CE
0042C763 MOV EBP,ESP<--------------------------------->0042C122 MOV EBP,ESP
EBP=0012FF90
0042C765 SUB ESP,0C0<---------------------------------->0042C124 SUB ESP,0C0
ESP=0012FED0
0042C76B MOV EDI,ESP<---------------------------------->0042C12A MOV EDI,ESP
EDI=0012FED0
Тут сразу становиццо видно как работает движок “ВМ”, изменяется очередность записи в стек значения регистров и изменяется адресное пространство, где находиться начало кода “ВМ”
Начало памяти регистров сохраняется в регистре EDI
Первые 12 байт-кода “ВМ” в ее адресном пространстве, осуществляют как раз инициализацию регистров (сохраняют в выделенном адресном пространстве значение регистров)
ну, чтоже посмотрим, как реализован сам интерфейс на примере: (этот исполнитель байт-кода является одним из основным механизмом в “ВМ”(демо))
(таблица – это тоже самое, что и адресное пространство просто так короче)
0042C684 AND AL,3C \ здесь байт-код превращается в индекс смещения в таблице регистров, так называемая маска (выравнивание)
0042C687 MOV EDX,DWORD PTR SS:[EBP] \ регистр EBP в “ВМ” по сути, тоже, что и ESP для стека
0042C68A ADD EBP,4
0042C68D MOV DWORD PTR DS:[EDI+EAX],EDX \ здесь происходит сохранение значения регистра в таблице регистров
0042C690 JMP 0042C12F
Короче советую потресить чуть, и понаблюдать за телодвижениями в стеке, так будет легче понять мои комментарии
Ну, а теперь таже функа в фул-версии (я выделил код специально, чтобы легче визуально воспринимать было)
(в фул-версии алго получения индекса немного отличается, но принцип остался такимже)
004087C8 STC
004087C9 ROL AL,1
EAX=0000007F
004087CB DEC DL
EDX=000000FF
004087CD BSWAP DX
EDX=00000000
004087D0 MOV DL,4B
EDX=0000004B
004087D2 INC DX
EDX=0000004C
004087D5 DEC AL
EAX=0000007E
004087D7 MOV DX,BX
EDX=0000779C
004087DA DH,CL
EDX=0000009C
004087DC OR DH,DH
004087DE PUSH EDI
004087DF XOR AL,0BE
EAX=000000C0
004087E1 DH,AH
004087E3 SUB AL,0AC
EAX=00000014
004087E5 DEC DX
EDX=0000009B
004087E8 SUB DH,DH
004087EA XOR AL,97
EAX=00000083
004087EC PUSHAD
004087ED BSWAP DX
EDX=00000000
004087F0 ROR AL,4
EAX=00000038
004087F3 CMC
004087F4 STC
004087F5 MOVSX DX,DL
004087F9 BT DX,6
004087FE AND AL,3C
00408801 CMC
00408802 CLC
00408803 MOV EDX,DWORD PTR SS:[EBP]
00408806 PUSHFD
00408807 CMC
00408808 TEST DH,CH
0040880A ADD EBP,4
EBP=0012FF9C
0040880D JMP 00408718
00408718 PUSHFD
00408719 PUSHFD
0040871A MOV BYTE PTR SS:[ESP+8],0AB
0040871F MOV DWORD PTR DS:[EDI+EAX],EDX
00408722 MOV BYTE PTR SS:[ESP],AL
00408725 PUSHFD
00408726 PUSH ESI
00408727 LEA ESP,DWORD PTR SS:[ESP+38]
0040872B JMP 00401177

Так, наконец, мы, подошли к тому от чего начинали %)
Сам “мутатор”, вернее плоды его творений (я расставил в комментариях оригинальные команды и специально мусор убрал (от любопытных глаз), чтобы понятнее было)
Это начало строго запрещается анализировать ньюбикам (смерть апстол обеспечена %))
00401025 CALL 004080D6
004080D6 PUSHFD
00401BE4 PUSHFD
00401BE5 MOV DWORD PTR SS:[ESP+4],ESI ; PUSH ESI
00401BF1 PUSHFD; PUSHFD ; тут местами надо поменять с EDX
00401BF2 MOV DWORD PTR SS:[ESP+4],EDX; PUSH EDX
00401C03 PUSH ESP
00401C04 PUSH 1DB16FF7
00401C09 MOV DWORD PTR SS:[ESP+4],EBX; PUSH EBX
00401C0E CALL 00407817
00407817 MOV DWORD PTR SS:[ESP+4],EBP; PUSH EBP
00407820 MOV DWORD PTR SS:[ESP],ECX; PUSH ECX
00407826 PUSH EDI
0040782C CALL 00408152
00408152 MOV DWORD PTR SS:[ESP],EBX; PUSH EBX
00408156 PUSH EAX
00408159 PUSH 0
00408167 MOV ESI,DWORD PTR SS:[ESP+2C]
ESI=1B992525
0040816B PUSHFD
0040816C MOV DWORD PTR SS:[ESP],EAX
00408170 XOR ESI,0EB7C5F5
ESI=152EE0D0
0040817D BSWAP ESI
ESI=D0E02E15
0040818B ADD ESI,2EDE9D3C
ESI=FFBECB51
00408199 NOT ESI
ESI=004134AE
004081AC LEA EBP,DWORD PTR SS:[ESP+4]; MOV EBP,ESP
EBP=0012F710
004081BF SUB ESP,0BC; SUB ESP,0C0
ESP=0012F650
004081CB LEA EDI,DWORD PTR SS:[ESP+1C]; MOV EDI,ESP
EDI=0012F650
004081CF SUB ESP,-1C
ESP=0012F650

Я думаю это сделано, для того чтобы еще на начале исследования результата работы прота отбить желание, но нас этим не победить!
Отсюда видно, что есть следы “мутатора”, но с полной уверенностью сказать нельзя пока не увидим вторую копию, а пока будем считать, что это примитивный метаморф…

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com




Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 06 мая 2007 04:51
· Личное сообщение · #23

dermatolog
Короче сдаюсь!
Примерно по часу в день для меня очень дорого обходятся, засим декомпиль неасилю (твои EBX&BL победили)…

Инфа что откопал
1) PASS: 3221666
2) Патч (срякмикс всегда будет радоваться)
Адрес 0040132D
Байты F77D08 (IDIV DWORD PTR SS:[EBP+8]) заманить на 6A0D5A (PUSH 0D&POP EDX)
3) Вот поэтому адресу 40507E лежит какая-то таблица, короче чет там переводит десятичные числа в шестнадцатеричные – походу это защита и покрыта ВМ (в это алго я не стал въезжать, оно к ВМ походу никакого отношения не имеет)

А если аффтар говнопроги решит поблагодарить юзера за сладкие шекеля, напишет больше чем Correct password слова благодарности, а? юзер с такой защитой строк ху(Пи…) дождется месаджабокса…
Импорт тоже жопа, если весь покрыть, говнопрога великим тормозом будет, если так его каждый раз юзать…
единственное считаю, его пригодны только(!), это если покрывать зловредные файлики, то тогда самое оно…
Потраченного общего времени на разбор ВМ чуть больше 2 дней (быстрее получиться, если постоянно сидеть без остановок разбирать)
Тему оставлю пока открытой, может Crawler посоветует чего “умного”, да и Ara может че еще насчет пиздабола напишет?

Пссс
А вообще ПАТЧ самой ВМ – ЭТО ЖЕСТЬ!!!

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com




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

Создано: 06 мая 2007 22:13
· Личное сообщение · #24

Demon666, молоток, пиши ст0тью, как ломал крякмикс.



Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 06 мая 2007 23:11
· Личное сообщение · #25

Demon666 пишет:
короче чет там переводит десятичные числа в шестнадцатеричные

(atoi (buf) % 17 == 13)? Сорцы ж есть

Demon666 пишет:
засим декомпиль неасилю

Описание команд ВМ хоть выложи



Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 07 мая 2007 03:09
· Личное сообщение · #26

sniperZ пишет:
пиши ст0тью

А что ты хочешь, чтобы я описал в статье тест, корректировку и дополнение функционала своего плуга чтоле?
В ручную эту стековую ВМ(фул) разобрать НЕ РЕАЛЬНО!!!
А вообще читайте цитату PE_Kill, которую я в этом топе постил там написаны золотые слова и неоспоримые!!!

rmn пишет:
Описание команд ВМ хоть выложи

У меня была, мысля показать, как выглядит простой PUSH в фул-версии, но не стал пугать народ…

rmn пишет:
(atoi (buf) % 17 == 13)

Хм… хз. подходит, но полностью неуверен, и я же написал, саму логику срякмикса не разбирал, чич-то ориентировался на результаты самой ВМ!!!

rmn пишет:
Сорцы ж есть

Кхе… где(?) можно на оригинал взглянуть?
При всем моем уважении к тебе, но ты что из команды dermatolog`а(?), если да, то залей плиз еще один запротекченый еще раз такой тест????....

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com




Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 07 мая 2007 08:56
· Личное сообщение · #27

Не, я не из команды dermatolog'а
Сорцы ищи в каталоге Examples\Visual C++ установленного VMProtect Demo



Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

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

Бу-ага, как-то неудачно мы с dermatolog`огом перепЕхнулись, он запротектил опенсорс, хе-хе, а я его не увидел, ЛОЛ!
rmn
Ага, патчил я оказывается вот это (из оригинала)
0040109B F7F9 IDIV ECX
0040109D 83FA 0D CMP EDX,0D
004010A0 75 15 JNZ SHORT 004010B7
Сейчас компильнул, точно оно(!), бля весит 28 кб, после компиляции протом 230 кб, почти в 10 раз больше делает, Лооооол!!!!...
Ну, а строки шифрованные находятся элементарно – запустим тест, ставится бряк на VirtualAlloc (я уже писал, что на начало функи бряк ставить нельзя, там проверка) лучше всего на ret, нажимаем CheckPassword, сработает бряк, в регистре EAX будет указатель на выделенную память, отображаем ее в окне dump, выделяем байт 100 и breakpoint->memory, on access, ну и жмем run, сталобыть истЕна – начинаем видеть куски расшифрованных строк… (в данном случае)
00B20000 6F727245 Erro
00B20004 00000072 r...
00B20008 72726F43 Corr
00B2000C 20746365 ect
00B20010 73736170 pass

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com





Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 16 марта 2008 10:28
· Личное сообщение · #29

Есть у кого-нить желание поковырять ещё раз опенсорс крякмикс? )



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

Создано: 16 марта 2008 16:25
· Личное сообщение · #30

О вроде эта темя была закрыта.

dermatolog
Есть желание увидеть плагин для олли из этой темы, у тебя случаем он не завалялся?

------------------------------------------------------------------
Если у кого имеется этот плагин киньте им в меня.




Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 06 мая 2008 23:19
· Личное сообщение · #31

dermatolog пишет:
Есть у кого-нить желание поковырять ещё раз опенсорс крякмикс? )


у меня есть


<< . 1 . 2 . 3 . >>
 eXeL@B —› Оффтоп —› VMProtect…

У вас должно быть 20 пунктов ранга, чтобы оставлять сообщения в этом подфоруме, но у вас только 0

   Для печати Для печати