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

 eXeL@B —› Основной форум —› Crackme
. 1 . 2 . >>
Посл.ответ Сообщение


Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 09 августа 2009 21:25 · Поправил: Oott
· Личное сообщение · #1

Написан на асме(fasm), решение я думаю найти ключ.


c37a_09.08.2009_CRACKLAB.rU.tgz - CRACKME.7Z



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

Создано: 09 августа 2009 21:46 · Поправил: tihiy_grom
· Личное сообщение · #2

Oott
у тебя не до конца сделана проверка ключа.

Ибо крэкми принимает нормально такие ключи, как:
1234321)
1112211*

но потом тупо падает при выполнении поксоренного кода (который ксорится всегда, пусть и неправильным ключом). Получается что ключ прошёл первую проверку, а второй проверки перед ксором просто нет И выходит, что твой крэкми можно решать сколь угодно долго и наугад



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

Создано: 09 августа 2009 21:51
· Личное сообщение · #3

Oott пишет:
Договорились мы с друганом

Если договорились-выполняй.Нечего здесь лапшу на уши кидать...




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

Создано: 09 августа 2009 21:55
· Личное сообщение · #4

крякми решать видимо только брутом..




Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 09 августа 2009 22:03
· Личное сообщение · #5

tihiy_grom, ну вобще я же написал, что все сделал на скорую руку с проверкой ключа ни фига не решил, т.е. там дофига вариантов проходит. Сорри, наверно надо было делать проверку по ксореному коду.
yuB, не с тобой договаривались и ладно(eсли в тему нечего написать лучше не писать)




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 09 августа 2009 22:04 · Поправил: BoRoV
· Личное сообщение · #6

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

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

-----
Лучше быть одиноким, но свободным © $me




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

Создано: 09 августа 2009 22:16
· Личное сообщение · #7

Oott пишет:
не с тобой договаривались и ладно

Так к чему преамбула?
...Ты сначала напиши кросс-платформенный крякми,потом советуй.Или уточняй что только для Билла.Здесь не у всех MSWIN
не майкрософтом единым...



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 09 августа 2009 22:23
· Личное сообщение · #8

Это не крекми, это брутми. Берём дизасм длин и проверяем две вещи - CRC пароля и валидность кода. Основываясь на том факте что байты пошифрованы через один и всего их 28, можно сделать попытку понять что за код там мог быть. Но это глупо, так как вообще не понятно что должно быть в случае верного пароля. Нет никаких логичных строк с сообщением об успехе.

Тогда что считать решением? Любой красивый (или не очень) не падающий код?

tihiy_grom пишет:
такие ключи, как:
1234321)
1112211*

Ну зачем такие сложные? 81 вполне подходит

P.S. Люблю защиты которые требуют в основном работу мозга, а не процессора.




Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 09 августа 2009 22:41
· Личное сообщение · #9

BoRoV, если у вас отсутсвует какое-либо желание или внимание читать шапку темы, это ваши проблемы. Поберег бы силы, чем выписывать так называемый 'крик души'. Да и помойму жаловаться человек на людей может от том, что за последнее время ни кто не мож написать крякми с хорошим алго, только тогда , когда сам сделак крекми с хорошим алго.
Ну а вообще повторю, я здесь выложил сей крякмис не для того, чтобы сказать:'ребята посмотрите какой я крекми написал, кто сможет отломать'. А для того, чтобы разобраться с сеим методом защиты. Ему же есть место существования, есть. И как я понял, если попадется такой софт, то для отлома всетаки одну лицензию придется купить. Но, несколько раз я от кого-то слышал, что есть особо дзенствующие люди, которые могут без ключа отламывать подобные методы защиты(ессесно не брутом).
И когда писался сей крякми, небыло задачи написать мега опасный крякми с крутым алго, введу нехватки опыта, времени, знаний и еще наверн много чего, а зада была разобраться с определенным методом защиты.(Это для любителей удивляться)



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 09 августа 2009 22:43
· Личное сообщение · #10

Oott пишет:
ессесно не брутом

Это ты сам так решил? Есть ребята которые без ключа отламывают Secured Sections в арме и запротекченные процедуры в аспре. Ест-но брутом

Кстати то что байты ксорятся через один - это ошибка. Это очень плохо и может быть использовано для определения КОПов шифрованных инструкций.




Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 09 августа 2009 22:55
· Личное сообщение · #11

progopis, спс за толковые ответы. Как раз про арму и слышал. Насчет 'это ты сам так решил?' - да), ибо ключи там не брутабильны или нужно потратить много времени. А о ксореных байтах через один, кода писал даже и представить не мог что може дать анализ, да и сейчас вобщем-то.




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 09 августа 2009 22:56
· Личное сообщение · #12

Oott пишет:
BoRoV, если у вас отсутсвует какое-либо желание или внимание читать шапку темы

желание как раз было, потому как надоело ломать забугорские крякми, вот вижу тут выложили наш крякми, обрадывался. Я шапку как раз то прочитал, и раз начилась дискусия на эту тему, то пожалуй я выскажусь по этому поводу:
Oott пишет:
Вообще почему я это написал... Договорились мы с друганом, что напишим по крякмису и обменяемся, далее поковыряем для интереса. С его стороны было вынесено условие не использовать проты и пакеры т.к. это идиотизм, вобщем пусть лучше упор на алго будет.

ну твой друг выставил правильное условие, и вот он щас сидит кодит, ищет разные ухищрения, как ты в свою очередь решил пойти легким путем, и еще в то время как твой друг сам свой крякми тестит, ты решил свой "отдебажить" на нас, что уже есть не хорошо, т.к. получается что уже тебе помогали другие
Oott пишет:
Да и помойму жаловаться человек на людей может от том, что за последнее время ни кто не мож написать крякми с хорошим алго

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

-----
Лучше быть одиноким, но свободным © $me





Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 09 августа 2009 23:16 · Поправил: Oott
· Личное сообщение · #13

BoRoV, давай не будем вести бессмысленую дискусию, я думаю это ни кому не надо.
Насчет друга, понятно, что это мое личное дело, но запостился я здесь уже после того, как выслал крякми ему на ящег, так что все чесно. И как оказалось друг , точне даж знакомый он мне, новичек в этом деле, выслал мне крякми на делфи с использованием ExitWindows - как основной фичей защиты, что очень просто. Поэтому за него можешь не беспокоится))))
О плохих крякми за последнее время я вообще про себя ни слова не сказал это к тебе относилось.
p.s. пишу с мобилки, цитировать не могу(



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

Создано: 09 августа 2009 23:44
· Личное сообщение · #14

Oott пишет:

На счет твоего алго-успокойся.Все это не новое.Здесь полно таких тем с реальной коммерцией.Например -сетапник под паролем файлы пошифрованы.Кому то было интересно - брутят наверно еще.
Если тебе интересен брут - твоя проблема.
Ненужно здесь устраивать свой "полигончик" и выдумывать историю про друга...
Если софт имеет значение - сломают не смотря на метод защиты.Если нет-его ломать не будут.
Такое неломаемо




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 10 августа 2009 03:29
· Личное сообщение · #15

Непонятно, что считать решением. Это не кракми, это скардьми Автору незачет



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 10 августа 2009 06:45 · Поправил: Модератор
· Личное сообщение · #16

Gideon Vi пишет:
Непонятно, что считать решением.

Ну да, я тоже про это.

progopis пишет:
Тогда что считать решением?


Но есть одна зацепка. Правильно ли я понял что вот здесь:

Code:
  1. .code:004022B0                 db  8Ch ; Ì
  2. .code:004022B1                 db  15h
  3. .code:004022B2                 db  80h ; À
  4. .code:004022B3                 db  30h ; 0
  5. .code:004022B4                 db  40h ; @
  6. .code:004022B5                 db    0


После того как код будет расшифрован, будет патчится байт 0x4022B0 на 0xFF. Если так, то там спрятана функция (MessageBoxA ?) которая и выводит сообщение о том что всё ок.

Если предположение верно, решать надо будет так. Ставим SEH или VEH, перебираем последоватаельность, которая может быть на месте пропущенных байт (а может быть и сам пароль, но скорее всего это будет медленнее), далее проверка дизасмом длин кода, проверка на наличие внешних вызовов (келы и джампы - это тоже в дизаме длин), если нет то ставим бряк (если не создавать отладчик для брута то прото jmp) и выполняем. Далее проверяем указанный выше байтик на 0xFF.




Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 10 августа 2009 07:55 · Поправил: Oott
· Личное сообщение · #17

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




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 10 августа 2009 08:32 · Поправил: Gideon Vi
· Личное сообщение · #18

Oott пишет:
А тут 21 символ, долговато придется, дажа зная длину...


дык о том и говорят. Кракми - интересный алго, финты с антиотладкой и т.п., но ни как ни брут. В чем интерес-то? Всё равно, что протом по ключу покриптовать.
progopis, красавец, нашел путь, но дальше-то все равно тупой брут




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

Создано: 10 августа 2009 09:45
· Личное сообщение · #19

Gideon Vi пишет:
Кракми - интересный алго, финты с антиотладкой и т.п., но ни как ни брут. В чем интерес-то? Всё равно, что протом по ключу покриптовать.

ну или в архив рар запихать с ключом. Имхо крякми должно быть красивым, никак не ломаться за минуту, если известна хотя бы одна валидная пара, юзать какие-то новые методы антиотладки и т.п...Ну а ксор куска кода паролем старо как гамно мамонта, интереса для взлома не представляет.

Тут можно в принципе обойтись и без дизасма длин, чисто логикой, т.к. ксор идет через байт. Если рассуждать, то в поксореном куске должна быть строка для вывода "правильного" сообщения (ее там не видать через байт), либо юзать уже существующую. Из существующих строк подходит только "Ок", значит в коде должен быть указатель на него. Также в коде должен быть вывод этого сообщения - либоо SendMessage (что скорее всего, ибо автор оригинальностью не отличается), либо MessageBox. Опять же должны быть на них переходы. Вот в таком духе..ну это тупо наугад, но сломать можно - чтобы была верная мессага. Ну а т.к. автор не назвал, что должно быть в случае верного решения - предлагаю тупо подобрать код, выводящий нужное сообщение..




Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 10 августа 2009 10:44
· Личное сообщение · #20

Вобщем с последними высказыванием выше я согласен. Зародилась в голве идея, реализовал т.к. ни че похожего ранее не писал.(цель была написать нечто неломаемое дабы озадчить знакомого) Захотел увидеть чужие мнения о данной теме и разобраться в ней, мнения увидел, в теме разобрался, за что всем огромное спасибо. Что касается самой поделки, progopis узнал, что в случае успешного завершения выводится MessageBox + зная длину пасса может кто и сбрутит.



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 10 августа 2009 13:55
· Личное сообщение · #21

Oott
Есть у меня смутные подозрения что ты ошибся когда вставлял на своё место зашифрованный код. Не буду пояснять почему, но просьба проверить (причём файл лучше брать с атача, чтобы не перепутать) пароль на том что ты нам дал. Работает ли крекми так, как ты хотел.

P.S. Проверять просьба без отладчика.




Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 10 августа 2009 14:43
· Личное сообщение · #22

Эм, вообще я проверял перед тем как выложить сюда, сейчас вот еще раз проверил, все пашет. Может я вышлю пароль для проверки нейтральному человеку, скажем для Ara или Gideon Vi, a они поттвердят... Может действительно что-то не то.




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

Создано: 10 августа 2009 14:47
· Личное сообщение · #23

не, мне не надо - я мож тоже буду ломать =)



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

Создано: 10 августа 2009 14:50 · Поправил: dmoon
· Личное сообщение · #24

Да возможно это и старо, и не очень интересно, но всегда когда начинаешь хочется попробывать все это, и не только потому что возможно это кому-то интересно или нет, а просто потому что бы показать хотя бы самому себе что ты можешь такое сделать, пусть для кого-нибудь это и очень просто. Я вот в своем первом крэкми делал упор на антиотладку, чтобы показать себе что не зря потратил время на изучение методов антиотладки. Можно так же провести параллель с математикой, например зачем изучать Дифф Ур; ведь это старо как гавно мамонта , зато в будущем методы их решения помогут в физике или моделировании...



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 10 августа 2009 15:03 · Поправил: Модератор
· Личное сообщение · #25

Oott
Ну ок. Я не был на 100% уверен в косяке. Просто меня очень цепочки 05 ?? 1F ?? 00 смущают. У меня была мысль об ошибке, возникшей при копировании кода из другой секции. То есть я предпологал что на самом деле может быть 0x22 вместо 0x1F. Просто чтобы иметь возможность патчить код, надо иметь хотя бы в одном операнде (i32 или регистр) смещение того байта какой хотим патчить. Где можно уместить "E8 00 00 00 00" или заргузку оффсета явно пока не представляю. Предположение что 0x1F это ModR/M не очень нравится, поэтому есть ещё одно предположение что пошифрованный блок (та часть что расшифровывается паролем) просто сохраняет строку для вывода сообщеня об успехе и лежит эта строка по офсету 0x401F??, о чём также можно предположить если глянуть на второй параметр MessageBoxA - 0xE91F2C (ест-но что само значение будет ещё патчится, например в итоге может получиться push 401F2Ch).

Кроме того прошу обратить внимание на баг, который позволяет зафиксировать ещё один байт. EBX обнуляется уже после того, как будет считан нуль-байт из пароля. Если верить тому что длина пароля 21 символ. То нуль-байт попадает на 0x40227C - то есть после патча там так и останется 0x90.




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

Создано: 10 августа 2009 15:03
· Личное сообщение · #26

dmoon пишет:
Можно так же провести параллель с математикой, например зачем изучать Дифф Ур; ведь это старо как гавно мамонта , зато в будущем методы их решения помогут в физике или моделировании...

это неверная параллель. Верная параллель - это когда приходит студент на занятия и всем показывает - "Глядите, я дифуравнение какое составил!". А ему говорят - куйня, оно во всех книжках такое же написано.



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 10 августа 2009 15:13
· Личное сообщение · #27

dmoon пишет:
делал упор на антиотладку

сам делал или из книжек скопи-пастил?




Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 10 августа 2009 15:35
· Личное сообщение · #28

dmoon, спасибо за поддержку. Конечно когда я писал, то не взирая ни на кого, хотел доказать хотябы себе, что смогу реализовать, что задумал.
progopis, респект! Вторая догадка обсалютно верна. Сначала идет сохранение строки несколькими dword'aми, а потом вывод этих строк MessageBox'ом.



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 10 августа 2009 16:10 · Поправил: Модератор
· Личное сообщение · #29

Бля... Почему никто не сказал мне что я накосячил??? Не 28 там длина... Вот это не заметил 402222 add dl, al

Корчое почти добил, осталось только строку распознать до конца...
.code:00402252 mov dword ptr ds:401F81h, 75106107h
.code:0040225C mov dword ptr ds:401FBBh, 67136FE2h
.code:00402266 mov dword ptr ds:0EF1F3Fh, 69046143h
.code:00402270 mov dword ptr ds:0D51F01h, 2C006E42h
.code:0040227A mov dword ptr ds:0EC1F90h, 6F6F67C9h
.code:00402284 mov dword ptr ds:0EA1F30h, 6FF82009h
.code:0040228E mov dword ptr ds:0FD1F3Dh, 0AF2111h
.code:00402298 mov dword ptr ds:0E31F30h, 9529C8h
.code:004022A2 push 0
.code:004022A4 push 40BBA0h
.code:004022A9 push 401F40h
.code:004022AE push 0
.code:004022B0 call ds:MessageBoxA
.code:004022B6 jmp short loc_4022D0

P.S. Некоторы байты галимые, но КОПы восстановил полностью. И никакого брута - только здравая логика. Кстати из-за своей ошибки я потратил очень много времени впустую.



Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 10 августа 2009 16:32
· Личное сообщение · #30

Старо как мир. Я такое писал в 2002 году, и то это уже было до меня 2 раза (кто помнит anticmex).
Всего я писал 3 версии, все их поломала девушко codera. Вот ее тутор для моего сериалми, подойдет и для этого кракми
ЗЫ: в аттаче мой сериалме и кейген к нему.

Тема : serial me v2
-------------------------------------------------------------------------------
heya SaNX

а почемy сабж не в эхy? ;)

name: codera
pass: 002A3F3DBC

эта штyка совсем поpадовала - yже поинтеpесенее пpям.


касательно тyтоpиала
вpяд ли yдастся описать все по пyнктам. потомy что мозги pаботали в таком
pежиме, в котоpом последовательность мыслей и логических выводов не имеет
значения и не запоминается. мысли ксоpятся дpyг с дpyгом и с интyицией,
пpимеpно так это можно описать. hack_mode (q) =]




пеpвая часть кpякмиза такая же, как и в пpедыд. веpсии. отличие#1: 5 байт
полyчаются из пасвоpда дpyгим способом - таким, что тепеpь если мой пасвоpд
pавен '002a3f3dbc', то полyченные из него 5 байт бyдyт 00 2a 3f 3d bc,
yдивительно, не пpавда ли? коpоче, ты это все сам знаешь, а я паpy слов пpо
замечательный зашифpованный бyфеp - отличие#2.

длина оного повеpгла в изyмление: 108 байт, что тyда можно запихать? я
подyмала, что сpеднего pазмеpа письмо и pyчнyю отpисовкy msgbox'a. в общем, это
богатство по-пpежнемy заксоpено 5-байтовой стpокой. выкладки и pассyждения по
поводy pасшифpовки застpяли где-то в глyбинах подсознания, поэтомy ниже
небольшой список пpовалившихся попыткок свеpшить plaintext attack:

пpедположила, что непосp-но с адpеса 401191 начинается push 30, push
_mb_title, push _mb_content, push 0, call MessageBox;
пpедположила, что по этомy адpесy находится фyнкция обpатной зашифpовки
массива, а потом вывод мсгбокса и выход;
и наобоpот;
и pазные вызовы имеющихся фyнкций в pазном поpядке;
и в обpатном поpядке;
"но ведь все pавно там должно быть `68 04 21 40 00 \n 68 ?? ?? 40 00 \n
e8 ?? ?? 00 00` !! " (push-push-call_msgbox)
"нy там же есть какой-то текст, сделаем же xor пpобелами"
"емае! нy может хоть xor `You did it` или xor `Registration` и где-то
вылезyт повтоpяющиеся 5 байт ?! "

все это свеpшалось в hiew, конечно же. ...до plaintext-атаки по байтy eb и
символy 'e' как наиболее веpоятным в данном коде и тексте дело все-таки не
дошло. помешало этомy такое наблюдение:

_=== [ Windows Clipboard ] --> ===_
6A B7 68 3C CE \
45 9F 65-F8 F9
50 CC 23 F0 E4 тyт типа стpока (я в это пока веpю)
50 8D 36 E5 E3
57 84 64 91-98
A3 7C 06 7C /
DA \
9C FE 45 91 8A
7C 07 42 01 1A
B4 A4 8A 32 C2
4E DC AE 97 1A \
B4 7C 57 09 6A
4C-E8 64 D1 8A
CF EB D5 01 1A а тyт вpоде как должен быть код
5A 76 69 DC E2
5C FD-05 91 61
22 7C D5 01 69
6B D6 2F 91 61 /
2C 7C D5-01 CB
0E 74 74 6E 62
EF EC 45 91 61
23 7C D5 01-A8
CA 45 82 /
_=== <-- [ Windows Clipboard ] ===_

это шифpованный массив, pазбитый на длинy паpоля. что бpосается в глаза: 1)
есть несколько последовательностей `91 61 ?? 7c d5 01`; 2) в последнем столбике
много байтов 0x?A; 3) в пpедпосл. столбике много байтов 0x?1.

(1) заставило пpовеpить эти последовательности на пpедмет соответствия их
`e8 ?? ?? 00 00` и `68 ?? ?? 40 00`, после pяда неyдачных попыток дошло, что
это `eb ?? ....`. значит, ксоpим весь массив байтом, полyченным из `eb ??` и
пpедполагаем попyтно, что после `eb ??` бyдет nop (пpедполагаем так, потомy что
(2) и (3)). ввеpхy вылезает стpока is..fan..sti.. . /* "yпpажнение 101. Вставь
пpопyщенные бyквы, pасставляя недостающие знаки пpепинания:" */ из пpопyщенных
бyквов полyчились недостающие байты паpоля. вот собственно и все, что я имею
вам доложить. дальше - по пpедыдyщемy тyтоpиалy..

непонятно навеpное нихpена, да? особенно к чемy (2) и (3) и откyда nop'ы.
хз, это надо пpочyвствовать.

[ private reversing alliance ]

--- `лампочка, значит, - сказал стаpичок, хихикая и потиpая pyки. -
* Origin: кодиpyем помаленькy.` (q) АБС (codera.yandex.ru)

1e67_10.08.2009_CRACKLAB.rU.tgz - keygenme2.0.By.SaNX.rar

-----
SaNX



. 1 . 2 . >>
 eXeL@B —› Основной форум —› Crackme
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати