Сейчас на форуме: vsv1, NIKOLA, r0lka, johnniewalker (+4 невидимых)

 eXeL@B —› Крэки, обсуждения —› Flare-On Challenge 2014-2019 - турнир крэкеров
. 1 . 2 . 3 . 4 . 5 . >>
Посл.ответ Сообщение

Ранг: 64.9 (постоянный), 47thx
Активность: 0.120.02
Статус: Участник

Создано: 23 августа 2015 20:22 · Поправил: Модератор
· Личное сообщение · #1

Flare-On V Challenge 2019

2019
завершён

2019.flare-on.com

Анонс:
Announcing the Sixth Annual Flare-On Challenge

Решения 2019 года:
https://www.fireeye.com/blog/threat-research/2019/09/2019-flare-on-challenge-solutions.html

Почитать:
--> Flare-On 2019 write-up - habr.com <--
--> gray-panda/grayrepo <--
--> sysenter-eip/FlareOn2019_NoReversing <--
--> Sin42/ <--
--> @hegongdao <--
--> bruce30262/flare-on-challenge-2019-write-up <--
--> alexander-pick/flareon6 <--

2018
завершён

Проходил с 24 августа 2018

Анонс:
Announcing the Fifth Annual Flare-On Challenge

Решения 2018 года:
2018 Flare-On Challenge Solutions

Количество финалистов: 114

Статистика финалистов по странам (выборочно):
- 10 финалистов: Китай
- по 6 финалистов: Канада, Россия, Украина, Сингапур
- 5 финалистов: Франция
- по 4 финалиста: Германия, Индия, Испания, Швеция, США


2017
завершён

Анонс:
Announcing the Fourth Annual Flare-On Challenge

Решения 2017 года:
2017 Flare-On Challenge Solutions

Количество финалистов: 140


2016
завершён

Анонс:
Announcing the Third Annual Flare-On Challenge

Решения 2016:
2016 Flare-On Challenge Solutions

Количество финалистов: 124


2015
завершён

Анонс:
Announcing the Second FLARE On Challenge

Решения 2015:
2015 FLARE-ON Challenge Solutions

Количество финалистов: 162


2014
завершён

Анонс:
Announcing the FLARE Team and The FLARE On Challenge

Решения 2014:
The FLARE On Challenge Solutions: Part 1 of 2
FLARE On Challenge Solutions: Part 2 of 2


Оффсайт:
https://www.flare-on.com/


От модератора: Турниры 2014 - 2019 закончились.
Обучаемся, набираемся знаний, побольше практики и готовимся к 2020! Обсуждаем дальше, в этой же теме




Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 23 августа 2015 20:28
· Личное сообщение · #2

Flare - что-то знакомое... контора по вирусне.

Не до конца вьехал "шо цэ такэ".

Для тех, кому побыстрее:
Code:
  1. [user@server Instructions]$ls
  2. It’s simple: Analyze the sample, find the key.
  3. Each key is an email address. Send an email to the address for the next puzzle.
  4. Complete all the puzzles and win a prize.
  5.  
  6. To start The FLARE On Challenge 2015 download the first binary here.
  7.  
  8. The password for each challenge that is a .zip archive is "flare".

где here == http://www.flare-on.com/files/Flare-On_start_2015.exe ИЛИ (--> Прямой Link <--

Добавлено спустя 12 минут
Чтобы почетным олфагам не позориться при реверсинге скачанного i_am_happy_you_are_to_playing_the_flareon_challenge.exe, по первой ссылке - исправляем там код на следующий:
Code:
  1. 0040104D    8A81 40214000   MOV AL,BYTE PTR DS:[ECX+402140]          ; ASCII "bunny_sl0pe@flare-on.com"
  2. 00401053    34 7D           XOR AL,7D
  3. 00401055    8881 40214000   MOV BYTE PTR DS:[ECX+402140],AL
  4. 0040105B    90              NOP
  5. 0040105C    90              NOP
  6. 0040105D    41              INC ECX
  7. 0040105E    83F9 18         CMP ECX,18
  8. 00401061  ^ 7C EA           JL SHORT 0040104D

Ну вы понЕли!




Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 23 августа 2015 21:56
· Личное сообщение · #3

hash87szf пишет:
ТАСС уполномочен заявить...http://www.flare-on.com/Реверс чэлэндж. 11? заданий. Не только PE.Мне самому лень да и время нет, просто проинформировал сообщество.Будьте острожны, в ФАК стоит что чалы могут быть злыми, так что VM.


Заданий действительно 11.
На счет, что не только реверс, то 8е задание - Stegography.
Что касается "злых" заданий, таких нет. 10е задание ставит в систему драйвер.

-----
127.0.0.1, sweet 127.0.0.1


| Сообщение посчитали полезным: hash87szf

Ранг: 64.9 (постоянный), 47thx
Активность: 0.120.02
Статус: Участник

Создано: 23 августа 2015 22:50
· Личное сообщение · #4

OKOB пишет:
Что касается "злых" заданий, таких нет.

Во, спасиб за инфу. Так сразу и удобней и приятней.



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 23 августа 2015 23:50
· Личное сообщение · #5

OKOB пишет:
Что касается "злых" заданий, таких нет.

ты всех порвал тут в 2010 году так что не верю




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 24 августа 2015 01:36
· Личное сообщение · #6

tihiy_grom пишет:
ты всех порвал тут в 2010 году так что не верю

Это он про засранцев говорил. Типа, нету вирусни в заданиях.

Мне вот другое интересно - отправил письмо на мыло полученное в первом задании и ни какого письма пока не получил

-----
Research For Food





Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 24 августа 2015 01:49
· Личное сообщение · #7

daFix пишет:
отправил письмо на мыло полученное в первом задании и ни какого письма пока не получил


Ну таймауты у них бывают. Но письма приходили и на rambler и gmail.
Кстати deadline - 8.09.2015

-----
127.0.0.1, sweet 127.0.0.1





Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 24 августа 2015 09:33
· Личное сообщение · #8

OKOB пишет:
На счет, что не только реверс, то 8е задание - Stegography

А так же 6-е, там android apk.

-----
Лучше быть одиноким, но свободным © $me




Ранг: 64.9 (постоянный), 47thx
Активность: 0.120.02
Статус: Участник

Создано: 24 августа 2015 16:36
· Личное сообщение · #9

Дорогие читатели, что по вашему мнению проще для 2ого задания: алго понимать или просто инлайн сбрутить?

Я вот в Ольке брут заинлайнил с МультиЛайнАсм плугином, но ковырялся часа три... Пока все адреса правильные были...

Кажется мне что с битами, опкодами и с хекс рэйсом с этим бы быстрее справился...



Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 24 августа 2015 16:50
· Личное сообщение · #10

Я думаю проще обратить алгоритм (без хекс-рея). Там же инструкций всего ничего.



Ранг: 64.9 (постоянный), 47thx
Активность: 0.120.02
Статус: Участник

Создано: 24 августа 2015 18:19
· Личное сообщение · #11

vden пишет:
Я думаю проще обратить алгоритм (без хекс-рея). Там же инструкций всего ничего.

Можно алго? Так, для инфы, я третий питоно-гуан "распаковал"... вернее нашёл тулзу оверлэй разгрести, и всё собствн что и надо было сделать. Так и первое задание поинтереснее было.



Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 24 августа 2015 18:43 · Поправил: vden
· Личное сообщение · #12

Результат давать не буду, так же не интересно

Вот, собственно, что нужно обратить

Code:
  1. 4010E4 enc             db   175,  170,  173,  235,  174,  170,  236,  164
  2. 4010E4                 db   186,  175,  174,  170,  138,  192,  167,  176
  3. 4010E4                 db   188,  154,  186,  165,  165,  186,  175,  184
  4. 4010E4                 db   157,  184,  249,  174,  157,  171,  180,  188
  5. 4010E4                 db   182,  179,  144,  154,  168
  6.  
  7. ebx = 0
  8. ecx = 37
  9. esi = ptr to pass
  10. edi = ptr to last of "enc" bytes
  11.  
  12. ...
  13. .text:004010A2 loop:                    
  14. .text:004010A2                 mov     dx, bx
  15. .text:004010A5                 and     dx, 3
  16. .text:004010A9                 mov     ax, 1C7h
  17. .text:004010AD                 push    eax
  18. .text:004010AE                 sahf
  19. .text:004010AF                 lodsb
  20. .text:004010B0                 pushf
  21. .text:004010B1                 xor     al, [esp+4]
  22. .text:004010B5                 xchg    cl, dl
  23. .text:004010B7                 rol     ah, cl
  24. .text:004010B9                 popf
  25. .text:004010BA                 adc     al, ah
  26. .text:004010BC                 xchg    cl, dl
  27. .text:004010BE                 xor     edx, edx
  28. .text:004010C0                 and     eax, 0FFh
  29. .text:004010C5                 add     bx, ax
  30. .text:004010C8                 scasb
  31. .text:004010C9                 cmovnz  cx, dx
  32. .text:004010CD                 pop     eax
  33. .text:004010CE                 jecxz   short fail
  34. .text:004010D0                 sub     edi, 2
  35. .text:004010D3                 loop    loop
  36. .text:004010D5                 jmp     short exit




Ранг: 64.9 (постоянный), 47thx
Активность: 0.120.02
Статус: Участник

Создано: 24 августа 2015 22:38
· Личное сообщение · #13

Дык, результат есть, интереса точно разбирать нет. Видел ксоры и адды, с флажными "трюками", и передумал разбирать.

А вот в четвёртом задании я надеюсь что я иду по не правильному пути... Так как разбирать что с этими base64 стрингами делается ой как не охота...




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 24 августа 2015 22:49 · Поправил: Coderess
· Личное сообщение · #14

Заболел в свой отпуск
взял с собой ноут, первую осилил, остальные не смотрел, но как отпустит продолжу...
-----------------
06.09.15
P.S. Только вернулся из отпуска, где отсутствовал интернет. Конечно сильно отстал от всех - получил пока только ссылку на 3е задание. Мое решение второго задания:

Code:
  1. #sseredoc
  2. import sys
  3. hashedBytes = [0xA8, 0x9A, 0x90, 0xB3, 0xB6, 0xBC, 0xB4, 0xAB, 0x9D, 0xAE, 0xF9, 0xB8, 0x9D, 0xB8, 0xAF, 
  4.                            0xBA, 0xA5, 0xA5, 0xBA, 0x9A, 0xBC, 0xB0, 0xA7, 0xC0, 0x8A, 0xAA, 0xAE, 0xAF, 0xBA, 0xA4, 
  5.                            0xEC, 0xAA, 0xAE, 0xEB, 0xAD, 0xAA, 0xAF]
  6. sum = 0
  7. ssum = 0
  8. for i in range(0x25):
  9.          sum = ssum & 3
  10.          sys.stdout.write(chr((hashedBytes[i] - (1 << sum) - 1) ^ 0xC7))
  11.          ssum += hashedBytes[i]


P.P.S.
Самый быстрый способ, был обратить алгоритм на ассемблере:
Code:
  1. .486                       ; create 32 bit code
  2. .model flat, stdcall       ; 32 bit memory model
  3. option casemap :none       ; case sensitive
  4. include \masm32\include\windows.inc
  5. include \masm32\include\user32.inc
  6. include \masm32\include\kernel32.inc
  7. includelib \masm32\lib\user32.lib
  8. includelib \masm32\lib\kernel32.lib
  9. .data
  10. ;004010DA AF AA AD EB AE AA ЇЄ­л®Є
  11. ;004010EA EC A4 BA AF AE AA 8A C0 A7 B0 BC 9A BA A5 A5 BA м¤єЇ®ЄЉА§°јљєҐҐє
  12. ;004010FA AF B8 9D B8 F9 AE 9D AB B4 BC B6 B3 90 9A A8 Їёќёщ®ќ«ґј¶іђљЁ
  13.                         hashedM db  0A8h, 09Ah, 090h, 0B3h, 0B6h, 0BCh, 0B4h, 0ABh, 09Dh, 0AEh, 0F9h, 0B8h, 09Dh, 0B8h, 0AFh, 
  14.                                        0BAh, 0A5h, 0A5h,  0BAh, 09Ah, 0BCh, 0B0h, 0A7h, 0C0h, 08Ah, 0AAh, 0AEh, 0AFh, 0BAh, 0A4h, 0ECh, 
  15.                                        0AAh, 0AEh, 0EBh, 0ADh, 0AAh, 0AFh, 0   
  16.                         
  17.                         key   db        37 dup(?)
  18. .code
  19. start:
  20.                          xor ebx, ebx
  21.                          mov ecx, 025h
  22.                          lea esi, hashedM
  23.                          lea edi, key
  24. @@:                      mov dx,bx                                ; dx = 0; dx=a8
  25.                          and dx,3                                 ; dx = dx and 3; dx=a8 and 3; 142 & 3 = 2
  26.                          mov ax,1c7h                              ; ax = 0x1c7
  27.                          lods byte ptr[esi]                       ; al = enterkey[i]
  28.                          push eax                                 ; al = enterkey[i xor 0xc7
  29.                          xchg dl,cl                               ; cl=len <=> dl = 0
  30.                          rol ah,cl                                ; ah=1 cl=0
  31.                          sub al,ah                                ; (o0 d0 t0 s0 z0 a0 p0 c1)
  32.                          dec al                                     ; lahf/pushfd/popfd
  33.                          nop
  34.                          xor al,0c7h                              ; cl=0 <=> dl=25
  35.                          mov byte ptr[edi],al                     
  36.                          xchg dl,cl
  37.                          xor edx,edx
  38.                          pop eax
  39.                          and eax,0ffh
  40.                          add bx,ax
  41.                          nop
  42.                          inc edi
  43.                          loopd @b                  
  44.                          ;output key if needed
  45.                          invoke MessageBox,0,addr key,MB_OK, MB_ICONINFORMATION
  46.                          invoke ExitProcess, 0
  47.                          ret
  48. end start


Заметка#1:
Инструкции lahf/pushfd/popfd оптимизируются одной dec

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 35.8 (посетитель), 23thx
Активность: 0.030
Статус: Участник

Создано: 26 августа 2015 20:08
· Личное сообщение · #15

Я джва дня ждал, ответа с мыла из первого задания так и нет. Не нравится.



Ранг: 64.9 (постоянный), 47thx
Активность: 0.120.02
Статус: Участник

Создано: 26 августа 2015 20:31
· Личное сообщение · #16

Мне минут через 30 авто ответ приходил to gmail.



Ранг: 35.8 (посетитель), 23thx
Активность: 0.030
Статус: Участник

Создано: 26 августа 2015 20:46
· Личное сообщение · #17

Ну, значит, на мэйлру уже точно не придет. Наверное там протокол какой то другой.



Ранг: 64.9 (постоянный), 47thx
Активность: 0.120.02
Статус: Участник

Создано: 26 августа 2015 21:00
· Личное сообщение · #18

Nr 2
http://rghost.net/private/8XChJCPzk/c6e2adedeba0114cefc48bbad426e201



Ранг: 64.9 (постоянный), 47thx
Активность: 0.120.02
Статус: Участник

Создано: 28 августа 2015 00:45
· Личное сообщение · #19

4тое задание дурное. Я сидел алго разбирал, потом плюнул и просто "попробовал разные вещи" и оно заработало... хуже первого, прям обозлило.



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 28 августа 2015 20:05
· Личное сообщение · #20

hash87szf пишет:
Дык, результат есть, интереса точно разбирать нет. Видел ксоры и адды, с флажными "трюками", и передумал разбирать.

Чисто ради интереса посмотрел. Так по-хорошему можно в нормальный вид алго проверки провести и от этого плясать. Как-то так:
Code:
  1. bool check_arrays()
  2. {
  3.                         static  char f_enc_data[] = {0xFF, 0xAF, 0xAA, 0xAD, 0xEB, 0xAE, 0xAA, 0xEC, 0xA4, 0xBA, 0xAF, 0xAE, 0xAA, 0x8A, 0xC0, 0xA7,
  4.                  0xB0, 0xBC, 0x9A, 0xBA, 0xA5, 0xA5, 0xBA, 0xAF, 0xB8, 0x9D, 0xB8, 0xF9, 0xAE, 0x9D, 0xAB, 0xB4, 0xBC, 0xB6, 0xB3, 0x90, 0x9A, 0xA8};
  5.  
  6.                  static char myinput[] = {"abAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"};
  7.  
  8.                  UINT f_enc_count = 0x25;
  9.                  UINT input_pointer = 0;
  10.                  byte Ops_Byte = 0;
  11.                  
  12.                  __asm
  13.                  {
  14.                         rdtsc
  15.                  }
  16.                         do
  17.                         {
  18.                         
  19.                                BYTE xor_Byte = myinput[input_pointer++] ^ 0xC7;
  20.                                BYTE Rol_byte = 1 << (Ops_Byte & 3);
  21.                                BYTE add_byte = xor_Byte + Rol_byte + 1;
  22.                               Ops_Byte+=add_byte;
  23.  
  24.                               if ((BYTE)f_enc_data[f_enc_count] != add_byte)
  25.                                    return false;
  26.  
  27.                         }while(f_enc_count--);
  28.                  
  29. return true;
  30. }




Ранг: 64.9 (постоянный), 47thx
Активность: 0.120.02
Статус: Участник

Создано: 30 августа 2015 15:14
· Личное сообщение · #21

Здрасвуй андроид, здрасвуй Арм...
Прошу подсказки, там нужно validatesomethingsomething.so разбирать или можно как нить обойтись?



Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 30 августа 2015 17:03
· Личное сообщение · #22

Я обратил функцию проверки в .so. Apk даже не смотрел, там скорее всего просто интерфейс.



Ранг: 64.9 (постоянный), 47thx
Активность: 0.120.02
Статус: Участник

Создано: 31 августа 2015 19:49
· Личное сообщение · #23

Пробежал по алго, вроде понял.
Но меня unk_7E7E смущяет. Там одни нули? Хотелось бы динамики...
myinphash_v9 = (unsigned int)&unk_7E7E >= ((my_input?_v5[i] << 8) | (unsigned int)my_input?_v5[i + 1]) ? (my_input?_v5[i] << 8) | my_input?_v5[i + 1] : 0;


Меня опять к бруту тянет. Там 23 буквы, из них 13 @flare-on.com, остается 10... Приёмлемо. Переписать на сишке, рипнуть таблички, и мож сработает. А интелектуальная работа над разкруткой напрягает... Не получается.



Ранг: 35.8 (посетитель), 23thx
Активность: 0.030
Статус: Участник

Создано: 31 августа 2015 20:11
· Личное сообщение · #24

hash87szf, берется два символа и переводятся в инт16, 0x7E7E отсекает символы выше "~". Ниже цикл разложения этого инт16 на составляющие, разберешься что на что делится и как результат используется, увидишь простой обратимый мат. алгоритм.
Да, кстати, символов там 46...

| Сообщение посчитали полезным: hash87szf

Ранг: 64.9 (постоянный), 47thx
Активность: 0.120.02
Статус: Участник

Создано: 31 августа 2015 20:24
· Личное сообщение · #25

О, это я притормозил. Терь дошло шо он |'ом две буквы рядом ложет, 7e7e не адрес .



Ранг: 35.8 (посетитель), 23thx
Активность: 0.030
Статус: Участник

Создано: 01 сентября 2015 20:10
· Личное сообщение · #26

Кто разбирал 8-е задание, пните в нужную сторону, я в стегано не силен.
Подозреваю лишние биты в палитре. Если так, то как выбрать, своми силами или есть готовые решения?



Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 01 сентября 2015 22:01 · Поправил: vden
· Личное сообщение · #27

Там простое LSB. Собираете с каждого пикселя для каждого цвета по биту в новый файл.

| Сообщение посчитали полезным: Psalmopoeus Pulcher

Ранг: 64.9 (постоянный), 47thx
Активность: 0.120.02
Статус: Участник

Создано: 04 сентября 2015 15:12 · Поправил: hash87szf
· Личное сообщение · #28

Не подскажет никто какаю тулза .нет букавки востановит?
Опять .нет трэд видел, пока я их все перепробую...

edit

de4dot справился, наверно. ILSpy пойдёт для работы?




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 04 сентября 2015 15:46
· Личное сообщение · #29

Там от восстановления только проблемы, ее нужно всего навсего отдебажить.

-----
Лучше быть одиноким, но свободным © $me




Ранг: 64.9 (постоянный), 47thx
Активность: 0.120.02
Статус: Участник

Создано: 04 сентября 2015 16:21
· Личное сообщение · #30

А ИДА дебагер его не хотит почемуто...


. 1 . 2 . 3 . 4 . 5 . >>
 eXeL@B —› Крэки, обсуждения —› Flare-On Challenge 2014-2019 - турнир крэкеров
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати