• 🚨 24 часа до повышения цены на курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    Последний день записи в текущий поток по старой цене Подробнее о курсе ...

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

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

  • 9 327
  • 14
Часть 1 Часть 2

Всем привет!

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

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

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

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

  • 8 552
  • 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. Для понимания - икс...

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

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

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

"Из коробки" доступен дамп:
  • Фото (из всех альбомов в том числе личных)
  • Документы
  • Диалоги
    • сообщения {'from', 'text', 'date'}
    • вложения (photo, docs, [COLOR=rgb(251, 160...

Конкурс Брутим архивы ZIP/RAR используя python

  • 9 992
  • 2
logo.png


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

Tkinter
PyGTK
PySide

[COLOR=rgb(251, 160...

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

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

Для тех, кто сразу хочет развернуть проект, скачиваем...

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

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

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

Учимся писать чистый код на Python

  • 6 447
  • 8
Какое-то время покодив, я понял, что большинство программ, встречающихся в сети написаны очень грязно. Да и сам я не так сильно заморачивался с этим делом.
Давайте разберёмся, что значит грязно?

Для начала такой пример из обычной жизни - вы написали ручкой на бумаге какой-то текст и другой человек его взял почитать. Ага, но не тут-то было! Почерк настолько корявый, что на своём родном языке ничего не понятно.

Выходит один и тот же текст может как легко читаться, так и вызывать затруднения в восприятии. И конечно легко и приятно будет читать написанное в чётком исполнении.
Вот и в языке Python есть свод правил хорошего тона, стилей написания, и называется он
Разберём на примере кода из этого топика.

Анализатор кода показал огромное количество предупреждений.

pey.png


А теперь разберёмся, где можно посмотреть эти...

Считаем количество знаков в тексте

  • 5 564
  • 5
Приветствую всех читателей!

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

Для начала импортируем модуль pyperclip и вставим поясняющий текст.

Python:
import pyperclip

print('Скопируйте в буфер обмена текст')
print('-'*50)

input('Нажмите ENTER')
print('-'*50)

Потом вставим скопированный текст

Python:
s = pyperclip.paste()

Подсчитаем количество символов с пробелами, без пробелов, и количество слов.

Python:
n = len(s.split())
s = s.replace('\n', '')
s = s.replace('\r', '')
n1 = len(s)
s = s.replace(' ', '')
n2 = len(s)

Теперь сначала выведем скопированный...