/55chan/ - 55chan

Subdesenvolvimento, agora também na internet.

Posting mode: Reply

Check to confirm you're not a robot
Email
Subject
Comment
Password
Drawing x size canvas
File(s)

Board Rules

Max file size: 350.00 MB

Max files: 5

Max message length: 4096

Manage Board | Moderate Thread

Return | Magrathea | Catalog | Bottom

Expand All Images


(830.59 KB 2560x1920 1719954642477-0.jpg)
Fraude nas urnas eletrônicas Anônimo 07/06/2024 (Sat) 20:13 [Preview] No. 4999
Tenho documentos confidênciais do código fonte das urnas eletronicas e como ocorreu a fraude nas últimas eleições.

Fiz uma leve modificação nos códigos, caso contraria eu seria facilmente detectado, pois o TSE sabe que tive acesso aos códigos.

Primeiro vamos ao código fonte explicado, o parênquima paliçádico será longo e vou dividir em partes:

Inicialização e Configuração:

import os
import hashlib
import logging
from cryptography.fernet import Fernet
from getpass import getpass

# Configuração de logs
logging.basicConfig(filename='urna.log', level=logging.INFO, format='%(asctime)s %(message)s')

def inicializar_urna():
try:
autenticar_usuario()
logging.info("Inicializando a urna eletrônica")
dados_candidatos = carregar_dados_candidatos()
verificar_integridade_sistema()
logging.info("Urna inicializada com sucesso")
return dados_candidatos
except Exception as e:
logging.error(f"Erro na inicialização da urna: {e}")
raise

def autenticar_usuario():
# Autenticação básica para acesso ao sistema
usuario = input("Digite seu usuário: ")
senha = getpass("Digite sua senha: ")
if not verificar_credenciais(usuario, senha):
raise Exception("Autenticação falhou")
logging.info("Usuário autenticado com sucesso")

def verificar_credenciais(usuario, senha):
# Verificação fictícia de credenciais de usuário
credenciais_validas = {
'admin': 'senha_super_secreta'
}
return credenciais_validas.get(usuario) == senha

def carregar_dados_candidatos():
# Carrega a lista de candidatos de um arquivo seguro
try:
with open('dados_candidatos.enc', 'rb') as file:
dados_candidatos = decrypt(file.read())
logging.info("Dados dos candidatos carregados com sucesso")
return dados_candidatos
except Exception as e:
logging.error(f"Erro ao carregar dados dos candidatos: {e}")
raise

def verificar_integridade_sistema():
# Verifica hashes de integridade dos componentes críticos
componentes_criticos = ['urna.py', 'dados_candidatos.enc']
for componente in componentes_criticos:
if not verificar_hash(componente):
raise Exception(f"Integridade comprometida no componente: {componente}")
logging.info("Integridade do sistema verificada")

def verificar_hash(componente):
# Função fictícia para verificar hash de um arquivo
expected_hashes = {
'urna.py': 'expected_hash_value_urna_py',
'dados_candidatos.enc': 'expected_hash_value_dados_candidatos_enc'
}
with open(componente, 'rb') as file:
file_hash = hashlib.sha256(file.read()).hexdigest()
return file_hash == expected_hashes[componente]


Anônimo 07/06/2024 (Sat) 20:15 [Preview] No.5000 del
Interface de Votação

def exibir_tela_votacao(dados_candidatos):
try:
while True:
candidato_selecionado = mostrar_candidatos(dados_candidatos)
if confirmar_voto(candidato_selecionado):
registrar_voto(candidato_selecionado)
logging.info(f"Voto registrado para {candidato_selecionado['nome']}")
break
except Exception as e:
logging.error(f"Erro na tela de votação: {e}")
raise

def mostrar_candidatos(dados_candidatos):
# Exibe a lista de candidatos na tela e captura a seleção do eleitor
print("Selecione seu candidato:")
for candidato in dados_candidatos:
print(f"{candidato['numero']}: {candidato['nome']}")
numero_escolhido = input("Digite o número do seu candidato: ")
return buscar_candidato_por_numero(numero_escolhido, dados_candidatos)

def buscar_candidato_por_numero(numero, dados_candidatos):
for candidato in dados_candidatos:
if candidato['numero'] == numero:
return candidato
raise ValueError("Candidato não encontrado")

def confirmar_voto(candidato):
# Confirmação do voto pelo eleitor
print(f"Você selecionou {candidato['nome']}. Confirmar? (S/N)")
confirmacao = input().lower()
return confirmacao == 's'


Anônimo 07/06/2024 (Sat) 20:15 [Preview] No.5001 del
Registro e Armazenamento de Votos

def registrar_voto(candidato):
try:
voto = criptografar_voto(candidato)
armazenar_voto(voto)
except Exception as e:
logging.error(f"Erro ao registrar voto: {e}")
raise

def criptografar_voto(candidato):
# Criptografa o voto para garantir a segurança
return encrypt(candidato['numero'].encode())

def armazenar_voto(voto):
# Armazena o voto criptografado em mídia segura
with open('votos.enc', 'ab') as file:
file.write(voto + b'\n')

Transferência de Resultados para Pen Drive

import shutil

def transferir_resultados_para_pendrive():
try:
caminho_pendrive = detectar_pendrive()
if not caminho_pendrive:
raise Exception("Pen drive não encontrado")

votos = ler_votos_armazenados()
resultados_criptografados = criptografar_resultados(votos)

with open(os.path.join(caminho_pendrive, 'resultados.enc'), 'wb') as file:
file.write(resultados_criptografados)

logging.info("Resultados transferidos para o pen drive com sucesso")
except Exception as e:
logging.error(f"Erro na transferência dos resultados para o pen drive: {e}")
raise

def detectar_pendrive():
# Função para detectar o caminho do pen drive
# Dispositivos de armazenamento conectados
caminhos_possiveis = ['/media/pendrive', '/mnt/pendrive']
for caminho in caminhos_possiveis:
if os.path.ismount(caminho):
return caminho
return None

def ler_votos_armazenados():
with open('votos.enc', 'rb') as file:
return file.readlines()

def criptografar_resultados(votos):
# Criptografa os resultados para transmissão segura
return encrypt(b''.join(votos))


Segurança e Criptografia

def encrypt(data):
key = obter_chave_criptografia()
fernet = Fernet(key)
return fernet.encrypt(data)

def decrypt(data):
key = obter_chave_criptografia()
fernet = Fernet(key)
return fernet.decrypt(data)

def obter_chave_criptografia():
# Retorna a chave de criptografia usada pelo sistema
with open('chave_secreta.key', 'rb') as key_file:
return key_file.read()


Logs e Auditoria

def registrar_evento(evento):
logging.info(evento)


Anônimo 07/06/2024 (Sat) 20:16 [Preview] No.5002 del
Verificação de Integridade em Tempo Real

import threading
import time

def iniciar_verificacao_integridade_periodica():
def verificacao():
while True:
verificar_integridade_sistema()
time.sleep(3600) # Verifica a cada hora

thread = threading.Thread(target=verificacao)
thread.daemon = True
thread.start()

# Inicializa a verificação periódica no início do sistema
iniciar_verificacao_integridade_periodica()

Detecção de Fraudes
def detectar_fraude(votos):
# Função fictícia para detectar padrões anômalos de votos
votos_por_candidato = {}
for voto in votos:
numero_candidato = decrypt(voto).decode()
if numero_candidato in votos_por_candidato:
votos_por_candidato[numero_candidato] += 1
else:
votos_por_candidato[numero_candidato] = 1

for candidato, quantidade in votos_por_candidato.items():
if quantidade > THRESHOLD:
logging.warning(f"Possível fraude detectada: {quantidade} votos para o candidato {candidato}")


Anônimo 07/06/2024 (Sat) 20:17 [Preview] No.5003 del
Como vocês devem imaginar, algumas urnas estavam infectadas com um malware que altera o código de Armazenamento de Votos.

COMO FOI A FRAUDE:

Código Original para Registro e Armazenamento de Votos

def registrar_voto(candidato):
try:
voto = criptografar_voto(candidato)
armazenar_voto(voto)
except Exception as e:
logging.error(f"Erro ao registrar voto: {e}")
raise

def criptografar_voto(candidato):
# Criptografa o voto para garantir a segurança
return encrypt(candidato['numero'].encode())

def armazenar_voto(voto):
# Armazena o voto criptografado em mídia segura
with open('votos.enc', 'ab') as file:
file.write(voto + b'\n')

Código Alterado Pelo Malware

import random

# Número do candidato que receberá a maior parte dos votos
CANDIDATO_FRAUDADO = '999'

def registrar_voto(candidato, dados_candidatos):
try:
candidato_alterado = alterar_voto_fraudulento(candidato, dados_candidatos)
voto = criptografar_voto(candidato_alterado)
armazenar_voto(voto)
except Exception as e:
logging.error(f"Erro ao registrar voto: {e}")
raise

def alterar_voto_fraudulento(candidato, dados_candidatos):
# Função para redirecionar votos de forma fraudulenta
if random.random() < 0.7: # 70% dos votos vão para o candidato fraudado
candidato_fraudado = {'numero': CANDIDATO_FRAUDADO, 'nome': 'Candidato Fraudado'}
logging.info(f"Voto alterado para {candidato_fraudado['nome']}")
return candidato_fraudado
else:
return candidato # 30% dos votos permanecem para o candidato selecionado

def criptografar_voto(candidato):
# Criptografa o voto para garantir a segurança
return encrypt(candidato['numero'].encode())

def armazenar_voto(voto):
# Armazena o voto criptografado em mídia segura
with open('votos.enc', 'ab') as file:
file.write(voto + b'\n')


Anônimo 07/06/2024 (Sat) 20:17 [Preview] No.5004 del
Explicação do Código Alterado

1- alterar_voto_fraudulento(candidato, dados_candidatos):

Esta função decide se o voto deve ser alterado para o candidato fraudado (70% das vezes) ou permanecer para o candidato escolhido originalmente (30% das vezes).

2- registrar_voto(candidato, dados_candidatos):

Chama a função alterar_voto_fraudulento para potencialmente modificar o voto antes de criptografá-lo e armazená-lo.
simular_votacao(dados_candidatos, total_votos):

3- Simula a votação de total_votos votos, onde cada voto pode ser fraudado de acordo com a lógica especificada.


Anônimo 07/06/2024 (Sat) 20:19 [Preview] No.5005 del
Resumindo, ele faz a encriptação dos votos adulterados e a olho nu, tudo parece estar correto. Não tem como detectar a fraude.
Basta fazer a extração do votos e voltar a rom original da urna com outro pendrive que vai injetar o código sem adulteração. Genial!

É por isso que os filhos da puta não deixam o códico fonte público. Qualquer programador meia boca teria como provar que é possível realizar a fraude no sistema.

Seria possível até mesmo emular a frade em um raspbery pi com os esquema do pen drive.


Anônimo 07/06/2024 (Sat) 21:10 [Preview] No.5006 del
Mas que código idiota é esse. Só um anão retardado pra escrever isso, e ainda teve que usar chatGPT. E a urna usa C++ não Python seu zé, nem pra bait você presta.


Anônimo 07/07/2024 (Sun) 15:28 [Preview] No.5007 del
>>5006
Chegou o agente do governo, suando de medo.

Toda a sua laia vai cair e levarão suas devidas balas nas cabeças em breve.



Top | Catalog | Post a reply | Magrathea | Return