DEF CON 19 CTF Roman zyx2145 Vasilenko. Типы CTF Classic CTF Defcon Final ruCTF Final … Final Jeopardy Defcon Quals Hack.lu ruCTF Quals iCTF iCTF xD.

Презентация:



Advertisements
Похожие презентации
Задачи заполнения.. Заполните массив размером 10 нулями. DIM A(10) FOR I=1 TO 10 A(I)=0 NEXT I DIM A(10) FOR I=1 TO 10 INPUT A(I) NEXT I.
Advertisements

Статические поля класса Статические поля хранят данные, общие для всех элементов класса. Статическое поле существует в единственном экземпляре для всех.
Практическое занятие Ввод-вывод информации Преподаватель: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ»
В. М. Гуровиц, Очередь – это структура данных, хранящая последовательность элементов и обычно поддерживающая следующие операции: push.
Администраторы ресурсов в QNX. Администратор ресурсов в QNX является пользовательской программой, которая предоставляет стандартизированный по интерфейсу.
1. a=? b=? c=? {int a, b, c; a=(b=2+3)/2 - 4+(c=5%2); printf("%d %d %d \n", a, b, c); }
СОКЕТЫ. СОКЕТ Сокет – программный интерфейс для обеспечения обмена данными между процессами. Впервые socket API появилась в BSD Unix. Описан в POSIX В.
JTAG for dummies 31/01/2013 DCG #7812
1. a=? b=? c=? {int a, b, c; a=(b=2+3)/2 - 4+(c=5%2); printf("%d %d %d \n", a, b, c); }
Управление процессами 3.Взаимодействие процессов: синхронизация, тупики 3.1.Разделение ресурсов 3.2.Взаимное исключение Проблемы реализации взаимного.
Лекция 2. Фундаментальные типы данных и основные конструкции Красс Александр СПбГУ ИТМО, 2008.
Защита от взлома Лекция 10Защита от взлома Лекция 10.
Лекция 14 Динамические данные. Виды памяти Существует три вида памяти: статическая, стековая и динамическая. Статическая память выделяется еще до начала.
СОКЕТЫ -2 РАБОТА СЕРВЕРА Стандартная схема работы плоха тем, что одновременно обслуживается только один клиент ! Это приводит к задержкам в работе сети.
Проверка домашнего задания Определить сколько раз данное слово (сочетание букв) встречается в тексте. CLS INPUT Введите текст: ; TXT$ INPUT Введите слово:
Лекция 9 Функции. Массивы-параметры функции Передача массива в функцию Пример: void array_enter(int a[], int size) { int i; for (i = 0; i < size; i++)
«Программирование с использованием множеств» Delphi. Тема 8:
Ассоциативные списки Поиск данных происходит не по индексу или положению объекта, а по его ассоциативной связи: public interface Map { // Доступ к объектам.
Java in pictures. Part 3.
Mock-объекты mock (англ.) – ложный, фиктивный, мнимый, фальшивый, поддельный.
Транксрипт:

DEF CON 19 CTF Roman zyx2145 Vasilenko

Типы CTF Classic CTF Defcon Final ruCTF Final … Final Jeopardy Defcon Quals Hack.lu ruCTF Quals iCTF iCTF xD

Defcon Quals

X 4X 8 X 1 WTF?

X 1X 3 X 20

механизм виртуализации в системе FreeBSD, позволяющий создавать внутри одной операционной системы FreeBSD несколько независимо работающих FreeBSD на том же ядре операционной системы, но совершенно независимо настраиваемых с независимым набором установленных приложений. (c) wiki FreeBSD Jail

Attack from other team Боевой сервер с обновляемыми через Jail флагами VM с работающими сервисами, но фейковыми флагами Сниффер! Ищем в исходящем трафике фейковые флаги Защита Jury checker

Hiver Bloom filter вероятностная структура данных, придуманная Бёртоном Блумом в 1970 году[1], позволяющая компактно хранить множество элементов и проверять принадлежность заданного элемента к множеству. При этом существует возможность получить ложноположительное срабатывание (элемента в множестве нет, но структура данных сообщает, что он есть), но не ложноотрицательное.

Hiver int __cdecl bloom_check(BLOOM *bloom, char *input_data) { size_t n; // unsigned int hash; // unsigned __int8 *v4; // int result_; // [sp+8h] result_ = 0; if ( bloom->nfuncs ) { n = 0; do { hash = bloom->funcs[n](input_data); if ( ((signed int)bloom->key[hash % bloom->key_size >> 3] >> ((unsigned __int8)hash % LOBYTE(bloom->key_size) & 7)) & 1 ) result_ += 1 nfuncs > n ); } v4 = &bloom->key[rand() % bloom->key_size >> 3]; *v4 ^= 1 key_size & 7); return result_; }

Forgetu } int __cdecl main(int fd_2) { … SentDataToSocet(fd_2, "Enter your data: ", 0); read_bytes = RecvDataFromSocket(v2, v1, fd_2, (size_t)data, 0x7Fu, '\n'); data[read_bytes] = 0; hash = make_hash((unsigned __int8 *)data); if ( hash == 0xB33007D3 ) { CheckJury(fd_2, 0); return 0; } if ( hash != 0xFC1BE02A ) { SentDataToSocet(fd_2, "Better luck next time\n", 0); return 0; } SentDataToSocet(fd_2, "Stage 2: ", 0); read_bytes_ = RecvDataFromSocket(v7, v6, fd_2, (size_t)data, 127, '\n'); if ( read_bytes_

Forgetu def make_hash(data, debug=0): hash = 0x1505 for c in data: hash += (ord(c) + (hash

Bunny

За 10 часов до конца

Как проходила игра

Afterparty