EBCTF Teaser 2013 (BIN100)

Решения

http://hexpresso.wordpress.com/2013/06/02/ebctf-2013-teaser-bin100-write-up/ (hexpresso)
http://v0ids3curity.blogspot.ru/2013/06/ebctf-teaser-2013-bin-100-team-xbios.html (xbios)
http://nopsrus.blogspot.ru/2013/06/ebctf-2013-teaser-dice-game-100pts.html (Nops"R"Us)
Назад к списку заданий

Задание (reverse)

Challenge BIN100 "Dice Game"
Beat our dice game (ebCTF-Teaser-BIN100-Dice.zip) and get the flag.

Подробное описание

Нам предлагают игру в кости. Задача: мы должны бросить правильную последовательность чисел, чтобы получить флаг.
$ ebCTF-Teaser-BIN100-Dice.exe
 
[*] ebCTF 2013 Teaser - BIN100 - Dice Game
    To get the flag you will need to throw the correct numbers.
 
[*] You will first need to throw a three, press enter to throw a dice!
-------
| O   O |
|       |
| O   O |
 -------
 
[*] You rolled a 4 That is not a three :/
[*] Game over!

Последовательность кубиков должна быть 3-1-3-3-7. Т.е. сначала программа просит нас бросить кубик с тройкой (конечно, кубики бросает сама программа, от нас только нужно одно – нажать enter), затем с единицей и т.д. Роль кубиков выполняют числа, которые программа случайно генерирует: диапазон от 1 до 6. Даже не спрашивайте как при таком диапазоне чисел, должна выпасть 7. А флаг формируется без участия каких-либо пользовательских данных.
Тут два варианта решения. Первый – исследовательский (восстановление алгоритма создания ключа), второй – простой (патчить условия проверки и заставить программу поверить, что комбинация 3-1-3-3-7 получилась сама собой).
Кстати, в программе есть и антиотладка. Простейший трюк с IsDebuggerPresent (функция 0040175A). Он влияет на процедуру создания ключа.

Патчим (заменяем JNZ на NOP)

Смещение    Смещение    JNZ            Проверка кубика
в файле     в коде
00000D2B    00401927    75 5E                3
00001069    00401C69    75 5C                1
000013A5    00401FA5    75 50                3
000016D5    004022D5    0F 85 95 00 00 00    3
00001A4F    00402700    0F 85 95 00 00 00    7

Результат

[*] ebCTF 2013 Teaser - BIN100 - Dice Game
    To get the flag you will need to throw the correct numbers.
. . . . . . . . . . . 
[*] You rolled 3-1-3-3-7, what does that make you? ELEET! \o/
[*] Nice job, here is the flag: ebCTF{64ec47ece868ba34a425d90044cd2dec}

Флаг:
ebCTF{64ec47ece868ba34a425d90044cd2dec}

Пока не указано иное, содержимое этой страницы распространяется по лицензии Creative Commons Attribution-ShareAlike 3.0 License