Skip to content
Avatar
🔭
Ищу смыслы
🔭
Ищу смыслы

Achievements

Achievements

Organizations

@UnblockerAPI
Block or Report

Block or report limitedeternity

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
limitedeternity/README.md

Привет!


Меня зовут Вячеслав. Для простоты можно Ви.

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

В настоящее время учусь в РГПУ им. А. И. Герцена по направлению «Информационные системы и технологии» (2018-2022). Связаться со мной можно, кликнув любую из кнопочек соцсетей выше, а я продолжу свой нарратив.

🔖 Внешние профили

Мой профиль на CodeWars:

Мой профиль на HackTheBox:

🖥 Мои проекты

JavaScript

  • 🔓 Unblocker – задумывавшийся изначально как приложение для рендера веб-страниц в PDF-формат, был реорганизован для обеспечения read-only доступа к заблокированным ресурсам. Может конвертировать magnet-ссылки в torrent-файлы, выступать в качестве прокси-сервера для скачивания файлов по прямым ссылкам. И, конечно же, рендерить страницы в PDF-формат. Регулярно набирает 800+ часов аптайма на Heroku в месяц.

  • 📒 DnevnikClient – альтернатива официальному клиенту dnevnik.ru, которая разрабатывалась мной в школьные годы и принесла мне победу на районном конкурсе IT-проектов. PWA-приложение, поддерживающее работу в офлайн-режиме. Лёгкое и быстрое, написано на фреймворке Vue.js.

  • 💡 AbitOnline – проект с хакатона "Цифровой Прорыв" в номинации "Государственное управление". Электронная приёмная комиссия. Тоже реализован на Vue.js, на бекэнде Zeit Micro.

  • 🔎 MimeDetect – эксперимент по написанию нативного Node-модуля на языке Rust с обёрткой в виде Electron.js и использованию Blocs для вёрстки UI. Приложение идентифицирует формат передаваемых ему файлов по "магическим байтам", а если это сделать не удаётся – сопоставляет расширение файла со внутренней базой данных.

  • 📄 TextReader – тоже Electron.js приложение. Позволяет читать большие текстовые файлы по кусочкам в 1000 байт. Так, например, можно заглянуть в файл, не загружая его в память полностью.

  • ⌨️ MathNote – и ещё одно Electron.js приложение. Позволяет делать заметки в формате Markdown с поддержкой LaTeX выражений. Можно сохранять часто используемые выражения в виде сокращений, которые при использовании будут раскрываться приложением при отображении заметки.

  • ⚙️ Channel4 – форк библиотеки, реализующей CSP для выполнения асинхронных задач в простейшем виде. Провёл рефакторинг и сделал пару фиксов, касающихся универсальности этого решения.

  • 📥 VK-Audio-Downloader – приложение, которое "рулило" headless-браузером для извлечения аудиотеки со страницы в ВК (пользователя или сообщества), пока последний не обфусцировал доступ к аудио ещё больше.
    Занимательный факт: изначально оно было реализовано в качестве плагина для MITMProxy на языке Python. Ветка с кодом осталась в исторических целях.

Python

  • 💾 Foxford Downloader – magnum opus, начало моей истории. Ныне представляет чисто историческую ценность. Титанический комбайн для сохранения материалов курсов с сайта foxford.ru, который поддерживался мной в одиночку. Умел скачивать видеолекции различными способами, которые активно исправлялись командой Нетологии, а также "рулил" headless-браузером для сохранения домашних заданий с ответами на них и лекциями в текстовом формате.

  • 📡 UpDown – программа для мониторинга доступности веб-сайтов. Создаёт уведомление, когда сайт падает или возвращается в онлайн. Поле экспериментов с различными шаблонами; в качестве базы данных используется SQLite3.

  • ☎️ gRPC-AddressBook – Программа "Контакты", или же "Адресная книга". Учился использовать gRPC в качестве альтернативы REST.

Java

Этому языку я с нуля учился на платформе JetBrains Academy (он же Hyperskill). За месяц (вплоть до истечения пробного периода) сумел выполнить два проекта наивысшего уровня сложности. Вот они:

  • 📬 WebQuizEngine – полноценный бекэнд приложения для создания и проведения опросов, написанный при помощи Spring Boot. Система сборки – Maven. В качестве базы данных используется H2. Есть система авторизации и валидация данных.

  • 🔗 Blockchain – упрощённая модель блокчейна с транзакциями, ботами и сервисами. Многопоточность, сериализация данных и многое другое. Система сборки – Gradle.

  • 📝 TextEditor – простенький редактор, сделанный при помощи Swing. "Читатель" есть, а "редактора" не было. Я это исправил 😊

Dart/Flutter

  • 📲 MediaServer – приложение, позволяющее поделиться содержимым папки с мультимедиа в локальной сети. Можно дать кому-нибудь послушать свою многотонную аудиотеку или посмотреть смешные видосики, которые ты кропотливо сохранял на телефоне.

  • 📷 Scanner – приложение-сканер, занимающееся оцифровкой ч/б документов и фискальных чеков. Осуществляет поиск документов на фотографии, нормализацию их ориентации и выравнивание цветовых параметров для получения изображения с очень высоким разрешением. Бекэнд написан на Python (использует OpenCV), а фронтэнд – на Dart.

  • 📤 GetItUploaded – быстрый и минималистичный загрузчик, позволяющий создать одноразовую ссылку на файл и поделиться ей. Файл можно выбрать как непосредственно в приложении, так и при помощи функции "поделиться" в вашем любимом файловом менеджере или любом другом приложении. Интерфейс нарисован в Sketch, а код для него автоматически сгенерирован в Supernova Studio.

  • ✉️ FlutterSMSApp – приложение для доступа к СМС в режиме "только чтение", чтобы случайно не отправлять ответы на тарифах, в которые не входят бесплатные сообщения.

  • ⚙️ JoystickNavDemo – эксперимент, демонстрирующий кастомное переключение карточек с использованием внешнего управляющего элемента. Может быть использован в качестве каркаса для приложения.

Rust

  • 🖥 Yanes – виртуальная машина, эмулирующая процессор 6502. Есть адресное пространство, дисплей, возможность ввода с клавиатуры и ассемблер.

  • 🔧 squidclient – утилита, написанная мной в процессе прохождения виртуальной машины Unbalanced на CTF-платформе HackTheBox. Под MacOS её не было, я сделал. Нужна для осуществления запросов к кэш-менеджеру Squid.

🔭 Что мне дал университет

CTF-достижения

  • "Не Mr. Robot, но...": добраться с ранга Noob до Elite Hacker на HackTheBox за месяц, по пути захватив пол сотни машин.
    Использованное "снаряжение" и отчёты тут: https://github.com/limitedeternity/HackTheBox

  • "А что, так можно было?": расширить знания по эксплуатации Linux-систем, используя Nebula.

  • "process is executing new program: /bin/dash": расширить знания по эксплуатации бинарных уязвимостей, используя Phoenix.

  • "Приключение на 20 минут": пройти dostackbufferoverflowgood за 20 минут, в процессе открыв для себя пару-тройку "тайных" знаний.

  • "Индиана Джонс": выполнить все задания ROPEmporium для архитектур i386 и amd64.
    Эксплойты тут: https://github.com/limitedeternity/ROPEmporium

  • "Одного байта хватит": пройти курс на Udemy по эксплуатации "выделителей памяти" (malloc).
    Эксплойты тут: https://github.com/limitedeternity/HeapLAB


Pinned

  1. foxford_courses Public archive

    Шапка треда, посвященного курсам Фоксфорда и не только.

    Python 337 113

  2. Makes region-restricted websites accessible

    HTML 31 44

  3. squidclient Public

    SquidClient. HTB Unbalanced edition.

    Rust 9 1

  4. Scanner Public

    Top-tier OpenCV document scanner with Flutter frontend

    Dart 9 1

  5. An unofficial client for Dnevnik.Ru

    Vue 4

  6. LEXICON Viewer Port

    JavaScript 2

152 contributions in the last year

Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr May Mon Wed Fri
Activity overview
Contributed to limitedeternity/some-gists, limitedeternity/yanes, limitedeternity/ost2 and 18 other repositories

Contribution activity

June 1, 2022

limitedeternity has no activity yet for this period.

Seeing something unexpected? Take a look at the GitHub profile guide.