PDA

Просмотр полной версии : CrackMe#3 by Taha


taha
18.11.2006, 19:24
Вот недавно написал новый CrackMe. В нём я немного повторился (пусть это будет подсказкой).
http://slil.ru/23426600
Да, hidden +x(крякми) +3(на асме) :) :). Шутка.
____________________________
В крякми только-что обнаружился недостаток. Несколько валидных ключей.
ProTeuS можешь удалить тему если хочешь.
Я осознал свою ошибку спасибо BUG(O)R'у.

Reject
18.11.2006, 19:52
Не закачивай пожалуйста больше ничего на slil.ru. спасибо.

taha
18.11.2006, 19:59
с прогрессбарами больше не связываюсь

hidden
18.11.2006, 20:26
То что я говорил, насчёт этой структуря, не значит что я не знаю что у неё в нулевом элементе, это слишком важный элемент, чтоб его не знать. ;)
Уже на этапе завершения, а тут срочно уходить надо, позже продолже :(

hidden
18.11.2006, 21:45
Эх выкроил ещё 5 минут, молодец хороший крякми, помогло знание опкодов, нехороший ключик ты выбрал :rolleyes: ...
+2 КрякМи, +2 Асм

taha
20.11.2006, 12:32
молодец хороший крякми
Приятно слышать(читать) это от тебя.
Но всё таки я не разделяю твоего оптимизма.
Вообще пасс - 1037.
Он преобразовывается так
004022EC 33DB XOR EBX,EBX
004022EE 43 INC EBX
004022EF C1E3 03 SHL EBX,3
004022F2 2BC3 SUB EAX,EBX
В итоге должно получится 405h.
Это сообщение отправляется прогрессбару.
И он увеличивает CurrentStep dd ? на некую const.
За всю программу это сообщенние отправляется два раза. Вконце прога смотрит полностью ли заполнен прогрессбар. И в зависимости от ответа выдаёт мессагу.
Также поставлен SEH на зашифрованную часть кода, если вдруг там будет невыполнимое действие.
После расшифровки SendMessage будет иметь следующие параметры:
00402322 90 NOP
00402323 90 NOP
00402324 90 NOP
00402325 6A 00 PUSH 0
00402327 90 NOP
00402328 90 NOP
00402329 90 NOP
0040232A 90 NOP
0040232B 6A 00 PUSH 0
0040232D 90 NOP
0040232E 90 NOP
0040232F 68 05040000 PUSH 405
00402334 FF35 A4404000 PUSH DWORD PTR DS:[4040A4]
Ошибка в том, что можно подобрать такой пасс, что прога будет расшифровывать не все параметры. И отправит их прогрессбару. например 312131. получится следующее.
00402322 AE SCAS BYTE PTR ES:[EDI]
00402323 AE SCAS BYTE PTR ES:[EDI]
00402324 AE SCAS BYTE PTR ES:[EDI]
00402325 54 PUSH ESP
00402326 3E:AE SCAS BYTE PTR ES:[EDI]
00402328 AE SCAS BYTE PTR ES:[EDI]
00402329 AE SCAS BYTE PTR ES:[EDI]
0040232A AE SCAS BYTE PTR ES:[EDI]
0040232B 54 PUSH ESP
0040232C 3E:AE SCAS BYTE PTR ES:[EDI]
0040232E 90 NOP
0040232F 68 05040000 PUSH 405
00402334 FF35 A4404000 PUSH DWORD PTR DS:[4040A4]
Как оказалось, или я что не так понял, прогрессбару нассрать что ему отправляют, и CurrentStep dd ? всё равно будет увеличен на некую const.
По мнению BUG(O)R'а проблема в алго шифрования( ябы сказал в его отсутствии, поxorивание- этож разве шифрование). Я думаю, что для любого алго найдётся такой ключ, что не возникнет искл. ситуация.
У меня есть более реальная мысль, думаю нужно создать новое сообщение для окна уж оното не будет принимать что попало и в нём создать SendMessage прогрессбару. Но я считаю, что это было бы не совсем честно по отношению к вам. Сам бы не хотел искать иголку в стоге сена.
Вобщем ошибку понял, исправлюсь!
Не закачивай пожалуйста больше ничего на slil.ru. спасибо.
Хорошо, только скажи куда сливать, чтоб форма да логотип и без метров рекламы.

hidden
20.11.2006, 20:19
Как я его получил:
Небольшой фрагмент програмы, XOR'ится одним байтом, но впадряд идущие 3 одинаковых байта, это наиболее вироятно nop инструкции
95 95 95 6F 05 95 95 95 95 6F 05 95 90
но у nop инструкции код 0x90, несложные логические операции: (0x90^0x95)+(1<<3)=13 дали мне это число.

Я не знаю зачем ты запихаешь 1037 в переменную al(byte), думаю то что ты от него отнимаешь 8 можно не учитывать, но если это так не задумано, то тебя прислудует число 13, потому что 1037&255 = 13 и это вполне валидный и более правильнй пас, чем тот который привёл ты, кстате количестко заксориваемых байт тоже 0xD = 13 ;)

ProTeuS
21.11.2006, 05:26
к сожалению не было времени поковырять сабж =(

>>бы сказал в его отсутствии, поxorивание- этож разве шифрование

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

>>Хорошо, только скажи куда сливать, чтоб форма да логотип и без метров рекламы.
рапида.ком

taha
21.11.2006, 10:34
Не очень люблю рапиду, но ладно так и быть.