Сейчас на форуме: ==DJ==[ZLO], Magister Yoda, Rio (+6 невидимых) |
![]() |
eXeL@B —› Основной форум —› Смотрим крякми!!! |
Посл.ответ | Сообщение |
|
Создано: 27 февраля 2005 00:54 · Личное сообщение · #1 Вобщем смотрим, ломаем!!! Кто первый тот и победил! ![]() ----- Nothing just happens. You choose it to happen. ![]() |
|
Создано: 27 февраля 2005 02:00 · Личное сообщение · #2 |
|
Создано: 27 февраля 2005 02:31 · Личное сообщение · #3 |
|
Создано: 27 февраля 2005 03:22 · Личное сообщение · #4 |
|
Создано: 27 февраля 2005 03:43 · Личное сообщение · #5 |
|
Создано: 27 февраля 2005 03:44 · Личное сообщение · #6 Легко ломается!!! очень слабая защита! если битхаком, то достаточно по адресу 403695h вписать EB ну а вообще pass: nothingimportanthappenedtoday (только считать уж больно муторно, вернее тут даже не считать нужно, а так логически поразмыслить, а всю эту ерунду с использованием FPU фактически можно было просто таблицей заменить) т.е. 'a' = 261h 'A'=E0h 'b'=4 'B'=163h и т.д. ![]() |
|
Создано: 27 февраля 2005 13:53 · Личное сообщение · #7 UniSoft пишет: ну а вообще pass: nothingimportanthappenedtoday не подходит... я вообще сомневаюсь что у этого крякми есть правильный пасс, там таблица остатков от деления ксорится с некоторой переменной X, которая равна сумме этих самых остатков от деления, так вот для их таблицы "зашитой" в прогу перебором получаются 4 возможных значения переменной X, одно из которых похоже на правду - с ним можно найти соответствия всех символов кроме одного, но без этого одного... ![]() |
|
Создано: 27 февраля 2005 14:31 · Личное сообщение · #8 |
|
Создано: 27 февраля 2005 16:01 · Личное сообщение · #9 |
|
Создано: 27 февраля 2005 16:07 · Поправил: assassin · Личное сообщение · #10 |
|
Создано: 27 февраля 2005 17:07 · Личное сообщение · #11 |
|
Создано: 27 февраля 2005 17:46 · Поправил: assassin · Личное сообщение · #12 там второе задание - вобще финиш: нужно подобрать пароль, в котором сумма всех символов должна быть равна 1258, а произведение всех символов = 17578(после каждого произведения идет mod 29314), т.е s:=s+simvol; p:=p*simvol mod 29314; пробовал по 27 метровому словарю брутфорсить - глухо. если даже взять, что в пароле может быть всего 10 символов, вида a..z,A..Z, а напроверку одного пароля уходит ~1 микросекунда(у меня на дельфях 27 метровый словарь, в котором 2.7 млн записей перебирается ~ за 3 сек), то брутфорсить можно несколько сотен лет ![]() интересно, можно както сократить перебор? ![]() |
|
Создано: 27 февраля 2005 17:57 · Поправил: assassin · Личное сообщение · #13 |
|
Создано: 27 февраля 2005 18:42 · Поправил: DDA · Личное сообщение · #14 |
|
Создано: 27 февраля 2005 18:54 · Личное сообщение · #15 Mario555 пишет: не подходит... я вообще сомневаюсь что у этого крякми есть правильный пасс, ... Это как это не подходит??? У этого кряк-ми есть единственный и верный пасс nothingimportanthappenedtoday фактически вся эта фигня с FPU сводится к какой-то функции X (мне лень алгоритм выдирать, но код выписал, без лишних операций), итого обрабатываем каждый символ этой функцией, получаем массив (d)word значений. (функцию X можно заменить обычной таблицей, подмены), после чего складываем все элементы (их 29), получаем некую константу Y, далее делаем обычный xor каждого элемента с полученной константой Y и..., далее сравнение с заданной таблицей, все!!! ![]() |
|
Создано: 27 февраля 2005 18:59 · Личное сообщение · #16 |
|
Создано: 27 февраля 2005 18:59 · Личное сообщение · #17 |
|
Создано: 27 февраля 2005 19:05 · Личное сообщение · #18 UniSoft да, согласен, алгорит именно такой, а "фигня с FPU" это возведение кода символа в квадрат и деление его на 320h, остатки от деления и записываются в "массив (d)word значений". Только вот не подходит у меня пасс... скажи чему у тебя сумма значени равна (Y которая). ЗЫ может тут дело в самих FPU ? типа там на разных процах они немного разные результаты дают ? у меня AMD ![]() |
|
Создано: 27 февраля 2005 19:10 · Личное сообщение · #19 |
|
Создано: 27 февраля 2005 19:14 · Личное сообщение · #20 |
|
Создано: 27 февраля 2005 19:34 · Личное сообщение · #21 Mario555 пишет: ЗЫ может тут дело в самих FPU ? возможно. Вобщем брякаемся в OllyDbg на адресе 403636h далее смотрим данные в стеке (на эту область как раз указывает EAX): 0012FB78 00000064 ; <- это собственно и есть сами элементы 0012FB7C 00000140 ; вернее результаты функции 0012FB80 0000028F ; каждого символа. 0012FB84 0000019F 0012FB88 00000270 0012FB8C 00000064 0012FB90 000000D1 0012FB94 00000270 0012FB98 000002A8 0012FB9C 0000021F 0012FBA0 00000140 0012FBA4 000000C4 0012FBA8 0000028F 0012FBAC 00000261 0012FBB0 00000064 0012FBB4 0000028F 0012FBB8 0000019F 0012FBBC 00000261 0012FBC0 0000021F 0012FBC4 0000021F 0012FBC8 00000259 0012FBCC 00000064 0012FBD0 00000259 0012FBD4 00000190 0012FBD8 0000028F 0012FBDC 00000140 0012FBE0 00000190 0012FBE4 00000261 0012FBE8 000000F1 ; <- последний символ 0012FBEC 00000000 0012FBF0 00000000 0012FBF4 0000001E ; <- а это промежуточные значения 0012FBF8 0000001E 0012FBFC 00000021 0012FC00 0000001B 0012FC04 0000001B 0012FC08 0000001E 0012FC0C 0000001A 0012FC10 0000001B 0012FC14 0000001D 0012FC18 0000001F 0012FC1C 0000001E 0012FC20 00000020 0012FC24 00000021 0012FC28 00000017 0012FC2C 0000001E 0012FC30 00000021 0012FC34 0000001B 0012FC38 00000017 0012FC3C 0000001F 0012FC40 0000001F 0012FC44 00000019 0012FC48 0000001E 0012FC4C 00000019 0012FC50 00000019 0012FC54 00000021 0012FC58 0000001E 0012FC5C 00000019 0012FC60 00000017 0012FC64 00000024 0012FC68 00000000 0012FC6C 00000000 0012FC70 0012FC68 0012FC74 00000004 0012FC78 40CC9880 0012FC7C 9E01064B 0012FC80 0000322A ; <- А это и есть та самая константа 0012FC84 00000000 ; сумма всех элементов. ![]() |
|
Создано: 27 февраля 2005 19:42 · Личное сообщение · #22 |
|
Создано: 27 февраля 2005 19:57 · Личное сообщение · #23 на твой пасс получается такое 0012F9F8 00000064 0012F9FC 00000140 0012FA00 0000028F 0012FA04 0000019F 0012FA08 00000270 0012FA0C 00000064 0012FA10 000000D1 0012FA14 00000270 0012FA18 000002A8 0012FA1C 0000021F 0012FA20 00000140 0012FA24 000000C4 0012FA28 0000028F 0012FA2C 00000261 0012FA30 00000064 0012FA34 0000028F 0012FA38 0000019F 0012FA3C 00000261 0012FA40 0000021F 0012FA44 0000021F 0012FA48 00000258 0012FA4C 00000064 0012FA50 00000258 0012FA54 00000190 0012FA58 0000028F 0012FA5C 00000140 0012FA60 00000190 0012FA64 00000261 0012FA68 000000F1тоесть несовпадет один символ (`e`) - остаток от деления квадрата которого равен меня 258 а у тебя 259... ![]() |
|
Создано: 27 февраля 2005 19:59 · Личное сообщение · #24 Mario555 пишет: вот эту констану я получил брутфорсом каким брутфорсом, это же сумма всех элементов, и изменение любого символа приведет к изменению суммы. а при вводе твоего пасса сумма получается 3228h странно, что-то не так. но очень интересно, а почему так. А как насчет каждого символа, сразу с области на которую указывает EAX при бряке на 403636h, какие из элементов не совпадают??? ![]() |
|
Создано: 27 февраля 2005 19:59 · Личное сообщение · #25 |
|
Создано: 27 февраля 2005 20:11 · Личное сообщение · #26 UniSoft пишет: каким брутфорсом, это же сумма всех элементов, и изменение любого символа приведет к изменению суммы. хе, а как ты пасс искал ? я же говорю - Mario555 пишет: так вот для их таблицы "зашитой" в прогу перебором получаются 4 возможных значения переменной X, одно из которых похоже на правду тоесть перебираются все варианты X, с ними ксорится таблица, далее считаем сумму элементов в этой "разксореной" таблице и если она равна числу X, то оно подходит для решения... таких числа толучилось 4, одно из них 0000322A. Далее просто нужно от всех возможных символов посмотреть остатки от деления квадрата (табличку составить) и сравнить с "разксореной" числом 0000322A таблицой зашитой в прогу. По идее так получаются все символы, но с одним из них выходит косяк... ![]() |
|
Создано: 27 февраля 2005 20:59 · Личное сообщение · #27 Mario555 пишет: хе, а как ты пасс искал ? А так, чисто логически пошел. Да, сначала тоже думал, что придется писать прогу, но как всегда лень одолевает. Я просто списал результат для каждого значения от 41h до 7Ah (вводим например сначала: ABCDEFGHIJKLMNOPQRSTUVWXYZaaa бряк на 403636h списываем, далее: abcdefghijklmnopqrstuvwxyzaaa а потом посмотрев на ту таблицу и на значения, что получили, можно предположить, что сумма должна быть около 32xx, далее взяв любой элемент из таблицы например второй 336A, в качестве константы, и начинаем с ним ксорить получившиеся значения результат который в пределах 01xx, и с получившимся результатом ксорим всю таблицу, и буквально с 4-й попытки попадаем в точку. Это сложно описать, всю логику по которой я пошел, но зато это быстрее, на взлом ушло минут 30 (это учитывая то, что попутно выполняя пошагово прогу я переписывал каждую значимую инструкцию), да и писать ничего не пришлось (но это естествеено не всегда может прокатить). ![]() |
|
Создано: 27 февраля 2005 21:32 · Личное сообщение · #28 UniSoft пишет: Это сложно описать, всю логику по которой я пошел, но зато это быстрее, на взлом ушло минут 30 ну насчёт быстрее это врятли... я же тоже прогу никакую не писал, просто в отладчике строчек 10-15 на брутфорсер константы Y (он моментально находит 4 значения) и ещё строчек 5-10 изменение цикла, который в квадрат возводит и делит, переделал так чтобы он по всем допустимым символам проходил и результаты записывал в некую таблицу, дальше либо вручную, либо скриптом ищем совпадения... ![]() |
![]() |
eXeL@B —› Основной форум —› Смотрим крякми!!! |