ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > Реверсинг
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Crackme - кто хочет секаса..
  #1  
Старый 08.06.2008, 16:55
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию Crackme - кто хочет секаса..

Сделал крякмис от нечего делать,

Ссыль: http://gr8.cih.ms/uploads/crackme_vm.exe (6 кб)
Сложность: средняя
Задача:
найти серийник под ваш ник =)
Дерзайте, у кого есть время и кому не лень разгребать кодесы)
 
Ответить с цитированием

  #2  
Старый 08.06.2008, 19:44
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

При беглом осмотре - ключ dword, так что можно набрутить =) Глубже пока не копал, просто любопытно - защита от брута есть?
 
Ответить с цитированием

  #3  
Старый 08.06.2008, 20:02
taha
Постоянный
Регистрация: 20.08.2006
Сообщений: 327
Провел на форуме:
2472378

Репутация: 1077
По умолчанию

раска, ты засранец... я так не успею первым сбрутить =)))
хотя отрыв ото всех у мну уже есть

ЗЫ: там футбол начался.... ток что, Great... секаса у меня не будет)))
пойду смотреть

Последний раз редактировалось taha; 08.06.2008 в 20:05..
 
Ответить с цитированием

  #4  
Старый 08.06.2008, 20:18
BlackSun
Members of Antichat - Level 5
Регистрация: 01.04.2007
Сообщений: 1,268
Провел на форуме:
10046345

Репутация: 4589


По умолчанию

Облин о_0 йа думал ток йа брутить решил :d
 
Ответить с цитированием

  #5  
Старый 08.06.2008, 20:18
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

если пропустить прыжок на вывод неправильного сообщения, то выводит превуюи последнюю букву "М" в сообщении. Если пропустить всю проверку, то М только в конце Было бы время, поиздевался, а так - нет. Только зачем там SEH я не понял...

PS Блин, расскажите кто-нибудь про это ваше приватное коммьюнити cih.ms
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #6  
Старый 08.06.2008, 21:40
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

Ну кароч структура команд ясна - первый байт - опкод с двумя флагами. второй байт - по 4 бита индексы регистров вм. еще 2 дворда - добавление к содержимому регистров вм. за суммирование отвечает флаг в команде. данные грузятя из регистров вм в стековые переменные функции-обработчика. еще важным является регистр edx, ибо в нем результат выполняемой команды лежит. иль я где-то накосячил?
ну а теперь надо декодировать команды вм.

[ADDED]
хехе, уже переписываю пикод на псевдоасм =)
Ваще вм больше напоминает реальный проц нежели систему, целью которой служит усложнение исследования =) Больно все академично.
Ах да, ключег вот:
Ra$cal
568AA687
Ща допишу табличку опкодов и псевдокод.


Код:
mov r0, name
mov r1, E98FB720
mov r7, key

xor r4, r4

mov r5, name
add r5, name_len

lbl_NEXT_1:
mov r3, dword_ptr [r0]
xor r3, r1
add r4, r3
inc r0 ;// к следующей букве имени
cmp r0, r5
jle lbl_NEXT_1

cmp r4, r7
jnz lbl_EXIT
mov r8, 87148712
lbl_EXIT:
mov r4, 0
ret

6 млабших бит первого байта команды - opcode
8ой бит первого байта команды - управление разыменовыванием r1
7ой бит первого байта команды - управление разыменовыванием r2
4 млабших бита второго байта - r1. Индекс регистра вм
4 старших бита второго байта - r2. Индекс регистра вм
4 байта - data_r2
4 байта - data_r1
Длина команды - 10 байт

Если r1 или r2 равно 0x0C, то загружается в функцию data_r1 или data_r2 соответственно

rvm0 - адрес имени
rvm2 - длина имени
rvm7 - ключ
rvm1 - константа ксора

6 - xor r2, r1
3 - mov r2, r1
4 - add r2, r1
A - inc r1
F - cmp r2, r1
14 - jg $+0x0A
10 - jz $+0x0A
3F - ret

Последний раз редактировалось Ra$cal; 08.06.2008 в 23:53..
 
Ответить с цитированием

  #7  
Старый 09.06.2008, 00:53
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

Ra$cal, довольно точно реверснул структуру команд VM, за исключением неокторых моментов.
Могу дать подсказку, что регистр edx ничем не отличается от остальных в реализации VM, в самом интерпретаторе используются команды фиксированного размера по 10 байт, эмулируются 10 регистров общего назначения, а так же регистр указателя инструкций, регистр указателя стека и набор флагов для осуществления условных операций (только на условия e, g, l, ge, le)
А вообще половина эмулируемых возможностей в коде не используется..

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

В следующий раз будет пожестче + некоторые интересные антиотладочные приемы.

Последний раз редактировалось _Great_; 09.06.2008 в 00:55..
 
Ответить с цитированием

  #8  
Старый 09.06.2008, 01:22
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

да, я описал только то, что используется и не очень очевидно, vm_eip думаю каждый нашел =). ну и солюшн напешу для тех, кто неосилел.

зы: на счет edx не согласен
Код:
004020DD  |> \807D 08 01            CMP BYTE PTR SS:[EBP+8], 1
004020E1  |.  75 02                 JNZ SHORT crackme_.004020E5
004020E3  |.  8B3F                  MOV EDI, DWORD PTR DS:[EDI]
004020E5  |>  8917                  MOV DWORD PTR DS:[EDI], EDX
edx приходит из обработчиков команд. может это сделал компилятор, но в регистр вм пишется всегда содержимое регистра edx.

Последний раз редактировалось Ra$cal; 09.06.2008 в 01:27..
 
Ответить с цитированием

  #9  
Старый 09.06.2008, 01:44
taha
Постоянный
Регистрация: 20.08.2006
Сообщений: 327
Провел на форуме:
2472378

Репутация: 1077
По умолчанию

Nick: taha
Password: 45F6431E

Извините за задержку... просто мне тут друзья позвонили... пришлось отлучится попить пива и покурить пару бульбиков

Вобщем Ай эм хеккер! Сериал ок

Солюшен:
1. Патчим прогу
Код:
004025A7   .  FF35 7D154000 push dword ptr ds:[40157D]
004025AD   .  68 55154000   push offset <crackme_.Nick>              ;  ASCII "taha"
004025B2   .  E8 06FFFFFF   call crackme_.004024BD
004025B7   .  84C0          test al,al
004025B9      75 08         jnz short crackme_.004025C3
004025BB      FF05 7D154000 inc dword ptr ds:[40157D]
004025C1    ^ EB E4         jmp short crackme_.004025A7
004025C3      CC            int3
004025C4      CC            int3
2. Уходим пить пиво и курить траву!
3. Постим ник и пас

Вот такой вот простой хэкк!

add:
Брут брутом, а я уже почти дореверисл вм

Последний раз редактировалось taha; 09.06.2008 в 19:17..
 
Ответить с цитированием

  #10  
Старый 09.06.2008, 22:49
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

>> может это сделал компилятор
я на фасме писал )
edx используется просто тупо потому, что в одном месте я написал код, который его юзает, а потом просто скопипастил с изменениями. получилось, что он везде юзается для одной цели. с другими регистрами в принципе так же ввиду того же копипаста)
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кто хочет заработать rubik-nerubik О Работе 7 09.05.2008 21:15
кто же хочет обои?! brasco2k Болталка 1 03.05.2008 19:40



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ