Посл.ответ |
Сообщение |
Ранг: 284.8 (наставник), 6thx Активность: 0.15↘0 Статус: Участник
|
Создано: 01 августа 2008 18:01 · Личное сообщение · #1
Очередной конкурс по реверсингу от F-Secure.
В подарки за призовые места обещаны айподы и экскурсия по их лаборатории.
в общем, всем кому интересно: www.khallenge.com/
| Сообщение посчитали полезным: |
|
 Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 02 августа 2008 14:18 · Личное сообщение · #2
я так понял пасс = 9 символов, почем так решил не спрашивайте))) ща попробую отбрутить все конбинации, посмотрим что выйдет, конечно если негде ненакосячил...
mak
если возвращается 2 - это косяк  смотри:
TLS:
004080D8 817C24 08 010000>CMP DWORD PTR SS:[ESP+8],1
004080E0 75 19 JNZ SHORT FSC08_Le.004080FB
004080E2 64:A1 18000000 MOV EAX,DWORD PTR FS:[18]
004080E8 8B40 30 MOV EAX,DWORD PTR DS:[EAX+30]
004080EB 66:8140 02 0100 ADD WORD PTR DS:[EAX+2],1 // добавляем 1 к DebugPresent
// + ставим железный бряк на запись в эту ячейку
004080F1 68 386D7361 PUSH 61736D38
004080F6 E8 A3EEFFFF CALL FSC08_Le.00406F9E
004080FB C3 RETN
...
тормознёмся
0040148F 5B POP EBX // возмём 1 со стека
00401490 83C3 10 ADD EBX,10 // добавим 10
00401493 53 PUSH EBX // запишим 11
00401494 B3 E9 MOV BL,0E9
----- [nice coder and reverser] | Сообщение посчитали полезным: |
Ранг: 456.3 (мудрец), 340thx Активность: 0.28↘0.02 Статус: Участник Android Reverser
|
Создано: 02 августа 2008 14:19 · Личное сообщение · #3
v0id2k
дык там уже есть пабедители
Level 3 2 14 hours 23 minutes
----- SaNX | Сообщение посчитали полезным: |
 Ранг: 673.3 (! !), 400thx Активность: 0.4↘0.31 Статус: Участник CyberMonk
|
Создано: 02 августа 2008 14:19 · Личное сообщение · #4
у меня айфон есть ..
Solutions First solution took
Level 1 257 0 hours 8 minutes
Level 2 5 7 hours 28 minutes
Level 3 2 14 hours 23 minutes
Да уже поздняк метаться =) еще 1 чел на третем уровне и все.
----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube | Сообщение посчитали полезным: |
Ранг: 441.3 (мудрец), 297thx Активность: 0.41↘0.04 Статус: Участник
|
Создано: 02 августа 2008 14:20 · Личное сообщение · #5
v0id2k
Они тебя пригласят за айподом в Хельсинки  дороже выйдет
| Сообщение посчитали полезным: |
 Ранг: 673.3 (! !), 400thx Активность: 0.4↘0.31 Статус: Участник CyberMonk
|
Создано: 02 августа 2008 14:21 · Личное сообщение · #6
Hellspawn ага =) я помню ты про 11 говорил , с ТЛС мне надо еще разбираться , никогда с ней не работал кроме востановления.
----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube | Сообщение посчитали полезным: |
 Ранг: 756.3 (! !), 113thx Активность: 0.61↘0.05 Статус: Участник Student
|
Создано: 02 августа 2008 14:23 · Личное сообщение · #7
SaNX пишет:
проще всево брутер нопесать
чтобы писать брутер, надо для начала определьться с количеством символов в пассе...
Ставлю на 9 судя по логике программы (при чём ещё вчера писал)
Есть другие предложения?
----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh | Сообщение посчитали полезным: |
 Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 02 августа 2008 14:29 · Поправил: Hellspawn · Личное сообщение · #8
запустил брут... тут весь косяк в том, что я не понимаю:
004011CF 8A5407 FF MOV DL,BYTE PTR DS:[EDI+EAX-1]
004011D3 3255 00 XOR DL,BYTE PTR SS:[EBP] // вот тут всегда рандомный байт
как он генериться не пойму, вроде от строки не зависит, по-этому можно взять его постоянным.
----- [nice coder and reverser] | Сообщение посчитали полезным: |
 Ранг: 673.3 (! !), 400thx Активность: 0.4↘0.31 Статус: Участник CyberMonk
|
Создано: 02 августа 2008 14:33 · Личное сообщение · #9
Hellspawn вот этот момент я тоже думал , кстати жаль что тк поздно допер , надо было сразу рипать код и пробовать брут делать. Я думал что он как первый , просто подсчитать ... а тут считать как то пока не ясно. Проще автоматизировать =) ... когда взломаешь , выложи плиз тогда 3 юю часть левела. Ну а позже уже сам брут =) после того как все согласятся
----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube | Сообщение посчитали полезным: |
 Ранг: 756.3 (! !), 113thx Активность: 0.61↘0.05 Статус: Участник Student
|
Создано: 02 августа 2008 14:35 · Личное сообщение · #10
Hellspawn пишет:
я так понял пасс = 9 символов, почем так решил не спрашивайте)))
там есть функа, которая считает результат в зависимости от длины паса
длина паса-результат
1-00
2-07
3-0E
4-05
5-0C
6-03
7-0A
8-01
9-08
10-0F
11-06
12-0D
13-04
14-0B
15-02
16-09
дальше по кругу
результат используется для обхода символов паса, а значит не может быть длиннее
и должен быть >4 и <0D
остаётся
9-08
11-06
14-0B
16-09
сочетание 9-08 - самое близкое друг к другу
+ битовая контрольная сумма 164h=101100100 ( 9bit)
----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh | Сообщение посчитали полезным: |
 Ранг: 673.3 (! !), 400thx Активность: 0.4↘0.31 Статус: Участник CyberMonk
|
Создано: 02 августа 2008 14:37 · Личное сообщение · #11
Isaev какой адрес у этйо функи ?
----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube | Сообщение посчитали полезным: |
 Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 02 августа 2008 14:42 · Личное сообщение · #12
mak пишет:
Isaev какой адрес у этйо функи ?
да сто пудов CALL FSC08_Le.00401140
----- [nice coder and reverser] | Сообщение посчитали полезным: |
 Ранг: 756.3 (! !), 113thx Активность: 0.61↘0.05 Статус: Участник Student
|
Создано: 02 августа 2008 14:47 · Личное сообщение · #13
да 00401140
----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh | Сообщение посчитали полезным: |
 Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 02 августа 2008 15:05 · Личное сообщение · #14
короче, байт тот нифига не рандомный))) не зря там везде RDTSC
вообщем:
004011D3 3255 00 XOR DL,BYTE PTR SS:[EBP] // DL xor 0AFh всегда
----- [nice coder and reverser] | Сообщение посчитали полезным: |
 Ранг: 673.3 (! !), 400thx Активность: 0.4↘0.31 Статус: Участник CyberMonk
|
Создано: 02 августа 2008 15:35 · Личное сообщение · #15
=) У меня не получилось подобрать с 0AFh всегда. Пароль получился такой 3b 05 39 2c 25 06 6a
сумма 1FE
при сравнении с таблицей
00404160 C5 A9 8A 83 96 AA 94 AF 34 7E 04 82 52 F9 B2 76 Е©Љѓ–Є”Ї4~‚RщІv
00404170 84 82 22 B4 CC 3F 6A B2 A2 71 64 69 B6 F2 04 37 „‚"ґМ?jІўqdi¶т7
00404180 B6 91 E9 C7 BE 0B 30 52 6E 0A 66 13 6D D6 94 D0 ¶‘йЗѕ0Rn.fmЦ”Р
00404190 20 50 B4 A9 DB 97 AA 96 EE AF E5 73 37 0F D7 1B Pґ©Ы—Є–оЇеs7Ч
004041A0 89 F1 85 A3 2A 74 F2 13 35 CA CA 39 2A 14 CB CC ‰с…Ј*tт5КК9*ЛМ
004041B0 A5 41 BA 70 D8 3A 7B 3A 12 8C F6 A3 18 87 ED B4 ҐAєpШ:{:ЊцЈ‡нґ
004041C0 65 1A EB 85 3C 81 22 E7
----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube | Сообщение посчитали полезным: |
 Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 02 августа 2008 15:41 · Поправил: Hellspawn · Личное сообщение · #16
едем дальше) спасибо 1 товарищу за хелп...
Isaev пишет:
+ битовая контрольная сумма 164h=101100100 ( 9bit)
перевернём и отбросим 1 символ (т.к. нужно 8)
001001101
..?2??56?8
? - любой символ
цифра - значимый  как-то так...
mak
засекается время выполнения...
----- [nice coder and reverser] | Сообщение посчитали полезным: |
 Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 02 августа 2008 15:51 · Личное сообщение · #17
едем дальше, вот маски чтобы пройти первый подсчёт суммы:
FIND: _A__B~_G_
FIND: _h__kW_n_
FIND: _C__@|_E_
FIND: _c__`\_e_
FIND: _~__}A_x_
FIND: _O__Lp_I_
FIND: _u__vJ_s_
FIND: _U__Vj_S_
FIND: _i__jV_o_
FIND: _v__uI_p_
FIND: _z__yE_|_
FIND: _F__Ey_@_
FIND: _u__vJ_s_
FIND: _\___c_Z_
FIND: ____\`_Y_
FIND: _m__nR_k_
FIND: _D__G{_B_
FIND: _l__oS_j_
на самом деле их дофига.
----- [nice coder and reverser] | Сообщение посчитали полезным: |
 Ранг: 756.3 (! !), 113thx Активность: 0.61↘0.05 Статус: Участник Student
|
Создано: 02 августа 2008 16:03 · Личное сообщение · #18
Hellspawn пишет:
на самом деле их дофига.
при чём очень
может лучше по словарю?
прикинь, какой-нибудь khallenge там с разными регистрами
буду долго смеяться
----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh | Сообщение посчитали полезным: |
 Ранг: 673.3 (! !), 400thx Активность: 0.4↘0.31 Статус: Участник CyberMonk
|
Создано: 02 августа 2008 16:19 · Личное сообщение · #19
=) все третье место профукали
Khallenge consists of three steps. Different levels have been completed so far as follows: Solutions First solution took
Level 1 275 0 hours 8 minutes
Level 2 5 7 hours 28 minutes
Level 3 3 14 hours 23 minutes
----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube | Сообщение посчитали полезным: |
 Ранг: 756.3 (! !), 113thx Активность: 0.61↘0.05 Статус: Участник Student
|
Создано: 02 августа 2008 16:23 · Поправил: Isaev · Личное сообщение · #20
да при чём тут место? Тут просто спортивный интерес
PS: похоже только я так думал
----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh | Сообщение посчитали полезным: |
 Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 02 августа 2008 23:38 · Личное сообщение · #21
да, я 8-ой... ппц, пол дня убил...
----- [nice coder and reverser] | Сообщение посчитали полезным: |
 Ранг: 673.3 (! !), 400thx Активность: 0.4↘0.31 Статус: Участник CyberMonk
|
Создано: 03 августа 2008 00:05 · Личное сообщение · #22
И 3 ию сломал ???? =) ... не забудь рассказать .. или статью напиши )
----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube | Сообщение посчитали полезным: |
 Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 03 августа 2008 00:11 · Личное сообщение · #23
я как 3-ий увидел, ужаснулся 55kb %) хотя на вскидку вроде реально... но после второго не хочется
ломать ничего... ну для 2-ого левела могу наваять, было интересно + пришлось много кодить...
----- [nice coder and reverser] | Сообщение посчитали полезным: |
Ранг: 3.2 (гость) Активность: 0=0 Статус: Участник
|
Создано: 03 августа 2008 05:12 · Личное сообщение · #24
Sorry cuz I cant write in Russian
I found the valid keys to pass first check, but couldnt find the valid one to pass the second MD5-modified check (1 byte, from 0x21 to 0x12). May be I have fall in the trap somewhere or else, anyway Im too lazy to code a brute script.
[CODE]
// khallenge2008.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
bool is_ascii(char a)
{
return (a >= '0') && (a <= 'z');
}
int main(int argc, char* argv[])
{
// 101100100
char Input[10] = {0};
char Key;
for (int j = 0; j < 8; j++)
{
Input[j] = '9';
}
Input[9] = '\0';
Input[8] = '9';
for (char i = '0'; i <= 'z'; i++)
{
Input[7] = i;
Key = i ^ 0xAF;
Input[1] = Key ^ 0xA9;
if (!is_ascii(Input[1]))
{
continue;
}
Input[4] = Key ^ 0xAA;
if (!is_ascii(Input[4]))
{
continue;
}
Input[5] = Key ^ 0x96;
if (!is_ascii(Input[5]))
{
continue;
}
printf("key: %s\n", Input);
}
return 0;
}
[/CODE]
| Сообщение посчитали полезным: |
Ранг: 3.2 (гость) Активность: 0=0 Статус: Участник
|
Создано: 03 августа 2008 05:25 · Личное сообщение · #25
BTW, dont use a dumped UPX, because in the there's hidden code modified a key dword at 4041C4. It is XOR-ed 2 times and re-used in the crackme algorithm.
00401430 64:A1 18000000 MOV EAX,DWORD PTR FS:[18]
00401436 3105 C4414000 XOR DWORD PTR DS:[4041C4],EAX
0040143C 817C24 04 386D7>CMP DWORD PTR SS:[ESP+4],61736D38
00401444 74 06 JE SHORT Copy_of_.0040144C
00401446 68 3A1D4000 PUSH Copy_of_.00401D3A
0040144B C3 RETN
+ Also there's RDTSC trick, to make the key byte pointed by EBP change if the time among the calls to sub_00401140 is not fast enough, i.e debugging detection. Therefore, the checks at sub_004011C0 will fail regardless which key we enter.
004010DE 0F31 RDTSC
004010E0 81E2 FF000000 AND EDX,0FF
004010E6 8BC2 MOV EAX,EDX
004010E8 C1EA 08 SHR EDX,8
004010EB 80F2 01 XOR DL,1
004010EE C1C2 0E ROL EDX,0E
004010F1 80F2 40 XOR DL,40
004010F4 C1CA 18 ROR EDX,18
004010F7 53 PUSH EBX
004010F8 87D4 XCHG ESP,EDX
004010FA 83F4 20 XOR ESP,20
004010FD 5B POP EBX
004010FE 32D8 XOR BL,AL
00401100 53 PUSH EBX
00401101 87E2 XCHG EDX,ESP
00401103 5B POP EBX
00401104 5A POP EDX
00401105 58 POP EAX
00401106 C3 RETN
004011CC 8B7D 0C MOV EDI,DWORD PTR SS:[EBP+C]
004011CF 8A5407 FF MOV DL,BYTE PTR DS:[EDI+EAX-1] ; arg1[7]
004011D3 3255 00 XOR DL,BYTE PTR SS:[EBP] ; EBP = key, if found debugged by RDTSC, this key will be random, crackme fail.
Any solve the second md5 checks ?
| Сообщение посчитали полезным: |
 Ранг: 527.7 (!), 381thx Активность: 0.16↘0.09 Статус: Участник Победитель турнира 2010
|
Создано: 03 августа 2008 09:09 · Поправил: OKOB · Личное сообщение · #26
10й
На момент отправки
Level 1 306 0 hours 8 minutes
Level 2 9 7 hours 28 minutes
Level 3 4 14 hours 23 minutes
----- 127.0.0.1, sweet 127.0.0.1 | Сообщение посчитали полезным: |
 Ранг: 756.3 (! !), 113thx Активность: 0.61↘0.05 Статус: Участник Student
|
Создано: 03 августа 2008 11:19 · Личное сообщение · #27
mak пишет:
не забудь рассказать .. или статью напиши )
Я думаю они солюшены опубликуют
лазил вчера у них по сайту выходил на результаты 2006, 2007, а сегодня не могу найти... никто не встречал?
----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh | Сообщение посчитали полезным: |
 Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 03 августа 2008 13:21 · Поправил: Hellspawn · Личное сообщение · #28
thug4lif3 пишет:
Any solve the second md5 checks ?
it's modified md5 check:
TargetHash: array [0..15] of Byte = (
$D8, $3A, $7B, $3A, $12, $8C, $F6, $A3, $18, $87, $ED, $B4, $65, $1A,
$EB, $85
);
first check can help you to find all pass masks.
----- [nice coder and reverser] | Сообщение посчитали полезным: |
Ранг: 3.2 (гость) Активность: 0=0 Статус: Участник
|
Создано: 03 августа 2008 14:02 · Личное сообщение · #29
@Hellspawn:
Yes, it's actually modified MD5 (only one byte, from 0x21 to 0x12). But I just wonder there's no other way but to brute the key? I just dont want to brute all the combining of 5 characters out of 62 ASCII characters in a 9 byte key
| Сообщение посчитали полезным: |
Ранг: 3.2 (гость) Активность: 0=0 Статус: Участник
|
Создано: 03 августа 2008 14:07 · Личное сообщение · #30
All keys generated by above script:
key: 9F99Ey9@9
key: 9G99Dx9A9
key: 9E99Fz9C9
key: 9N99Mq9H9
key: 9O99Lp9I9
key: 9L99Os9J9
key: 9M99Nr9K9
key: 9J99Iu9L9
key: 9K99Ht9M9
key: 9H99Kw9N9
key: 9I99Jv9O9
key: 9V99Ui9P9
key: 9W99Th9Q9
key: 9T99Wk9R9
key: 9U99Vj9S9
key: 9R99Qm9T9
key: 9S99Pl9U9
key: 9P99So9V9
key: 9Q99Rn9W9
key: 9^99]a9X9
key: 9_99\`9Y9
key: 9\99_c9Z9
key: 9]99^b9[9
key: 9Z99Ye9\9
key: 9[99Xd9]9
key: 9X99[g9^9
key: 9Y99Zf9_9
key: 9f99eY9`9
key: 9g99dX9a9
key: 9d99g[9b9
key: 9e99fZ9c9
key: 9b99a]9d9
key: 9c99`\9e9
key: 9`99c_9f9
key: 9a99b^9g9
key: 9n99mQ9h9
key: 9o99lP9i9
key: 9l99oS9j9
key: 9m99nR9k9
key: 9j99iU9l9
key: 9k99hT9m9
key: 9h99kW9n9
key: 9i99jV9o9
key: 9v99uI9p9
key: 9w99tH9q9
key: 9t99wK9r9
key: 9u99vJ9s9
key: 9r99qM9t9
key: 9s99pL9u9
key: 9p99sO9v9
key: 9q99rN9w9
| Сообщение посчитали полезным: |
 Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 03 августа 2008 14:09 · Поправил: Hellspawn · Личное сообщение · #31
Brutus takes several hours maximum
alf = 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
count masks >= 36
p.s. you find correct mask ;)
----- [nice coder and reverser] | Сообщение посчитали полезным: |