Как восстановить данные из бекапа в postgresql

Иногда возникает потребность сделать бекап postgresql базы, используя подручные средста и накатить этот бекап на другую базу, например, для тестов.
Будем использовать утилиты pg_dump и pg_restore для достижения цели.

В зависимости от деталей задачи есть и другие варианты решения, например, с помощью подключение реплики базы или с помощью создание подписки.
Но эти варианты могут не работать, т.к. могут потребоваться права администратора для конфигурирования базы, которых может не быть при использовании облачной инфраструктуры.

Заодно вспомним как работать с docker, sql.

В качестве удаленной бд используем базу Neon на платформе Vercel.
Neon - это облачная база данных, совместимая с PostgreSQL, ориентированная на бессерверную архитектуру.

Фракталы Julia Set - Графика с библиотекой Ebiten на Go

Иногда нужно графически изобразить какаю-то симуляцию или процесс.
Основные требования - поддержка языка Go, т.к. вычисления производится на Go и простое использование.

Рассмотрим ebiten одну из самых полупярных библиотек для работы с графикой.
Основное применение ebiten - создание интерактивных 2D игр.

Воспользуемя библиотекой чтобы наривать какой-нибудь динамический процесс.

В качестве примера попробуем нарисовать множество Жюлиа.

Множество Жюлиа описывается уравнением
J(f)={zClimnfn(z)+} J(f) = \left\{ z \in \mathbb{C} \mid \lim_{n \to \infty} |f^n(z)| \neq +\infty \right\}

где $ f(x) = z^2 + c, c \in \mathbb{C} $

Как написать простой shellcode

Цель:

  • Написать на языке assembler программу, которая запускает shell оболочку.
  • Написать на языке c программу, которая читает shellcode из входного потока и выполняет этот код.

Как перехватить и расшифровать TLS-трафик curl

Иногда в целях отладки хочется посмотреть содержимое https трафика.
Например, клиент с помощью cURL взаимодействует с публичный API сервера.
Но иногда что-то идет не так. Клиент не получает ответ, хотя сервер залогировал, что запрос был успешно выполнен и ответ был отправлен. Выглядит что где-то среди различных проксей и различных подсетей что-то теряется.
В этом случае можно попробовать записать сетевую активность между клиентом и сервисом в разных местах, расшифровать данные, сопоставить запросы и ответы и проверить не потерялось ли что-то.

Advent of Code 2024

Advent of Code 2024 успешно завершился!

Каждый день с 1 по 25 декабря открывались по 2 задачи.
Обычно первая задача простая, для понимания всех условий задачи.
Вторая - более сложная, с измененными условиями так, что решение из первой задачи уже не подходит и приходится сильно оптимизировать алгоритм решения или использовать совершено другой подход.

Первая половина заданий была относительно простой, в то время как для решения финальных задач потребовались подсказки.

В целом, это была отличная возможность вспомнить алгоритмы.

Вебсервер на ассемблере

Для изучения ассемблера предлагается создать простой веб-сервер, который будет эмулировать базу данных key-value.

  • Сервер должен поддерживать эндпоинты:
    • GET /{key} - получить значение по ключу key.
    • POST /{key} - сохранить значение из тела запроса по ключу key.
  • Сервер должен поддерживать параллельную обработку запросов.
  • Сервер должен хранить все данные на диске.
  • Весь код сервера должен быть на ассемблере.

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

AES-CBC - Padding Oracle Attack

Padding Oracle Attack — это криптографическая атака, которая эксплуатирует механизм паддинга в некоторых схемах шифрования, таких как CBC (Cipher Block Chaining), использующий симметричное шифрование, например AES. Она позволяет злоумышленнику расшифровывать или изменять данные, не зная ключа шифрования.

С помощью этой атаки можно:

  • Расшифровать зашифрованное сообщение
  • Зашифровать произвольное сообщение

LeetCode - One-Year Challenge

Завершился челендж ежедневного решения задач на LeetCode на протяжении года (за исключением отпусков).

За год решил 707 задач. Из них: 261 - легкий уровень, 365 - средний уровень, 81 - сложный уровень.

В основном решал ежедневные задачи и среди “избранных” тем. Самые интересные темы: Trie, Dynamic Programming, Design.

Почти все задачи решены на языке C++.
Пробовал решать на Go. Go не подходит для алгоритмических задач, слишком ограничен. Язык C++ поддерживает намного больше концепций, позволяющих решить задачу более красиво и оптимальнее.

Решал задачи для подготовки к алгоритмическим секциям на интерью. Все секции успешно пройдены.
Больше не планирую заниматься решением задач на алгоритмы. Если хочется что-то порешать, то лучше попробовать CTF задачи. Это намного практичнее и разнообразнее.

amyasnikov - LeetCode Profile

Мой профиль: amyasnikov - LeetCode Profile

Прометей 2077 - Tinkoff-2024 - Web

Ссылка на задачу
Прометей 2077

Описание
Греческие боги наносят ответный удар.
Они забрали у всех пользователей интернета эмодзи 🔥 и запечатали его в надёжной таблице Sacred рядом с другими артефактами.
Герой с ником Prometheus решил выкрасть огонёк. Помогите ему и верните огонь в интернеты и переписки.

Форум
t-fire-oudjc9cv.spbctf.net

Исходный код форума
fire_64f7cd8.tar.gz

Галера - Tinkoff-2024 - Reverse

Ссылка на задачу
Галера

Описание
Аутстафф-компания заманила разработчиков интересными задачами, а потом заперла их на настоящей галере, приковала к вёслам и отправила в плавание.
Освободите команду.

Приложение программы корпоративной лояльности: Galera_be1756d.ipa

Приложение
galera.zip

Robotrickster - Tinkoff-2024 - Reverse

Ссылка на задачу
Робошулер

Описание
В космопоездах беда: появился обаятельный андроид-шулер, который обыгрывает всех в наперстки и обирает до нитки
Совершите маленькую шалость — выиграйте у робошулера весь миллион монет, которые звенят в его карманах.

Android приложение
robotrickster.zip

Счастливый билет - Tinkoff-2024 - Cryptography

Ссылка на задачу
Счастливый билетик

Описание
Талантливый разработчик хочет устроиться в бигтех, но боится неудачи. Он планирует съесть сто счастливых билетиков. И у него нет времени их искать, да и в кармане только 5000 ₽.
Заставьте терминал городского транспорта выдать ему пачку счастливых билетов — с равной суммой первых и последних трех цифр.

Терминал
t-luckyticket-w8mg6qr0.spbctf.ru

Исходный код терминала
luckyticket.tar.gz

ROSSAU - osu!gaming-2024 - Cryptography

Ссылка на задачу
crypto/ROSSAU

Описание
My friend really likes sending me hidden messages, something about a public key with n = 5912718291679762008847883587848216166109 and e = 876603837240112836821145245971528442417.
What is the name of player with the user ID of the private key exponent? (Wrap with osu{})

Alice doesn't know algebra - Codeby.games - Cryptography

Ссылка на задачу
Alice doesn’t know algebra

Описание
Alice took a long time to decide which exponent to choose when encrypting the key. In the end, she decided to use both…

Сложность
Medium

Сервер
62.173.***.***:11***

Файлы
Alice_doesnt_know_algebra.zip