Сейчас на форуме: jinoweb, bartolomeo, rmn (+5 невидимых) |
eXeL@B —› Программирование —› Кому не лень, помогите обратить алгоритм |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 20 марта 2012 17:20 · Личное сообщение · #1 Code:
Это код модифицированного xtea, не получается его обратить. Вот мои скромные попытки: Code:
Первая итерация проходит правильно, потом начинает писать мусор. Это связано с не правильным заполнением дельт. Направьте в нужном направлении ----- Research For Food |
|
Создано: 20 марта 2012 17:54 · Личное сообщение · #2 |
|
Создано: 20 марта 2012 17:57 · Личное сообщение · #3 |
|
Создано: 20 марта 2012 18:12 · Поправил: Veliant · Личное сообщение · #4 На мой взгляд во-первых цикл должен идти в обратную сторону от 64 к 0 Code:
| Сообщение посчитали полезным: daFix |
|
Создано: 20 марта 2012 18:23 · Личное сообщение · #5 |
|
Создано: 24 марта 2012 09:23 · Личное сообщение · #6 Code:
----- ...или ты работаешь хорошо, или ты работаешь много... |
|
Создано: 26 марта 2012 01:40 · Личное сообщение · #7 |
|
Создано: 18 апреля 2012 11:38 · Поправил: SReg · Личное сообщение · #8 Вообщем трабла. Чую неосилю никак. Но знаю что автор как то же ключики генерит)... упростил вот уже до невозможности... Code:
Выручайте add:пишут, мол, приоритеты операций не наглядные Vodoley,ок. где ты тут что то подобное от бейса64 нашел - лично мне непонятно... Code:
|
|
Создано: 18 апреля 2012 12:10 · Поправил: VodoleY · Личное сообщение · #9 |
|
Создано: 18 апреля 2012 12:18 · Поправил: neomant · Личное сообщение · #10 Есть критерии проверки правильности входной последовательности? Без брута никак, некоторые биты безвозвратно теряются в результате сдвигов, 4-й байт входной последовательности на выход вообще не влияет. add: Точное количество недостающих бит не подсчитывал, но даже на глаз видно, что если есть критерий проверки правильности входа, сбрутиться может достаточно быстро. ----- Следуй за белым кроликом |
|
Создано: 18 апреля 2012 12:30 · Поправил: VodoleY · Личное сообщение · #11 SReg а я не утверждал что ЭТО говно бейз. я сказал что это велосипед, с подобной логикой. neomant думаю без брута можно. OutMas[0]:= (InMas[0] shl 3) от первого входного байта используюца младшие 5 бит (остальное теряеца) or ((InMas[1] shr 2) and 7); и складываеца с 2ым байтом, у которого беруца с 3го по 5ый бит я б не брутил а составил маску используемых бит. т.е. в первой строчке InMas[0] ***! !!! InMas[1] ***! !!** ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... |
|
Создано: 18 апреля 2012 12:47 · Поправил: SReg · Личное сообщение · #12 |
|
Создано: 18 апреля 2012 12:57 · Поправил: VodoleY · Личное сообщение · #13 SReg это по большому счету не существенно, я смотрю, что алго весьма обратим, причем не слишком сложно.. просто надо посидеть и подумать. каждый выходной байт, формируеца из четко определенных бит из 1-3ех байт входного массива.. причем четко определенны З.Ы. я вот о чем. (InMas[3] shr 4 and 1) тут из старших 8 бит, останица только 1 т.е. максимальное число 1F , и только при 1F=Result=1 (F теряеца) (InMas[3] shl 4) а тут наоборот, все старшие теряюца, остаюца только все младшие биты 1F=Result=F (все старшие биты теряюца) ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... |
|
Создано: 18 апреля 2012 13:32 · Личное сообщение · #14 |
|
Создано: 18 апреля 2012 13:47 · Поправил: OKOB · Личное сообщение · #15 InMas[0] = (OutMas[0] >> 3) & 0x1F; InMas[1] = ((OutMas[0] & 0x07) << 2) | ((OutMas[1] >> 6) & 0x03); InMas[2] = (OutMas[1] >> 1) & 0x1F; InMas[3] = ((OutMas[1] & 0x01) << 4) | ((OutMas[2] >> 4) & 0x0F); InMas[4] = 0; InMas[5] = (OutMas[3] >> 2) & 0x1F; InMas[6] = ((OutMas[3(исправлено)] & 0x03) << 3) | ((OutMas[4] >> 5) & 0x07); InMas[7] = OutMas[4] & 0x1F; Полный разбор в прицепе b857_18.04.2012_EXELAB.rU.tgz - 11111 ----- 127.0.0.1, sweet 127.0.0.1 | Сообщение посчитали полезным: Hellspawn, neomant, SReg, _ruzmaz_, ressa |
|
Создано: 18 апреля 2012 14:30 · Личное сообщение · #16 |
|
Создано: 18 апреля 2012 21:08 · Поправил: SReg · Личное сообщение · #17 OKOB Иногда неправильно считает. Хотя вышеупомянутые ($90, $6E, $3B, $5C, $C3) посчитал верно. Code:
EF 7C 04 6A 64 06 61 59 0C F7 9A C4 DB E3 D2 89 <--- Вход EF 7C 0D E8 64 06 61 51 8D F7 9A C4 DC 60 D2 89 <--- Выход |
|
Создано: 18 апреля 2012 21:32 · Личное сообщение · #18 |
|
Создано: 18 апреля 2012 22:23 · Поправил: SReg · Личное сообщение · #19 OKOB к сожалению эта правка проблему так и нерешило...( вот накидал прожку, сорцы там же, посмотрите Внизу Label - какбэ эталон. В нижнем Edit - то что после проверки. d9e3_18.04.2012_EXELAB.rU.tgz - temp1.rar |
|
Создано: 18 апреля 2012 22:45 · Поправил: Veliant · Личное сообщение · #20 |
|
Создано: 18 апреля 2012 23:26 · Поправил: OKOB · Личное сообщение · #21 |
|
Создано: 19 апреля 2012 01:20 · Поправил: SReg · Личное сообщение · #22 Veliant респектище! отимел алгос! OKOB тоже огромное спасибо! Спасибо вам ребята! кому интересно Code:
|
|
Создано: 19 апреля 2012 04:26 · Поправил: Isaev · Личное сообщение · #23 |
|
Создано: 19 апреля 2012 10:42 · Личное сообщение · #24 |
|
Создано: 11 мая 2014 18:12 · Поправил: DimitarSerg · Личное сообщение · #25 Эх столько времени утекло. Странно, что никто тогда не задетектил. Это обычный Base-32 Code:
----- ds |
|
Создано: 11 мая 2014 23:44 · Личное сообщение · #26 |
|
Создано: 12 мая 2014 01:39 · Личное сообщение · #27 daFix пишет: Я как-то раз по незнанке так-же рипал код base16 или 32 слабак я RSA рипал | Сообщение посчитали полезным: daFix |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 12 мая 2014 07:32 · Поправил: ELF_7719116 · Личное сообщение · #28 подскажите заодно, пожалуйста, это самопалка или ... (там посередине условие, которое делит на две ветки, потом он обратно сходится в одну ветку, но суть не в этом), начало такое, остальное в аттаче: Code:
|
|
Создано: 12 мая 2014 08:33 · Личное сообщение · #29 |
|
Создано: 12 мая 2014 09:33 · Личное сообщение · #30 |
. 1 . 2 . >> |
eXeL@B —› Программирование —› Кому не лень, помогите обратить алгоритм |