Рубрики
Без рубрики

Комо Рубар не случайно?

Nextemente o vitthin upplyou o comando! Amizade em seu bot, que bebe o nome … Помечено метапрограммированием, безопасностью, Python, Braziliandevs.

Nextemente o Витатин Реализация o comando ! Amizade Em Seu Bot, Que Percebe o Nome de utro usuário como parâmetro, ответьте не чат Ума Поркангем Рандомика Para Qual Seria Sua Amizade Com Aquela Pesoa, Apenas Por Diverse (Elgumas Brigas Também, Quem Sabe?). Porém os resultAdos estavam Questionis, Principalmente se não exationiria algum Если Нет Código Para Fanalcer ou desfavorecer detrinados usuários.

Существует проблема Sobre A Distribuição Dos Valores Randômicos, Principalmente Quando Se utiliza O Resto Da Divisão, Como Demonadado Несте Артиго . Porém Isso Só é assersado Quando Se Tem Muitas execuções, e néao é uma manipulação ativa do valor randômico, como estávamos wabtrando.

Para Demperare Que Era Offinevel Manipulular A Mensagem Enviada Pelo Bot, Sem Que Isso Aparica no Código, ЕС FIZ Демонстрация Бэйксо:

OU Seja, é Office Fazer Essa Manipulação. Questão Que O Витатин néao conseguiu responder foi: como isso foi feito?

Como Manipular O Código?

Através делает декорадор

Na Própria Live, Enquanto Estávamos Discutindo, Eu Comentei Que O Decorador utilizado na funcáo infuladadadadadaDaDaDe Витатин PODERIA MANIPULAR O RESTODOADO. Algo como o código a baixo:

def decorator(funcao):
    def wrapper():
        return 'Tchau'
    return wrapper

@decorator
def cumprimentar():
    return 'Oi'

print(cumprimentar())  # Resultado: Tchau

OU Como Demondado Pelo Fernando Masanori:

Comse método, é Realmente Office alterar o Comportamento do Código, Porém fica Explicícito no código a Extancia desse decorador, o Que Pode Fembilmente Levantar Suppeitas. Porém não foi o caso da minha demonação, uma vez que eu também mostro o código desse decorador, e nione teme nada lá fazendo essa manipulação.

Alterar A Biblioteca padrão

EM Outra Demperação Também Feita Pelo Fernando Masanori, Ele Altera A Biblioteca Padrão Do Python, нет Caso Alterando o Código da funcão Рэндинт :

Компания Método também é Office alterar o comportamento do código, mas diferente do hover, não deixa объяснить манипула -que foi feita. Porém na minha demonação, o comportamento da funcáo muda conforme o nome de usuário informado, o Qual nionao é acessível dentro da funcão Рэндинт , Apenas Se Mudasse Assinatura Da Funcáo Para Para o nome do usuário também, mas isso seria visível no código, então não seria possível fazer a mesma coisa na na demperação.

Alterar de Onde Carregar Bibliotecas

Durante uma apresentação no fisl 14, o cascardo comentou obre o desafio de fazer um programa Java Aceitar Outro Sertive (gemçando a Discoveryao aos 23:05), Onde de 26:43 Até 28:50 Ele Comentou Como trocou A Classe utilizada pelo java, Retomando asunto aos 37:29 Até 37:55:

Essa Opção Funciona para o Java (Pergunto se funcionaria para o Kotlin também morgiovanelli ?). Нет Python, Esse Comportamento Pode Ser Replicado utilizando variavel de ambiente Pythonpath , Bastando Criar Uma Cópia Alterada Da Biblioteca empro Lugar, E Informando Isso Nessa Variável de Ambiente Quando Fosse receadado o código.

Esse Método Também Permite Alterar O Comportamento Do Código, Mas Apenas Para Bibliotecas emutros Diretórios, Como A Biblioteca padréao e de terceiros, о Que é demonado a baixo pela ordrem de pretencia dos diretrios, on -vazails ‘| ) представление o Diretório Atualy:

import sys
from pprint import pprint

pprint(sys.path)
# Resultado:
# ['',
#  '/home/eduardo/pythonlibmod',
#  '/usr/lib/python37.zip',
#  '/usr/lib/python3.7',
#  '/usr/lib/python3.7/lib-dynload',
#  '/usr/local/lib/python3.7/dist-packages',
#  '/usr/lib/python3/dist-packages']

Em Relação ao código da minha demonação, ele só ormitiria alterar a funcão Рэндинт , Que Como Já foi discutido, não ormitiria repetir o mesmo comportamento da demonação. Como A Biblioteca lib Encontra-se no mesmo diretório da aplicação, não seria possity utilizar esse método para alterá-la.

Компрометендо о ядро

Outra Técnica Seria Comprometendo O Sistema, Alterando Diretamente O Kernel Onde O Código é recevado, Como Feito Pelo Seth Schoen Numa Apresentação No Fisl 15 Dos 25:17 ATé 33:03:

Definitivamente Esse Método Permite Alterar O Comportamento Do Código E é o Mais difíclizer detectar. Porém no da minha demonação eu usei o próprio python para ler e exibir o arquivo, então seria osper osproduzir o comportamento do código, porém Alteração seria visível ao imprimir o código na tela pelo python.

Edição de Vídeo

É Offive Que o comportamento da minha demonação seja uma edição de vídeo, ainda mais que ele foi gravado com osciinema, bastando trocar os resultados conforme desejado, visto que este Эм простой текст Нет arquivo Анкет Porém Isso Não Seria Aplicável Ao Chat Na Twitch, Como estava Sendo Usado, Apenas no Vídeo.

Como foi feito

Para Fazer Isso, Eu Primeiramente Olhei no Python -h , Onde foi Offing Encontrar Algumas Opções Interessantes para Interagir Como O Interpretador Do Python, Onde O Parâmetro Pythonstartup Relmitiria que código de utro lugar fosse executádo Automaticamente, Sem Que Fosse Visto Na Tela.

Desta forma fiz o seguinte Кодиго , Que Para Executá-Lo Basta Enterar Нет Diretório Ботмод/Мейбот E RODAR Pythonstartup = ../editlib.py python3 , ou ainda defineir variavel de howermente, com Экспорт pythonstartup = ../editlib.py , AssiM AO Exemare Python3 O MEU Script Carregaria A Biblioteca e faria Обезьяна исправления Para Aplicar Alteração na либеральный (o Que Lembra da Discoverão Sobre Macacos Digitando na Live da bug_elseif ).

Учитывайте

Minha Demperação é verdadeira e frecilmente Reproduzível, sem utilização de algum recurso como edição de vídeo. Embora não foi возможно fazer a mesma demonação com outros métodos mostrados, eles também sermitem fazer manipulaço no comportamento do código, Podendo serem utilizados eutros casos. Area de Metaprogramação trabalha bastante com técnicas apresentadas, e Recomendo Essa Palestra Sobre o assunto.

Важный наблюдательный Тамбем как Implicações de Segurança Das Demonações. Na mesma apresentação do seth, ele comenta uptras Questões bastante interessantes, como aos 19:00 obre a speribilidad Питон. Тамбем Собр Ума Фалха де Сегуранца Нет Openssh, Que A Correção Congision Na diferença de apenas um bit no código binário. Vale Obsarear Também Que Muitas Vezes UM Programa Malicioso Pode não ter permissão para fazer alguma operação, mas se oproveitar de permissões incorretas de arquivos e diretórios (practivemeте chmod 777 ) para para par , Onde Esses teriam permissão para fazer a Operação.

Felizmente ou infelizmente não é Officevel Para Um Terceiro Alterar o Comportamento do random de um bot diretamente com o uso desses métodos, ele precisaria de acesso ao ao abiente onde o código é reseadado, mase para o dono do bot.

Оригинал: “https://dev.to/eduardoklosowski/como-roubar-no-random-1d9l”