Программирование для ИБ

Практика для Python

  • 16 116
  • 16
Привет! Заметил, что проблемой некоторых после изучения ЯП является оттачивание навыков, то есть практика.
Именно поэтому решил отобрать парочку достойных сайтов для практики языка программирования Python,
но чтобы не получился копипаст решил также разобрать парочку заданий с каждого сайта.


1| www.pythonchallenge.com - Сайт с загадками для решения которых нужно использовать Python.
Сложность увеличивается в геометрической прогрессии с каждой новой задачей.


Давайте решим задачки с этого сайта:

Для решение этой задачи не нужны никакие знания языка программирования.
Чтобы решить эту задачу, нужно просто придерживаться логики.


26612


Как видим, сайт даёт нам подсказку, благодаря, которой мы должны перейти к следующему уровню.
Данную задачу, как и все последующие можно решить двумя способами:

Первый способ: Следовать логике и понять, что данный уровень является нулевым (см. картинку), а значит последующий будет первым.

[COLOR=rgb(147, 101...

Каталог PHP, JS, HTML: каталог статей "list of articles"

Пишем графическую оболочку на Python - часть 3

  • 11 847
  • 14
Часть 1 Часть 2

Всем привет!

В предыдущих частях мы познакомились с двумя методами позиционирования элементов - pack() и place(). Для выполнения простых задач они вполне подходят. А если у нас планируется программа, где будет сложный интерфейс, или просто большое количество элементов, то самым лучшим методом будет несомненно grid(). На первый взгляд метод немного посложнее, но разобравшись в сути, он не станет выглядеть сложным.

Метод grid() как ясно из названия, представляет собой сетку. Выглядит схематично это следующим образом:

То есть окно программы делится на столбцы и строки, а нумерация начинается с нуля. И прежде чем начать программировать, лучше всего начертить будущую программу на обычном листочке в клеточку. Это даст полное представление в какие ячейки что помещать. Столбцы и строки можно объединять с помощью columnspan и rowspan.

Например накидаем простейший калькулятор, и расчерченный рисунок поможет...

Пишем графическую оболочку на Python - часть 2

  • 10 417
  • 5
В первой части мы узнали как создавать основное графическое окно, и размещать в нём кнопки и текстовые метки с помощью метода pack. Но как можно заметить этот способ ориентации в окне по сторонам света очень негибкий. И сегодня мы рассмотрим другой метод, лишённый этого недостатка.

Напишем такой код:

Python:
from tkinter import *

root = Tk()
root.title("Метод place")
root.geometry("400x250")
root.resizable(width=False, height=False)

puch = Button(text="Puch", background="#483D8B", foreground="#fff", width=12).place(x=50, y=200)
sova = Button(text="Sova", background="#483D8B", foreground="#fff", width=12).place(x=250, y=200)

text = Text(width=47, height=10, bg="#F8F8FF", fg='black', wrap=WORD)
text.place(x=10, y=10)

root.mainloop()

Здесь мы использовали метод place() Как он работает? Берутся координаты по осям x и y. Для понимания - икс это слева по оси координат, а игрек сверху. Таким образом мы можем расположить любые элементы в окне очень точно. Отступ измеряется в пикселях.

Также в коде у нас присутствует класс[COLOR=rgb(251...

Python - Dump VK (фото, документы, диалоги+вложения)

  • 38 020
  • 15
Dump VK
Статья для участия в конкурсе Конкурс 2018 года - авторская статья по любой тематике нашего форума!

Всем привет, в этой статье я вас научу делать дамп данных из вк, а вернее напишем инструмент на python для автоматизации данного процесса.

"Из коробки" доступен дамп:
  • Фото (из всех альбомов в том числе личных)
  • Документы
  • Диалоги
    • сообщения {'from', 'text', 'date'}
    • вложения (photo, docs, audio_message)
Такой набор требований к дампу сформулирован из моих личных желаний(интерес к этим данным), однако, финальная структура проекта, позволяет легко добавить и другие режимы...

Статья Восстановление паролей ZIP и RAR архивов с помощью Python: Практическое руководство

  • 11 475
  • 2
logo.png


Статья для участия в Конкурсе программистов.

Доброго времени суток, мы начинаем!

0. Предисловие

Всегда наступает такой момент, когда пользователь забывает пароль от архива, в котором спрятал свои секреты. Для самых забывчивых мы сегодня сделаем некоторую программу, функционал которой -- подбор пароля для архивов с расширением zip/rar.

Писать будем на python3(дальше просто python), хотя заранее знаем, что писать локальную брутилку на этом языке не рационально. Однако иногда он используется как черновик, вот и почеркаем немного, чтобы проверить, можно ли такое реализовать. (да, можно (: )

1. Подготовка


Нам понадобится:
  • текстовый редактор или IDE;
  • интерпретатор python;
  • минимальное знание python; ( В противном переходим к чтению серии статей от @al04e )
  • желательно, наличие unix;
2...

Изучаем Python на практике. Пишем аналог утилит wc и split (для подсчета строк и разрезания текстовых файлов).

  • 8 250
  • 2
Статья для участия в Конкурсе программистов.
Это вторая статья из цикла "Изучаем Python на практике".
Первый пост: Изучаем Python на практике. Пишем чекер SSH серверов.
Смотрите комментарии к посту, если будут найдены ошибки или внесены исправления, буду публиковать их в комментариях, так как через некоторое время возможность редактирования поста пропадает.

В *nix подобных системах есть две утилиты: wc - для подсчета строк в файле, split для разрезания файлов. Однако split режет файлы по количеству байт, не учитывая содержимое.
Попробуем создать их аналог для работы с текстовыми файлами.
Сформулируем техническое задание.
Наша самописная утилита, назовем ее "filecut", должна обладать следующим функционалом:
  • уметь подсчитывать строки в указанном текстовом файле - пользователь вводит...

Пишем графическую оболочку на Python - часть 1

  • 41 878
  • 16
Приветствую любителей языка Python!

Все вы прекрасно знаете, что программы пишутся как в консольном варианте, так и с графической оболочкой GUI.
GUI - graphical user interface

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

Есть почитатели как и консольных вариантов, так и GUI. И вопрос что лучше совершенно неверный. Самые сложные программы всегда стараются сделать с оболочкой, иначе софт обрастает диким количеством опций, в которых трудно разобраться. Кроме этого, если программа пишется не для личного пользования, то нужно учитывать, что большая часть юзеров сидит под ОС Windows, и привыкла к графике. Поэтому даже если вы ярый приверженец консоли, но например, делаете программы на заказ, то уметь писать программы с оболочкой просто необходимо.

Есть много вариантов Python GUI. Вот неполный список:

Tkinter
PyGTK
PySide

PyQt
wxPython


Мы будем делать интерфейс с помощью Tkinter. Главным преимуществом его является встроенность в Python. То есть не понадобится устанавливать каких-то сторонних...

Изучаем Python на практике. Пишем чекер SSH серверов.

  • 23 922
  • 24
Приветствую всех, кто изучает Python и хочет перейти от сухой теории к практическому применению полученных знаний.
Просмотрев форум codeby.net нашел несколько материалов, где авторы делились своим опытом и пробовали свои силы в написании небольших скриптов. К сожалению большинство авторов использовали процедурный тип написания кода. В то время как создание, поддержание и развитие приложения даже средней сложности требует ООП подхода.
Попробуем в небольшом проекте применить ООП, в самом простом виде.
Автор будет очень благодарен более опытным товарищам, если они наставят на путь истинный и, возможно, дадут пару подзатыльников для дальнейшего развития в нужном направлении.
Не смотря на свой возраст - автор начинающий программист-любитель, самоучка, а без посторонней помощи в программировании можно барахтаться годами примерно на одном уровне. Именно поэтому и пишу.

Для тех, кто сразу хочет развернуть проект, скачиваем архив и в папке с архивом выполняем:
Python:
pip install -r requirements.txt

Полный текст программы можно посмотреть в конце поста под спойлером...

Статья [Python] Пишем динамический C2 сервер

  • 8 382
  • 10
Приветствую всех! Недавно меня опять посетила идея. А что если сделать динамический C2 сервер, возможно ли это?
Теперь давайте пройдемся по теории, C2 сервер - проще говоря это сервер для контроля малваря, например малварь стучит на этот сервер, получает задание и выполняет его на зараженной системе.
Но проблема таких серверов, что ip такого сервера жестко установлен в коде, и тем самым этот сервер легче отключить.
Динамический C2(возможно такого понятия нету, но мне кажется, что слово "динамический" легче для восприятия идеи) - это то есть ip не будет жестко указан в коде, он будет меняться n-ое время(желательно 12 часов)

Я написал скажем основу, но идея еще не до конца завершена, осталось придумать как или через что будет поступать для агента(того кто выполняет задания) новый ip.(есть идеи например: через dns или протоколы какие-нибудь)
В будущем хотел бы скрестить этот C2 c koadic. Также если вам понравилась эта идея и вы хотите участвовать в разработке напишите мне в ЛС на codeby(нужны знания python и веба).

Реализовывать будем через сервис - ngrok.
Почему именно ngrok? Потому что там выдается рандомный сабдомен + есть https.

Прежде чем начать писать мы должны скачать...
🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

Статистика форума

Темы
52 218
Сообщения
346 380
Пользователи
149 637
Новый пользователь
noterdam