Arduino en lector NAND
[James Tate] lanza proyecto para hacer "Super Reverse Engineering Tool". ¿Primero en su lista? Una simple unidad flash NAND, exactamente por la misma razón por la que Willie Sutton robó bancos: porque existen los binarios.
Tal y como está, [James]La primera versión de esta herramienta probablemente no sea la que desee utilizar si descarta muchos módulos flash NAND. Su código Arduino lee la NAND usando el infame lento digital_read()
y digital_write()
comandos y luego lo descarta sobre la puerta serial a 115.200 baudios. No estamos seguros de cuál es el límite obligatorio, pero ninguno de estos métodos se creó para la velocidad.
En cambio, el código se crea para la piratería. Es bastante modular, y si tiene un flash NAND que necesita otros chips de bajo nivel para ceder sus datos, debe poder ejecutar algo rápidamente, iniciarlo y luego beber café durante unos días. Cuando regrese, los datos se descartarán y solo invertirá unos minutos de tiempo humano en el proyecto.
Con los contadores TSOP baratos, todo lo que le impide leer los dulces contenidos de la memoria de un dispositivo aleatorio es un poco de dinero y un poco de paciencia. Si nunca lo ha hecho, saque algo de su bote de basura y pruébelo. Si te gusta el bricolaje o necesitas leer un flash, echa un vistazo a este truco de soldado loco. O si puede crear un estante FTDI FT2233H, puede leer el flash NAND rápidamente utilizando básicamente las mismas técnicas que se presentan aquí.
meh dice:
Entonces, ¿por qué usa digital_reading y digital_writing?
Chris J dice:
Es fácil y funcionará en cualquier chip compatible con Arduino IDE. La alternativa requeriría una modificación del código si usa otro chip.
pícaro vil dice:
Si quiere mantener esto como un proyecto de Arduino, un adolescente no sería una placa mejor opción. Parecen una mejor opción. Sé que aún restringiría con una velocidad en baudios, pero leer () escribir () sería mucho más rápido.
doncasper dice:
Si el tiempo no es realmente esencial, creo que usar un Arduino es en realidad un plan bastante sólido. Primero, casi todos los que tienen algún tipo de Arduino tienen un Arduino estándar, por lo que pueden seguirlo. Si no estoy usando un Arduino estándar, tiendo a probar algo como ARM en su lugar.
Por supuesto, escribir código para Arduino es tan simple que básicamente tiene muerte cerebral. Esta es una característica realmente agradable cuando intentas interactuar con algo que recién estás comenzando a comprender. No sé cuántas veces, aunque "podría escribir un programa mucho más eficaz en C (o set ...)", solo para pasar un tiempo vergonzoso cazando errores.
Tiendo a ir con un microcontrolador que funcione a 1.8v para que no tenga que preocuparse por cocinar el chip NAND. Algo así como uno de los chips MSP430.
RW versión 0.0.2 dice:
Un buen punto sobre el uso de la herramienta más simple y predecible, sin importar cuántas más elegantes estén a su disposición.
Me identifico con la situación, pero no puedo sacar un ejemplo de mi cabeza en este momento. Investigué un comportamiento desconocido y usé una piedra metafórica cuando tengo un buen martillo nuevo, y me pregunto por qué, y porque sé que la piedra no rebotará.
David dice:
Me pregunto cómo funcionaría el DUE
David dice:
¿84 Mhz versus 16 mhz casi 5 veces más rápido o rápido?
Danjovic dice:
También puede descartar el contenido del Nand Flash en una tarjeta SD en lugar de enviarlo a través del puerto serie. Acerca de la lectura / escritura de puertos, puede escribir algunas funciones de escritura digital (dirección, datos) y lectura digital (dirección). Entonces, ambas funciones pueden inicialmente usar digitalRead () y digitalWrite () inicialmente, y luego adaptarse a la velocidad de cualquier plataforma.
anfitrión local dice:
¿Por qué Arduino? Puedes hacer lo mismo con 6502, especialmente con los de soplado negro escondidos en juguetes.
Simplemente opere presionando el botón de un paso repetidamente (si corresponde) o pasando un cable conectado al pin del reloj entre VCC y GND (asegúrese de que acorta los rieles de alimentación para un mejor rendimiento). Luego, use un LED para extraer los datos del 6502 y la cámara de bajo FPS de su computadora portátil para descifrarlos. Recuerde guardar el archivo de imagen en su unidad de tarjeta y colocar el LED lo más lejos posible de la cámara.Notará una gran mejora rápida con respecto a la solución basada en Arduino.
Erik Johnson dice:
¿Por qué 6502 cuando puedes usar un reloj 555, un puñado de lógica de pegamento 74xxx?
anfitrión local dice:
¿Por qué 555 y 74 cuando puede utilizar elementos discretos? ¿Y por qué componentes discretos cuando puede controlar la base de datos manualmente con varios cables que acortan VCC y GND? ¿Y por qué cables cuando se puede tapar el chip y leer su contenido con un microscopio?
Puedes usar cualquier cosa, pero no uses Arduino.
xkcdhater dice:
¿Por qué no usar los cómics xkcd relevantes?
Jeremy dice:
Me pregunto si los circuitos de soporte mejorarían la velocidad predeterminada. Supuestamente el Arduino proporciona el direccionamiento y alterna los pines en el flash, probablemente en el orden de línea debería disminuir lo más rápido posible para hacer las cosas. No tener un contador IC binario para las direcciones y alguna lógica que convierta 0 (lectura) versus 1 (escritura) en las señales correctas no aceleraría las cosas, porque el arduino solo necesitaría ejecutar una secuencia de una escritura (para afectar el control / dirección) seguido de una lectura (para obtener los datos)? Parece que en realidad se trata más de hacer todo en software que en hardware que con un microcontrolador rápido / lento.
chico nadie dice:
Probablemente querría descartar los datos en la tarjeta SD. Planeo descartar el flash de un teléfono roto cuando alcance este nivel de confianza. …. 🙁 entonces necesito analizar el sistema de archivos para encontrar imágenes antiguas.
finfihlman dice:
Si tan solo usara las versiones rápidas de los comandos o los registros DDRx, PORTx y PINx igualmente fáciles de entender. Incluso podría conducir datos a 1 Mbaud.
Realmente molesto. Aquí hay algunos antecedentes: https://emil.fi/jako/koodi/overhead.cpp
Viejo 'un dice:
Es deprimente que la mayoría de los comentarios se relacionen con agregar "poder" o complejidad en lugar de hacerlo bien. No es de extrañar que los productos modernos estén repletos de software sh! T ...
finfihlman dice:
Cuéntame sobre eso. Y la excusa es que "¡es difícil! ¡La gente no lo entiende!"
Realmente, muchachos, se necesitó una ingeniería seria para construir funciones predeterminadas, tan terriblemente como las funciones * digitales *.
¡Incluso puede terminarlo y, sin embargo, resultaría en una instrucción si tiene miedo de los registros que se comprenden fácilmente si no es irracionalmente estúpido!
Incluso lastima a las personas que realmente tienen que aprender y comprender estas cosas. El otro día, un amigo que estudia electrónica e ingeniería eléctrica me pidió ayuda porque el código arduino no salió lo suficientemente bien. ¿Por qué? Debido a defectos fecales y tratando de ocultar esos defectos.
Si quieres anunciar HAL, al menos escríbelo bien.
meh dice:
En la mayoría de los casos, todo es innecesario. La mayoría de los equipos con flash NAND tienen un antiguo puerto JTAG simple para programarlos en la fábrica. Simplemente inserte el J-Link y deséchelo ...
De lo contrario, hay muchas otras buenas soluciones mucho más rápidas. Cómo usar una MCU ARM barata (no, no es complicado) o incluso alguna otra MCU barata que pueda hacer USB (el simple y viejo FX2LP me viene a la cabeza), o simplemente descartarlo en una tarjeta SD.
Si descarto mucho, prefiero dedicar más tiempo a conseguir un zapato mejor. Probablemente iría con un ARM Cortex por simplicidad, y una pantalla LCD LCD barata de 2.4 tocada por ebay (todo $ 5), un puerto micro USB y un enchufe para cable SD. Eso se conectaría a una placa reemplazable (en una simple cabecera de 100 mil viejos) donde puede soldar el TSOP-IC (eventualmente las almohadillas deberán ser reemplazadas), u otra placa que le permita soldar cables si eso es lo suyo. Eso sería económico, de rápido desarrollo y bastante funcional.
Me alegro de que la opción JTAG casi siempre esté disponible. Incluso si el puerto no estaba disponible, puede rastrear las señales, o incluso probar con un diario ... ¡Tantas opciones!
BennyBorn dice:
¿Por qué no usar un lector de tarjetas SD? Funciona muy bien y parece ser un lector NAND de bricolaje común en la comunidad de piratería de consolas 🙂
Vejestorio dice:
Funciona si se trata de una memoria flash NAND basada en eMMC. El flash NAND sin procesar no se puede leer con una tarjeta SD legible (aunque creo recordar que la xD PictureCard es solo una NAND desnuda)
rasz_pl dice:
y smartmedia
anfitrión local dice:
Si tiene una computadora muy vieja, puede intentar conectarla al bus ISA.
Quizás IDE también funcione con un controlador normal.
Jazzazeca dice:
¿Podemos reproducir un chip NAND reemplazándolo en una memoria USB y luego usando un comando "dd" de Linux, tal como podemos hacer para la copia de seguridad normal de los datos del pulgar?
anfitrión local dice:
La CPU del controlador de la unidad flash obtiene su firmware de los primeros bloques del chip NAND al que está conectado. Si reemplaza el chip, el controlador intentará ejecutar el primer sector y colgará / hará parpadear el LED accidentalmente / aplastará la computadora / bloqueará la NAND.
mdasilvablog dice:
Blahblahblah podría terminarse con 555
NewCommentor1283 dice:
¿Por qué quejarse de la velocidad?
¿Pasas horas todos los días buscando datos dentro y fuera de 10000 chips?
Asumiría que las personas interesadas en tales cosas NO buscarían ninguna solución sin algún tipo de intercambio automático de tarjetas robótico. pero este artículo trata sobre una unidad manual de un chip.
Dicho esto, ¿realmente importa si se necesitan 3 minutos para transmitir los datos? Necesitabas 10 minutos para desmontar, 10 minutos para soldar y 2 minutos para codificar y enganchar mierda. ¿Por qué la transmisión de datos real DEBE ser inferior a 7 segundos?!?!? !!?!?!?!?
Simplemente no entiendo esta forma de pensar. debe estar en línea ... no puedo esperar 3 minutos adicionales para ser el primero en ganar una copia.
buena suerte descarga DOOM2 (completo / minorista) a través de rs232, ¡tardará ~ 45 minutos!
NewCommentor1283 dice:
PD: el único uso de "demasiado tiempo" que soportaré es descargar DUKE3D vía dial-up, esa mierda se corta antes de que termine y (¿la mayoría?) Los navegadores no te permitirán "continuar" las descargas cuando estén interrumpido.
AV dice:
Meh, yo era Wolfenstein Lance of Fate (Doom tardó demasiado en que alguien contestara el teléfono en la mañana) usando un protocolo Kermit de un amigo en la ciudad cercana que tenía módems de 2400 baudios en su computadora 386. Se terminó la instalación de la red de zapatillas Doom, que ocurre con el ancho de banda superior de una camioneta GMC 76 moviendo una bolsa de 3.5 disquetes y 20 tacos, debido a demasiados intentos y demasiados intentos para que todos en la casa toleraran la llamada telefónica. a ellos tan temprano.
HSH dice:
¡Supongo que te refieres a "FTDI FT2232H"!
Braden dice:
¿Puedes usar esto para descartar el nand en xbox 360 jasper?
alaxa dice:
Solo quería probar mi NAND si todavía es bueno leyendo su ID y algunos datos simples, ¿dónde puedo obtener los archivos de boceto para arduino y el esquema de cableado? No quería freír el chip con un enfoque de "prueba y reza"