🐍 PROGRAMAÇÃO

Python

Programação versátil para automação, scripting, desenvolvimento de ferramentas de segurança e análise de dados.

← Voltar ao início

Fundamentos

# Olá Mundo
print("Olá, Francisco!")

# Variáveis
nome = "Francisco"
idade = 21
ativo = True

# Tipos de dados
texto = "string"
numero = 42
flutuante = 3.14
lista = [1, 2, 3]
dicionario = {"chave": "valor"}

Estruturas de Dados

  • Listas [1, 2, 3]
  • Tuplas (1, 2, 3) - imutáveis
  • Dicionários {"a": 1}
  • Sets {1, 2, 3} - únicos
  • List comprehensions

Controlo de Fluxo

  • if/elif/else
  • for item in iteravel
  • while condicao
  • break, continue
  • match/case (3.10+)

Funções

  • def nome(params):
  • Parâmetros default
  • *args, **kwargs
  • Decoradores @decorator
  • Lambda functions

Bibliotecas para Cibersegurança

Redes & Socket

  • socket - comunicações de rede
  • requests - HTTP requests
  • scapy - packet crafting
  • dnspython - DNS queries
  • paramiko - SSH client

Criptografia

  • hashlib - MD5, SHA
  • cryptography - AES, RSA
  • pycryptodome - crypto lib
  • passlib - password hashing
  • cryptography.fernet - simétrico

Análise & Utilities

  • pandas - análise de dados
  • numpy - operações numéricas
  • re - expressões regulares
  • json - parsing JSON
  • subprocess - executar comandos

Exemplos para Segurança

# Scanner de portas simples
import socket

def port_scanner(host, ports):
for port in ports:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
result = sock.connect_ex((host, port))
if result == 0:
print(f"Porta {port}: ABERTA")
sock.close()

# Hash de passwords
import hashlib

def get_hash(text):
return hashlib.sha256(text.encode()).hexdigest()

# Banner grabbing
import socket

def get_banner(ip, port):
sock = socket.socket()
sock.connect((ip, port))
return sock.recv(1024)

Boas Práticas

Estilo de Código

  • PEP 8 style guide
  • Docstrings em funções
  • Nomes descritivos
  • Type hints (3.5+)
  • Limitar linhas a 79/120

Virtual Environment

  • python -m venv venv
  • source venv/bin/activate
  • pip install -r reqs.txt
  • requirements.txt
  • pip freeze > reqs.txt

Erros & Debug

  • try/except
  • raise Exception()
  • logging module
  • pdb debugger
  • pytest para testes