первый уровень с оффсайта можно сразу слить. после его прохождения полу4аем второй, как я понимаю. вообщем пишем кто 4то смотрел-прошел, щас тоже бегло гляну
серийник должен быть длиной 4 байта, вот таблица констант по адресу 690030D4: table: array [0..7] of byte = ($07, $2E, $35, $29, $70, $20, $76, $68); вот код самой проверки введенного серийника: Code: 6900108C |. 83F8 04 CMP EAX,4 6900108F |. 0F85 95000000 JNZ FSC08_Le.6900112A 69001095 |. 0FB615 0231006>MOVZX EDX,BYTE PTR DS:[69003102] 6900109C |. A0 00310069 MOV AL,BYTE PTR DS:[69003100] 690010A1 |. 3005 D4300069 XOR BYTE PTR DS:[690030D4],AL 690010A7 |. 3015 D6300069 XOR BYTE PTR DS:[690030D6],DL 690010AD |. 3005 D8300069 XOR BYTE PTR DS:[690030D8],AL 690010B3 |. 0FB615 0331006>MOVZX EDX,BYTE PTR DS:[69003103] 690010BA |. 0FB605 0131006>MOVZX EAX,BYTE PTR DS:[69003101] 690010C1 |. 3015 D7300069 XOR BYTE PTR DS:[690030D7],DL 690010C7 |. 3005 D9300069 XOR BYTE PTR DS:[690030D9],AL 690010CD |. 8A0D D5300069 MOV CL,BYTE PTR DS:[690030D5] 690010D3 |. 0FB615 0231006>MOVZX EDX,BYTE PTR DS:[69003102] 690010DA |. 0FB605 0331006>MOVZX EAX,BYTE PTR DS:[69003103] 690010E1 |. 320D 01310069 XOR CL,BYTE PTR DS:[69003101] 690010E7 |. 3015 DA300069 XOR BYTE PTR DS:[690030DA],DL 690010ED |. 3005 DB300069 XOR BYTE PTR DS:[690030DB],AL 690010F3 |. 80F9 61 CMP CL,61 690010F6 |. 880D D5300069 MOV BYTE PTR DS:[690030D5],CL 690010FC |. 75 2C JNZ SHORT FSC08_Le.6900112A 690010FE |. 803D D7300069 >CMP BYTE PTR DS:[690030D7],79 69001105 |. 75 23 JNZ SHORT FSC08_Le.6900112A 69001107 |. 803D D8300069 >CMP BYTE PTR DS:[690030D8],32 6900110E |. 75 1A JNZ SHORT FSC08_Le.6900112A 69001110 |. 803D DA300069 >CMP BYTE PTR DS:[690030DA],30
($07, $2E, $35, $29, $70, $20, $76, $68) table[1] := serial[1] xor table[1]; table[3] := serial[3] xor table[3]; table[5] := serial[1] xor table[5]; table[4] := serial[4] xor table[4]; table[6] := serial[2] xor table[6]; temp1 := table[2]; temp1 := temp1 xor serial[2]; table[7] := serial[3] xor table[7]; table[8] := serial[4] xor table[8]; mov table[2], temp1 table[2] = 61h table[4] = 79h table[5] = 32h table[7] = 30h с4итаем верный серийник, ответ не пишу 4тобы инетерсней было. когда вбиваешь валидный, появится мыло, на которе нужно послать ответ и полу4ить линку на 2 уровень
перешел на второй уровень. делал минут 20 первый уровень по статистике сайта сделал кто-то за 8 минут.
только4то вывесили результаты на оффсайте. а второй уровень времени нет проходить, там либо долго реверсить либо нудно рипать и брутить, в любом слу4ае пока нет времени, хотя сама идея интересная
дык так и норм... хули там... алго в пару строк... я минут за 10 зделал. а вот со вторым влом уже возится... он вопервых не запускаеццо, там антиотладка и упх повешен(хотя нах было его так паковать, "типо трудно"?) хотя надо и второй ломать... ибо интересно на третье чудо посмотреть...
алго на лицо, в первую минуту стало ясно что оно делает. но есть загводка - как это работает? так что пользуясь моментом спрошу - каким способом получить валиднф?
реверсить не получиться долго) там мд5 в конце зато можно найти маски для перебора... beerhack запускать нада с параметром, который собственно пасс
тело сабжа обнажилось в первую минуту и возбудило мой аппетит своей простотой и лаконичность. xD но копаясь дальше я споткнулся об xor. пользуясь моментом - как он работает и есть ли статейки по реверсу за'xor'иных строк? я, канеш, пытался xor'ить константы для проверки (61, 79, 32, 30) значениями из памяти, но ничего не вышло, тем более, что я не незнаю какими именно нужно xor'ить. на худой конец, не могли бы вы на примере конкурсного крякмиса объяснить (в личку, если не желаете компромтировать) алго нахождения первого символа?
ProTeuS, так ведь я и спрашиваю про xor, я ж спп учил, от чего аналогия асмовского xor'a с обджект паскалевеским для меня бесполезна - не работал с ним, значит и не знаю для чего он, и как с ним бороться. если б понимал механизм работы оного, то и не спрашивал, тем более что в этой ветке это оффтоп, да и вы всё разжевали для самых маленьких. ну а теперь про ужасы xD тут и тут не состыковочка, во всяком случае на спп. но(!) не будем путать простую невнимательность, если она вообще есть, с незнанием.
>>так ведь я и спрашиваю про xor, я ж спп учил, от чего аналогия асмовского xor'a с обджект паскалевеским для меня бесполезна там не паскаль, а псевдокод, хоть и паскалеподобный для простоты понимания >>не состыковочка, во всяком случае на спп. но(!) не будем путать простую невнимательность, если она вообще есть, с незнанием см. прошлый пункт >>я, канеш, пытался xor'ить константы для проверки (61, 79, 32, 30) значениями из памяти, но ничего не вышло, тем более, что я не незнаю какими именно нужно xor'ить. X xor const = Y -> const xor Y = X ни4его кроме математики ненужно знать, язык программирования-это уже подообности для конкретного алгоритма. предполагаю, 4то ты проксорил там 4то-то, полу4ил ответ в X но непонял 4то с ним делать. а нужно было просто полу4ить аски-символ (CHAR) от результата. это и будет ответом.
первый улыбнул ) левелап ) если кто ещё не видел тема на краклабе http://www.cracklab.ru/f/index.php?action=vthread&forum=1&topic=12457 победители http://www.f-secure.com/weblog/archives/00001480.html ЗЫ а UPX во втором не обычный или мне с недосыпа всякая фигня мерешится?
снимается, но Tls-колбек в анпакнутой версии вроде как не отрабатывает и не исполняет код, который далее будет крити4ен при прос4ете сериала
первий уровень БРЕД! я его за 1минуту сделал, +к тому, я только новичок =) мой пасс: Asm07REC а второй упакован UPXом, роспаковка запросто идет, в Ольке открив, заNOPим строчки 4011E1, 4012D?, 10123F, и виходит messagebox: "Congratulations! Please send an e-mail to [email protected] Assembly 2007 Reverse-Engineering Challenge - Level 2 Copyright (c) 2007 F-Secure Corporation "