Вот недавно написал новый CrackMe. В нём я немного повторился (пусть это будет подсказкой). http://slil.ru/23426600 Да, hidden +x(крякми) +3(на асме) . Шутка. ____________________________ В крякми только-что обнаружился недостаток. Несколько валидных ключей. ProTeuS можешь удалить тему если хочешь. Я осознал свою ошибку спасибо BUG(O)R'у.
То что я говорил, насчёт этой структуря, не значит что я не знаю что у неё в нулевом элементе, это слишком важный элемент, чтоб его не знать. Уже на этапе завершения, а тут срочно уходить надо, позже продолже
Эх выкроил ещё 5 минут, молодец хороший крякми, помогло знание опкодов, нехороший ключик ты выбрал ... +2 КрякМи, +2 Асм
Приятно слышать(читать) это от тебя. Но всё таки я не разделяю твоего оптимизма. Вообще пасс - 1037. Он преобразовывается так Code: 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 будет иметь следующие параметры: Code: 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. получится следующее. Code: 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 прогрессбару. Но я считаю, что это было бы не совсем честно по отношению к вам. Сам бы не хотел искать иголку в стоге сена. Вобщем ошибку понял, исправлюсь! Хорошо, только скажи куда сливать, чтоб форма да логотип и без метров рекламы.
Как я его получил: Небольшой фрагмент програмы, 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
к сожалению не было времени поковырять сабж =( >>бы сказал в его отсутствии, поxorивание- этож разве шифрование но даже по солюшнам все оценили "красоту" крякмиса, а не стойкость криптоалго, в нем использованого, т.к. последнее врядли может быть ка4ественным критерием оценки сложности взлома самого крякми и гарантом не существования в нем коллизий >>Хорошо, только скажи куда сливать, чтоб форма да логотип и без метров рекламы. рапида.ком