· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ZEN —› Крякмис:

Посл.отвђт Сообщенiе


Дата: Фев 1, 2004 11:52:46

Я тут написал крякмис (пароль был заложен длиной 10 байт). Решил подобрать пароль к хешу и обнаружил, что есть некоторая особенность, возможно из-за нее или по другой причине пароль долго не подбирался (при моем способе подбора пароля). То есть было перебрано в несколько раз больше вариантов, чем 2**32 и хеш не совпадал. Кому интересно, посмотрите его и скажите была ли у вас похожая проблема при подборе пароля к хешу. Так же интересно бы узнать, сколько у кого времени потребовалось на подбор пароля и может кто то поделится своими крякмисами. Пароль я потом подобрал способом, использующим особенность хеша (плохой хеш). При этом гарантированно потребовалось менее 2**32 вариантов перебора. Ну об этом я расскажу позже. Хотелось бы услышать ваши комментарии. Да, условие взлома: COM файл патчить нельзя, так как это слишком просто.

_1405134978__Crck_pr.com


Дата: Фев 1, 2004 14:18:32

Хмм... Брутфорс?.. ;p
Такие крякмисы не очень...
Ты бы лучше алгоритм какой-нибудь
интересный залобал бы, что б можно было
кейгенчик написать...

P.S.
Тут не так давно я спрашивал про "умножение", т.е.
имеем:

mov eax,12345678h
imul eax,0ABCDEF77h

"Обратимо" ли это дело?..
Ну так мне ответили, что нельзя тут вернуть
начальное значение eax после такого умножения:
число станет большим, отсечётся старшая часть, в eax
будет только кусочек числа, etc...
Только брутфорс.. М-да...
Ан-нет.. Хе-хе.. оказавается можно... ;)
Вот такие пирожки... Ням-ням... d:)


Дата: Фев 5, 2004 19:37:49

To snatch: конечно умножение можно обратить, для этого , например расписываем в столбик в двоичной системе 0ABCDEF77H*X=RESULT, где RESULT известен и биты для X находятся довольно несложно. Для их нахождения можно написать простую программку. В результате для X будут найдены некоторые биты, а некоторые оставшиеся неопределенными можно поставить произвольными. Короче говоря, это задача для пятиклассников.
Теперь насчет моего крякмиса: если кто его решил напишите здесь пожалуйста как ломали, сколько времени ушло и.т.д. У меня какое то чувство, что хеш в моем крякмисе можно обратить, то есть не использовать тупой перебор, который к тому же например в моем случае принес мне неприятный сюрприз и мне пришлось поменять способ перебора. Я уже говорил об этом выше, но пока не буду рассказывать в чем причина, а то вам будет неинтересно. Я жду ваших мнений и очень удивлен тем, что никто его как я понимаю его не решил. Ладно, так уж и быть, кое чего напишу: если в найденном пароле два байта, расположенных через промежуток в три байта поксорить с одним и тем же значением, то хеш не поменяется, таким образом, найдя один пароль длины N, можно найти все другие той же длины. Ну это уже подсказка.
PS: ответьте кому интересно.


Дата: Фев 5, 2004 19:51:35

ответьте кому интересно

Ключевое слово "интересно" ;(


Дата: Фев 9, 2004 07:35:16

cs:0100 FA             cli
cs:0101 30C0           xor    al,al
cs:0103 2EA20801       mov    cs:[0108],al
cs:0107 EB02           jmp    010B
cs:0109 CD20           int    20
cs:010B 88C4           mov    ah,al
Хмм... AFAIK, только на четверках можно было подменять команду,
когда она уже загружена на конвеер. Теперь же этот код немедленно вылетает.
Или я туплю?


Дата: Фев 9, 2004 08:18:27

Он наверное просто сделает недействительной строку кеша т.е. будет тоооооормозить
А иначе как же совместимость ;) (Или это я туплю?)


Дата: Фев 24, 2004 16:55:34

Для пятиклассников?.. хе-хе.. ;)
А вот и нет.. Иди снова в школу
и учи матешу, т.к. никакого подбора битов
тут делать не надо.. d:P


Дата: Фев 25, 2004 07:54:24

To captain cobalt: Эту часть кода я использовал для того, чтобы при пошаговой отладке человек обламывался (у него при этом завершается программа cs:0109 cd 20 int 20h), тогда как при нормальном запуске программа продолжается с адреса cs:010bh. Под отладчиком turbo debugger этот прием срабатывает. К сожалению похоже, что с soft ice это не пройдет. Здесь идея в следующем: на момент выполнения инструкции mov [cs:010bh],al, инструкция безусловного перехода jmp 010bh уже в процессоре идет на декодирование и исполнение (скорее всего она уже декодирована) и ей уже без разницы что там записано в память она выполнится в своем первоначальном виде. В случае же работы под отладчиком в пошаговом режиме между инструкциями mov [cs:010bh],al и jmp 010bh будет исключение отладки и длинный код отладчика. Поэтому в этом случае будет выполнена модифицированная инструкция и безусловный переход будет на инструкцию int 20h - завершение программы. Надеюсь я понятно объяснил в чем дело. Если не понятно, то может я попробую поподробней объяснить. Кажется об этом приеме я прочитал в какой то статье Касперского. Вот только не знаю он ли автор этого способа или это кто то другой. Да, может кто нибудь покажет здесь свои крякмисы. И наконец вопрос: если кто решил мой крякмис, то напишите здесь пожалуйста о результатах и своих мыслях, а так же мне интересно что думает народ о том необходим ли здесь перебор или может хеш можно обратить грубо говоря карандашом на листике бумаги.


Дата: Фев 25, 2004 10:16:59

Нет!!!
В самих мануалах интела написано, что, начиная с Pentium1 при модификации
кода на конвеере, он очищается и заполняется заново. Поэтому при свободном
запуске этот крякмис вылетает (увы, с запрещенными прерываниями)


Дата: Фев 25, 2004 13:54:04

А ты пробовал его на Pentium запускать? У меня он нормально запускался и на Pentium-е. Мануалы интела конечно хорошо, но решающее слово за экспериментом, а он говорит об обратном.


Дата: Фев 25, 2004 14:16:13

Результат: этот четырехбайтовый хэш можно запросто обратить безо всякого
подбора... "Секрет" заключается в том, чтобы начать с последнего, четвертого
байта. Его можно однозначно вычислить по константам из программы...
Затем, зная четвертый байт и константы из программы, мы вычисляем
третий байт, и т.д... Я проделываю это, и получаю пароль
COBALTV)3f

Password OK !!!

:))))))

P.S. Да, у меня вылетает...


Дата: Фев 25, 2004 15:37:51

Поздравляю тебя captain cobalt!
Мне кстати понравилось как ты использовал свой ник в начале пароля. Насчет вылета программы я не знаю из-за чего она у тебя вылетала, может узнать запускается ли она у остальных, то есть набрать какую то статистику, может причина станет ясна. Может например у тебя AMD-шный процессор, а у них как известно есть некоторые отличия от Intel-овских. Может ты мне дашь какой нибудь свой крякмис (желательно не более 500 байт и под ДОС). Или еще кто у кого есть свои крякмисы пусть разместит их здесь.


Дата: Мар 5, 2004 19:16:27

Недавно запустил свой крякмис на Celerone 2.5 ГГц (писал и испытывал его еще в прошлом году, когда у меня был 486) и он действительно вылетел с завершением. Помню как он нормально запускался на Pentium 166. Поэтому была уверенность, что он будет нормально идти на всех Pentium-ах. Так что оказалось, это не так и captain cobalt прав. Да, не очень то совместимыми оказываются процессоры разных поколений. Не расскажет ли кто-нибудь о других несовместимостях, которые могут приводить к неработоспособности программ работавших нормально на более ранних моделях процессоров.

PS: Что интересно, так это то, что недокументированные инструкции, которые у меня шли на 486 выполняются и на Celerone, хотя этого вроде как и не следовало ожидать.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.092