From 26c8ee6778250a8baa65bee91f83c59fdcc8501e Mon Sep 17 00:00:00 2001 From: Silmaulviel Date: Sat, 17 Jun 2023 12:33:51 +0000 Subject: [PATCH 1/6] =?UTF-8?q?Upload=20files=20to=20'tasks/=D0=97=D0=B0?= =?UTF-8?q?=D1=88=D0=B8=D1=84=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9=20=D1=84=D0=B0=D0=B9=D0=BB'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tasks/Зашифрованный файл/README.md | 53 ++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 tasks/Зашифрованный файл/README.md diff --git a/tasks/Зашифрованный файл/README.md b/tasks/Зашифрованный файл/README.md new file mode 100644 index 0000000..8cca1c1 --- /dev/null +++ b/tasks/Зашифрованный файл/README.md @@ -0,0 +1,53 @@ +Условие (можете поменять если придумаете что-то эпичнее): + +Нас взломали и зашифровали все файлы. Нам удалось извлечь шифровальщик, но мы понятия не имеем, как расшифровать их. Поможете? Вот вам шифровальщик и пример зашифрованного файла, кстати. + +Флаг: ```ctf{th1s_x0r_1s_s1mpl3}``` + +Решение: + +1. Наивное. +Переименовываем файл из flag.enc в flag.txt. Запускаем. Успех. +Проблемы решения: штука скомпилирована под Линукс =) + +2. Нормальное. +Открываем файл в <ваш-любимый-дизассемблер-нейм> +Видим в main() примерно следующий код (ghidra): + +``` +undefined8 main(void) +{ + file = fopen("flag.txt","r"); + if (file == (FILE *)0x0) { + puts("File does not exist!"); + } + else { + fgets(line,0x22,file); + copying(); + orexclusive(); + puts(ans); + fclose(file); + } + return 0; +} +``` +Понимаем, что штука открывает файл flag.txt и считывает из него 0х22 символа. +Функция copying() действительно просто копирует одну строку в другую. +Функция orexclusive() выглядит чуть более интересно: + +``` +void orexclusive(void) +{ + int local_c; + + local_c = 0; + while (local_c < 0x21) { + local_c = local_c + 2; + ans[local_c] = ans[local_c] ^ 8; + } + return; +} +``` + +Она осуществляет xor каждого второго элемента строки с константой. +Так как мы знаем, что xor - самообратимый, коммутативный и вообще классный, нам нужно просто проксорить каждый второй элемент строки с 8 для получения ответа. \ No newline at end of file From 35411f7b7deb8cb5dc1ef0037d30f06333d09a49 Mon Sep 17 00:00:00 2001 From: Silmaulviel Date: Sat, 17 Jun 2023 12:35:33 +0000 Subject: [PATCH 2/6] =?UTF-8?q?Upload=20files=20to=20'tasks/=D0=97=D0=B0?= =?UTF-8?q?=D1=88=D0=B8=D1=84=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9=20=D1=84=D0=B0=D0=B9=D0=BB/=D0=98=D1=81=D1=85=D0=BE?= =?UTF-8?q?=D0=B4=D0=BD=D0=B8=D0=BA=D0=B8'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Исходники/encrypt_file.cpp | 31 +++++++++++++++++++ tasks/Зашифрованный файл/Исходники/flag.txt | 1 + 2 files changed, 32 insertions(+) create mode 100644 tasks/Зашифрованный файл/Исходники/encrypt_file.cpp create mode 100644 tasks/Зашифрованный файл/Исходники/flag.txt diff --git a/tasks/Зашифрованный файл/Исходники/encrypt_file.cpp b/tasks/Зашифрованный файл/Исходники/encrypt_file.cpp new file mode 100644 index 0000000..402bd81 --- /dev/null +++ b/tasks/Зашифрованный файл/Исходники/encrypt_file.cpp @@ -0,0 +1,31 @@ +#include +#include + +const int maxsize = 33; +char line[maxsize+1]; +char ans[maxsize+1]; +FILE * file; + +void copying() { + for (int i = 0; i < maxsize; ++i) { + ans[i] = line[i]; + } +} + +void orexclusive() { + for (int i = 0; i < maxsize; i+=2, ans[i]^='^'-'|'+'&') {} +} + +int main(int argc, char * argv[]) { + file = fopen("flag.txt", "r"); + if (file == NULL) + printf("File does not exist!\n"); + else { + fgets(line, maxsize+1, file); + copying(); + orexclusive(); + printf("%s\n", ans); + fclose(file); + } + return 0; +} diff --git a/tasks/Зашифрованный файл/Исходники/flag.txt b/tasks/Зашифрованный файл/Исходники/flag.txt new file mode 100644 index 0000000..178771d --- /dev/null +++ b/tasks/Зашифрованный файл/Исходники/flag.txt @@ -0,0 +1 @@ +ctf{th1s_x0r_1s_s1mpl3} From bfd6b8068207a902974b9947b547e9a769524c7c Mon Sep 17 00:00:00 2001 From: Silmaulviel Date: Sat, 17 Jun 2023 12:36:35 +0000 Subject: [PATCH 3/6] =?UTF-8?q?Upload=20files=20to=20'tasks/=D0=97=D0=B0?= =?UTF-8?q?=D1=88=D0=B8=D1=84=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9=20=D1=84=D0=B0=D0=B9=D0=BB/=D0=A4=D0=B0=D0=B9=D0=BB?= =?UTF-8?q?=D1=8B=20=D0=B4=D0=BB=D1=8F=20=D1=82=D0=B0=D1=81=D0=BA=D0=B0'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tasks/Зашифрованный файл/Файлы для таска/cryptor | Bin 0 -> 8632 bytes .../Зашифрованный файл/Файлы для таска/flag.enc | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 tasks/Зашифрованный файл/Файлы для таска/cryptor create mode 100644 tasks/Зашифрованный файл/Файлы для таска/flag.enc diff --git a/tasks/Зашифрованный файл/Файлы для таска/cryptor b/tasks/Зашифрованный файл/Файлы для таска/cryptor new file mode 100644 index 0000000000000000000000000000000000000000..60b5bcd7d34b57cbe3941555ea8b8fb5643442c5 GIT binary patch literal 8632 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 aeEA&^nY1hXVpM9`JACE6D2hz|_WuP@MdKU* literal 0 HcmV?d00001 diff --git a/tasks/Зашифрованный файл/Файлы для таска/flag.enc b/tasks/Зашифрованный файл/Файлы для таска/flag.enc new file mode 100644 index 0000000..4db26fc --- /dev/null +++ b/tasks/Зашифрованный файл/Файлы для таска/flag.enc @@ -0,0 +1,2 @@ +ctn{|h9sWx8rW1{_{1epd3u + From 21ecc81c3aacdecf62f18a3db36ed8e003e6bc13 Mon Sep 17 00:00:00 2001 From: Silmaulviel Date: Sat, 17 Jun 2023 12:37:43 +0000 Subject: [PATCH 4/6] =?UTF-8?q?Upload=20files=20to=20'tasks/=D0=92=D0=BE?= =?UTF-8?q?=D0=B7=D0=B2=D1=80=D0=B0=D1=89=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B7?= =?UTF-8?q?=D0=B0=D1=88=D0=B8=D1=84=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.md | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 tasks/Возвращение зашифрованного файла/README.md diff --git a/tasks/Возвращение зашифрованного файла/README.md b/tasks/Возвращение зашифрованного файла/README.md new file mode 100644 index 0000000..5db9f36 --- /dev/null +++ b/tasks/Возвращение зашифрованного файла/README.md @@ -0,0 +1,47 @@ +Условие (можете поменять если придумаете что-то эпичнее): + +Нас опять взломали и зашифровали все файлы. Нам удалось извлечь шифровальщик, но мы понятия не имеем, как расшифровать их. Поможете? Вот вам шифровальщик и пример зашифрованного файла, кстати. + +Флаг: ```ctf{0h_c0ngr4tz_y0u_g0t_th1s!}``` + +Решение: + +Открываем файл в <ваш-любимый-дизассемблер-нейм> +Видим в main() примерно следующий код (ghidra), который подозрительно похож на то, что мы видели в предыдущем таске: + +``` +undefined8 main(void) +{ + file = fopen("flag.txt","r"); + if (file == (FILE *)0x0) { + puts("File does not exist!"); + } + else { + fgets(line,0x22,file); + copying(); + encryption(); + puts(ans); + fclose(file); + } + return 0; +} +``` +Снова открывается файл flag.txt и из него читаются 0х22 символа. +Функция copying() опять просто копирует одну строку в другую. +Функция encryption() нас расстроит, но не сильно: + +``` +void encryption(void) +{ + int local_c; + + local_c = 0; + while (local_c < 0x21) { + local_c = local_c + 1; + ans[local_c] = (char)local_c + ans[local_c] ^ 8; + } + return; +} +``` +Здесь опять xor с той же константой, но помимо этого результат еще складывается с позицией символа в строке. +Для декрипта важно не перепутать порядок этих действий: сначала xor-им, потом вычитаем. \ No newline at end of file From 95aecb983d12f981d34b045605c172bfcc84aa92 Mon Sep 17 00:00:00 2001 From: Silmaulviel Date: Sat, 17 Jun 2023 12:38:15 +0000 Subject: [PATCH 5/6] =?UTF-8?q?Upload=20files=20to=20'tasks/=D0=92=D0=BE?= =?UTF-8?q?=D0=B7=D0=B2=D1=80=D0=B0=D1=89=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B7?= =?UTF-8?q?=D0=B0=D1=88=D0=B8=D1=84=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0/=D0=98?= =?UTF-8?q?=D1=81=D1=85=D0=BE=D0=B4=D0=BD=D0=B8=D0=BA=D0=B8'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Исходники/decrypt | Bin 0 -> 8640 bytes .../Исходники/decrypt_file.cpp | 32 ++++++++++++++++++ .../Исходники/encrypt_file.cpp | 32 ++++++++++++++++++ .../Исходники/flag.txt | 2 ++ 4 files changed, 66 insertions(+) create mode 100644 tasks/Возвращение зашифрованного файла/Исходники/decrypt create mode 100644 tasks/Возвращение зашифрованного файла/Исходники/decrypt_file.cpp create mode 100644 tasks/Возвращение зашифрованного файла/Исходники/encrypt_file.cpp create mode 100644 tasks/Возвращение зашифрованного файла/Исходники/flag.txt diff --git a/tasks/Возвращение зашифрованного файла/Исходники/decrypt b/tasks/Возвращение зашифрованного файла/Исходники/decrypt new file mode 100644 index 0000000000000000000000000000000000000000..a1755aab5a28a7645703f2f23c2295df3978c625 GIT binary patch literal 8640 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 literal 0 HcmV?d00001 diff --git a/tasks/Возвращение зашифрованного файла/Исходники/decrypt_file.cpp b/tasks/Возвращение зашифрованного файла/Исходники/decrypt_file.cpp new file mode 100644 index 0000000..34653c4 --- /dev/null +++ b/tasks/Возвращение зашифрованного файла/Исходники/decrypt_file.cpp @@ -0,0 +1,32 @@ +#include +#include + +const int maxsize = 33; +char line[maxsize+1]; +char ans[maxsize+1]; +FILE * file; + +void copying() { + for (int i = 0; i < maxsize; ++i) { + ans[i] = line[i]; + } +} + +void decryption() { + for (int i = 0; i < maxsize; i+=1, ans[i] = (ans[i] ^ '^'-'|'+'&') - i) { + } +} + +int main(int argc, char * argv[]) { + file = fopen("flag.enc", "r"); + if (file == NULL) + printf("File does not exist!\n"); + else { + fgets(line, maxsize+1, file); + copying(); + decryption(); + printf("%s\n", ans); + fclose(file); + } + return 0; +} diff --git a/tasks/Возвращение зашифрованного файла/Исходники/encrypt_file.cpp b/tasks/Возвращение зашифрованного файла/Исходники/encrypt_file.cpp new file mode 100644 index 0000000..c80b07f --- /dev/null +++ b/tasks/Возвращение зашифрованного файла/Исходники/encrypt_file.cpp @@ -0,0 +1,32 @@ +#include +#include + +const int maxsize = 33; +char line[maxsize+1]; +char ans[maxsize+1]; +FILE * file; + +void copying() { + for (int i = 0; i < maxsize; ++i) { + ans[i] = line[i]; + } +} + +void encryption() { + for (int i = 0; i < maxsize; i+=1, ans[i] = (ans[i] + i) ^ '^'-'|'+'&') { + } +} + +int main(int argc, char * argv[]) { + file = fopen("flag.txt", "r"); + if (file == NULL) + printf("File does not exist!\n"); + else { + fgets(line, maxsize+1, file); + copying(); + encryption(); + printf("%s\n", ans); + fclose(file); + } + return 0; +} diff --git a/tasks/Возвращение зашифрованного файла/Исходники/flag.txt b/tasks/Возвращение зашифрованного файла/Исходники/flag.txt new file mode 100644 index 0000000..0b6ea6d --- /dev/null +++ b/tasks/Возвращение зашифрованного файла/Исходники/flag.txt @@ -0,0 +1,2 @@ +ctf{0h_c0ngr4tz_y0u_g0t_th1s!} + From ee421bd56f1d177916791c9dd237bb3d009be429 Mon Sep 17 00:00:00 2001 From: Silmaulviel Date: Sat, 17 Jun 2023 12:38:45 +0000 Subject: [PATCH 6/6] =?UTF-8?q?Upload=20files=20to=20'tasks/=D0=92=D0=BE?= =?UTF-8?q?=D0=B7=D0=B2=D1=80=D0=B0=D1=89=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B7?= =?UTF-8?q?=D0=B0=D1=88=D0=B8=D1=84=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0/=D0=A4?= =?UTF-8?q?=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B4=D0=BB=D1=8F=20=D1=82=D0=B0?= =?UTF-8?q?=D1=81=D0=BA=D0=B0'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Файлы для таска/cryptor2 | Bin 0 -> 8640 bytes .../Файлы для таска/flag.enc | 1 + 2 files changed, 1 insertion(+) create mode 100644 tasks/Возвращение зашифрованного файла/Файлы для таска/cryptor2 create mode 100644 tasks/Возвращение зашифрованного файла/Файлы для таска/flag.enc diff --git a/tasks/Возвращение зашифрованного файла/Файлы для таска/cryptor2 b/tasks/Возвращение зашифрованного файла/Файлы для таска/cryptor2 new file mode 100644 index 0000000000000000000000000000000000000000..7ac8e8e3f26f83e24258c7b908770a39113e0a06 GIT binary patch literal 8640 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