Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - tbgio

#1
Hacking / Re: Imagenio sin Descodificador?
2 Octubre 2011, 19:43 PM
El despacho y tu casa supongo que son dos lineas distintas, verdad?
#2
Bugs y Exploits / Buscar exploits en NDS?
29 Septiembre 2011, 20:25 PM
Quería saber qué proceso se sigue para descubrir bugs en nds o saber si hay algún tutorial para esta consola al igual que la hay para PSP en wololo.net (http://wololo.net/wagic/2009/03/11/finding-gamesaves-exploits-on-the-psp/)
#3
Ya ya jajaja, gracias, y así lo hago, pongo cosas mas lógicas que no valorX, pero este lo hice muy rápido porque me urgía sacarlos archivos.
#4
Script modificado. Por cierto, terminado el extractor de archivos *.stuff del juego EVE:nombrearchivo = "C:/Program Files/CCP/EVE/resCharacterModularFemaleHiRes00.stuff"
arch = File.new(nombrearchivo, "rb")
dirtotal = arch.sysread(4).unpack('V*').join.to_i
eve = "EVE/"
Dir::mkdir("#{eve}") unless File.directory?("#{eve}") == TRUE
cuenta0 = 4
valor5 = []
valor6 = []
for cuenta1 in 1..dirtotal do
valor1 = arch.sysread(4).unpack('V*').join.to_i
valor2 = arch.sysread(4).unpack('V*').join.to_i
cuenta0 = cuenta0 + 8
valor3 = cuenta0
for cuenta2 in 1..valor2 do
cuenta0 = cuenta0 + 1
valor4 = arch.read(1).bytes.first
if valor4 == 92
arch.seek(valor3, IO::SEEK_SET)
content = arch.read(cuenta2)
Dir::mkdir("#{eve+content.chop}") unless File.directory?("#{eve+content.chop}") == TRUE
end
valor7 = cuenta0
end
arch.seek(valor3, IO::SEEK_SET)
content = arch.read(valor2)
arch.seek(valor7, IO::SEEK_SET)
cuenta0 = cuenta0 + 1
arch.sysread(1)
valor5.push(valor1)
valor6.push(content)
end
sleep 1
for cuenta1 in 0..dirtotal-1 do
puts "Creado #{eve+valor6[cuenta1]}"

save_arch = File.open("#{eve+valor6[cuenta1]}", File::CREAT | File::WRONLY | File::TRUNC)
save_arch.syswrite("#{arch.read(valor5[cuenta1])}") unless File.directory?("#{eve+valor6[cuenta1]}") == TRUE
end
puts "Fin"
#5
Tengo un archivo que está construido de la siguiente manera:

0x000 04 bytes: Número de direcciones en la tabla
0x004 04 bytes: Cuanto mide el contenido del archivo = $a
0x008 04 bytes: Cuanto mide el nombre del archivo = $b
0x00c $b bytes: Nombre del archivo

Despues de repetirse desde el 0x004 al 0x00c dependiendo de las direcciones que tenga la tabla, a continuación viene el contenido de cada archivo en el mismo orden en el que han aparecido.

Sabiendo esto, he creado el siguiente codigo:

nombrearchivo = "C:/Program Files/CCP/EVE/resLocalization.stuff"
arch = File.new(nombrearchivo, "rb")
arch_leer = File.new(nombrearchivo, "rb")
dirtotal = arch.sysread(4).unpack('V*').join.to_i
nombrearchivo = "hola/"
# Leo el archivo
cuenta0 = 4
valor5 = []
valor6 = []
for cuenta1 in 1..dirtotal do
valor1 = arch.sysread(4).unpack('V*').join.to_s
valor2 = arch.sysread(4).unpack('V*').join.to_i
cuenta0 = cuenta0 + 8
valor3 = cuenta0
for cuenta2 in 1..valor2 do
cuenta0 = cuenta0 + 1
valor4 = arch.read(1).bytes.first
if valor4 == 92
arch.seek(valor3, IO::SEEK_SET)
content = arch.read(cuenta2)
Dir::mkdir("#{nombrearchivo+content.chop}") unless File.directory?("#{nombrearchivo+content.chop}") == TRUE
end
end
arch_leer.seek(valor3, IO::SEEK_SET)
content = arch_leer.read(valor2)
cuenta0 = cuenta0 + 1
arch.sysread(1)
valor5.push(valor1)
valor6.push(content)
end
sleep 1
for cuenta2 in 0..dirtotal-1 do
puts "guardado #{nombrearchivo+valor6[cuenta2]}"
save_arch = File.open("#{nombrearchivo+valor6[cuenta2]}", File::CREAT | File::WRONLY | File::TRUNC)
save_arch.syswrite("#{valor5[cuenta2]}") unless File.directory?("#{nombrearchivo+valor6[cuenta2]}") == TRUE
end
puts "Fin"


El código no está terminado, pero con la función push() creo haber podido solucionar la duda que tenía.
#6
porque estoy hacuiendo otro script para extraer archivos, y de la forma que este está hecho, tiene una parte que tiene los nombres de los archivos y otro que tiene los datos. Como no se especifica la distancia a la que está del nombre del archivo si no lo que mide, necesito que cada vez que se lea el nombre del archivo me guarde esta distancia en un variable distinta.

De todas formas, quizás estoy confundiendo variable con array.
Aún así, ¿me podría funcionar el comando push() para eso que quiero hacer?
#7
El asunto no sé como ponerlo mas resumido.

Lo que quiero es que se me genere dentro de un for tantas variables como veces se repita, pero todas las variables distintas, algo así:

for [i]i[/i] 1..5 do
valor[[i]i[/i]] = [i]i[/i] + 1
end


# => valor1 = 2
# => valor2 = 3
# => valor3 = 4
# => valor4 = 5
# => valor5 = 6

¿Es posible?
#8
Acabo de medio terminar un script para extraer archivos de un paquete BNDL en ruby. Aquí va el código para el que le pueda interesar:

# MEDP (Multi Extractor De Paquetes) 0.0.1
# Programado por SeCaProject
# 2011 en Ruby

# Librerias necesarias
require 'FileUtils'

# Pregunta qué archivo leer
puts "Nombre completo del archivo"
nombrearchivo = gets.strip
puts "Leyendo "+nombrearchivo+", un momento por favor..."
arch = File.new(nombrearchivo, "rb")
arch_leer = File.new(nombrearchivo, "rb")
# Saber que tipo de archivo es
tipo_arch = arch.read(4)
puts "Tipo de archivo: #{tipo_arch}"
arch.read(4)
dirhex1 = arch.sysread(1).unpack('H*')
dirhex2 = arch.sysread(1).unpack('H*')
dirhex3 = arch.sysread(1).unpack('H*')
dirhex4 = arch.sysread(1).unpack('H*')
dirtotal = [dirhex4,dirhex3,dirhex2,dirhex1].join.to_i(16)
puts "Longitud de la tabla: #{dirtotal}"
arch.read(4)
puts "Seguimos?"
seguimos = gets.strip

# Pone el archivo al principio
arch.seek(16, IO::SEEK_SET)

# Lee el archivo
cuenta0 = 16
for cuenta1 in 1..dirtotal do
if cuenta0 == dirtotal
break
end
cuenta0 = cuenta0 + 1
archivo1 = arch.read(1).bytes.first

# Si es una carpeta
if archivo1 == 1
cuenta0 = cuenta0 + 1
archivo1a = arch.read(1).bytes.first
# Me aseguro de que es una carpeta
if archivo1a == 1
# Lee el nombre del archivo, maximo 50 caracteres
for cuenta3 in 1..50 do
cuenta0 = cuenta0 + 1
archivo1b = arch.read(1).bytes.first
if archivo1b == 0
arch.seek(cuenta0-cuenta3, IO::SEEK_SET)
carpetanueva = arch.read(cuenta3)
break
end
end
end
# Si es un archivo
elsif archivo1 == 2
cuenta0 = cuenta0 + 12
# Distancia del inicio del archivo
dirhex1 = arch.sysread(1).unpack('H*')
dirhex2 = arch.sysread(1).unpack('H*')
dirhex3 = arch.sysread(1).unpack('H*')
dirhex4 = arch.sysread(1).unpack('H*')
ini_file = [dirhex4,dirhex3,dirhex2,dirhex1].join.to_i(16)
# 4 bloques vacios
arch.read(4)
# Longitud del archivo
dirhex1 = arch.sysread(1).unpack('H*')
dirhex2 = arch.sysread(1).unpack('H*')
dirhex3 = arch.sysread(1).unpack('H*')
dirhex4 = arch.sysread(1).unpack('H*')
end_file = [dirhex4,dirhex3,dirhex2,dirhex1].join.to_i(16)
# Lee el nombre del archivo
for cuenta3 in 1..100 do
cuenta0 = cuenta0 + 1
archivo2d = arch.read(1).bytes.first
if archivo2d == 0
# Copiando nombre al archivo
arch.seek(cuenta0-cuenta3, IO::SEEK_SET)
content = arch.read(cuenta3)
# Copiando contenido del archivo
arch_leer.seek(ini_file, IO::SEEK_SET)
content1 = arch_leer.read(end_file)
# Creando archivo
save_arch = File.open("#{tipo_arch}/#{content[1..-1].chop!}", File::CREAT | File::WRONLY | File::TRUNC)
save_arch.syswrite(content1)
break
end
end
end
end


De momento solo válido para archivos BNDL.
Como iba diciendo, después de medio terminarlo, me he preguntado a ver si este código se puede hacer más corto, o algo sobra, o lo que sea.
Eso por un lado, luego también querría saber cómo puedo hacer para que me lo meta en carpetas que el propio archivo tiene.
Para cualquier duda sobre el script, preguntad. Si algo no está claro también avisad.
#9
Ya lo he solucionado, he cambiado prácticamente todo el código para que funcione y ahora vá bien.

Lo que ahora tengo otra duda, hay alguna manera de que dentro de un loop FOR cada vez me haga una varaible distinta, del estilo:

for f in 1..50 do
   var_f = f
end

La idea se hacer un número de variables que sigan esa linea, var_1 = 1; var_2 = 2...
#10
Scripting / Ayuda problema con valor (RUBY)
16 Julio 2011, 01:30 AM
Estoy haciendo un código en ruby para poder leer unos paquetes y que me diga lo que contienen. Aunque el código es muy muy simple, y hace poco que lo he desarrollado, hay una cosa que me da dolor de cabeza.

Código (ruby) [Seleccionar]
arch = File.new("[i]archivo[/i]", "r")
  z = arch.sysread(1).unpack('H*')
  puts z
  content = arch.sysread(32)

En este caso, con el archivo que intento abrir, z = 10, pero si pongo z en el lugar del 32 de la linea 4 me da error. En mi código antes tengo puesto x = 1 y si lo pongo ahí me va bien, pero z no.
¿Cómo lo puedo hacer para que no me de error y lea z?