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/elsefor item in iteravelwhile condicaobreak, continuematch/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 rederequests- HTTP requestsscapy- packet craftingdnspython- DNS queriesparamiko- SSH client
Criptografia
hashlib- MD5, SHAcryptography- AES, RSApycryptodome- crypto libpasslib- password hashingcryptography.fernet- simétrico
Análise & Utilities
pandas- análise de dadosnumpy- operações numéricasre- expressões regularesjson- parsing JSONsubprocess- 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 venvsource venv/bin/activatepip install -r reqs.txtrequirements.txtpip freeze > reqs.txt
Erros & Debug
try/exceptraise Exception()loggingmodulepdbdebugger- pytest para testes