color change black argument python count hex

change - python plot color line



Python-contando en hex (2)

¿Cuál es una buena forma de contar en hex y anexar el resultado al final de una cadena hexagonal más grande? Estoy tratando de formatear una cadena para ser utilizada en un ataque oráculo de relleno. Las cadenas se concatenarán juntas para formar una solicitud HTTP.

Tengo dos cadenas hexagonales de 32 caracteres. ''g'' es una adivinanza, pad es el oráculo de relleno. Básicamente lo que tengo que hacer es tener el último byte de g en el hex de 0x00 a 0xff. El código que tengo hasta ahora es:

split = [value[x:x+32] for x in range (0, len(value), 32)] #Split the CT into 16 byte chunks IV = unhexlify(split[0]) c0 = unhexlify(split[1]) c1 = unhexlify(split[2]) c2 = unhexlify(split[3]) g = unhexlify("00000000000000000000000000000000") pad = unhexlify("00000000000000000000000000000001") pad_xor_guess = xorb(g, pad) c1_prime = xorb(pad_xor_guess, c1) attack = str(hexlify(c1_prime + c2).decode())

El ''ataque'' pasará al método de consulta que agregará la cadena de ataque a la dirección web. Ahora la parte en la que estoy estancado es que básicamente tengo que enviar hasta 256 solicitudes HTTP para adivinar un byte del texto plano. ¿Cómo puedo usar un bucle for para "contar" desde 00 a ff, anexando el resultado ag de tal manera que pueda ser corregido con el pad y el bloque de texto cifrado elegido? Hasta ahora he estado yendo por este camino, pero estoy atascado en cómo hacer que esto funcione con las cadenas hexagonales.

for i in range(0, 20): #g = bytes([i]) print(bytes([i]),end='' '') #print(g, end='' '')


Para el valor int dado, la función hexadecimal le dará la cadena hexadecimal precedida con 0x, por lo que hex (i) [2:] le da el número hexadecimal en sí, zfill se asegurará de que obtenga dos dígitos para los números de un solo dígito

for i in xrange(256): print hex(i)[2:].zfill(2)

También es posible que desee considerar hacer todo en mayúsculas, ya que algunos analizadores se basan en hexadecimal escrito en mayúsculas, por lo que el ejemplo será:

for i in xrange(256): print hex(i)[2:].zfill(2).upper()

Y si solo necesita la cadena completa, no necesita agregarlos uno por uno, puede crear la cadena de una sola vez:

hex_str = "".join([hex(i)[2:].zfill(2).upper() for i in xrange(256)])


Supongo que quieres decir algo como:

>>> for i in range(256): print "{:02x}".format(i) # or X for uppercase 00 01 02 ... fd fe ff