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/)
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úfor [i]i[/i] 1..5 do
valor[[i]i[/i]] = [i]i[/i] + 1
end
# 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
arch = File.new("[i]archivo[/i]", "r")
z = arch.sysread(1).unpack('H*')
puts z
content = arch.sysread(32)