Está en la página 1de 11

Como recuperar un Access Point Engenius EOC-2610 muerto. (Bricked) por Alexéi Montero F.

Como recuperar un Access Point Engenius EOC-2610 muerto. (Bricked)


por Alexéi Montero F.
Una breve historia.

Mi AP quedó muerto luego de intentar cambiar de firmware para probar Open-wrt. Sin experiencia,
cometí un grave error intentando grabar una imagen que no contenía el bootloader desde el inicio
de la flash. Cuando reinicié el AP, este quedo muerto sin LAN, sólo con el led POWER encendido.

A otras personas puede haberle ocurrido durante una falla de voltaje, al actualizar con un fichero
erróneo, al bloquearse la PC actualizando el firmware, etc.; puede suceder de muchas maneras. Si
tienen los mismos síntomas, están en el mismo caso que yo.

El problema es que no hay LAN, por lo que tampoco hay acceso al RedBoot o al revés no hay
RedBoot, por lo que no hay LAN. No cambia la esencia del problema, a mi modo de ver.

Cuando tenemos LAN existen muchas posibilidades de recuperar el AP, eso está bien
documentado. Aunque es posible que no siempre funcionen los procedimientos. En el caso que
hayamos probado todo lo conocido, entonces creo que este es uno de los últimos recursos.

Agradecimientos

Este proceso, que ahora parece sencillo, requirió de muchas horas de trabajo y estudio, búsqueda
en Internet y pruebas. Es fruto de la colaboración de muchas personas, que no nos conocemos
personalmente, a través de uno de los foros de www.seguridadwireless.com y costó, además, la
rotura definitiva de uno o dos equipos de los iniciadores de este esfuerzo por salvar los AP
EOC-2610 muertos.

No existía ni información ni la experiencia necesaria para enfrentar esta tarea pero varios
inconformes no nos resignamos a perder los equipos que un momento antes trabajaban
perfectamente. Mi agradecimiento personal para sERASEr, Ciberparane, Kozaki666, corwar y
muchos otros que también contribuyeron, ellos abrieron el camino y gracias a sus experiencias
pude recuperar mi AP. Creo que el mejor pago a su esfuerzo es este tutorial, que puede ayudar a
otras personas a recuperar sus equipos. Los resultados hablan por si mismos.

Advertencia

Primero que todo este procedimiento no se debe intentar si no se tiene experiencia y habilidades
en la electrónica. Creo que es un último recurso. Es posible que incluso exista otro método menos
riesgoso.

Se necesitan conocimientos de electrónica, ciertas habilidades de soldadura y diseño de circuitos


impresos, así como conocimientos básicos de informática.

No intenten este procedimiento hasta haber leído completamente esta guía

Procedimiento

Desoldar la flash del PCB con una pistola o cautín de aire caliente, no intentar con cautín u otro
tipo de soldador porque de seguro se dañará el impreso o las patillas de la flash.
1 / 11
Como recuperar un Access Point Engenius EOC-2610 muerto. (Bricked) por Alexéi Montero F.

Así quedó el mío (fig. 1 y 2). Limpien bien los restos de estaño con un pincel o sepillo de cerdas
ligeramente duras, aunque no debería quedar ningún resto, a mi se me cayó la memoria cuando la
alzaba con una pinza y de ahí el reguero de estaño.

Fig. 1. PCB Senao Engenius EOC-2610 después de Fig. 2. Flash ST25P64V6P después de desoldada.
desoldar la flash.
Soldar con un cautín normal, de poca potencia y punta fina, 6 cables bien finos de unos 12 – 13
cm en los contactos del PCB donde va la flash. (Yo utilicé uno cautín de 30 W)

Cable 1- Pin 1 (el marcado con el “o” en el PCB, esta unido con los pines 2 y 9)
Cable 2- Pin 7
Cable 3- Pin 8
Cable 4- Pin 10
Cable 5- Pin 15
Cable 6- Pin 16

Estos cables nos servirán para luego conectar el circuito de grabación y probar los resultados.

Pueden fijarlos de manera temporal con silicona en una parte del PCB donde no afecte el impreso.
Yo no tenía a mano silicona y los deje libre, pero los uní firmemente entre si para no hacerle fuerza
a uno sólo por separado y los manipulé con mucho cuidado a la hora de soldarlos al circuito de
grabación. Hice muchas, muchas pruebas, debo haber grabado y probado unas 12 ó 15 veces la
flash, quizás más y no se dañó ni el circuito ni la flash. Si lo hacéis con cuidado no pasará nada.

Si no tienen experiencia o habilidad suficiente busquen ayuda de algún amigo que si la tenga.

Hacer el circuito que reproduzco a continuación para grabar la flash (fig. 3), es similar al discutido
en el foro :
http://foro.seguridadwireless.net/puntos-de-acceso-routers-switchs-y-bridges/alguien-
harealizado-jtag-con-senao-eoc-2610/120, con algunas pequeñas variaciones en los valores.

2 / 11
Como recuperar un Access Point Engenius EOC-2610 muerto. (Bricked) por Alexéi Montero F.

Utilicé resistencias de 330 ohm, estas resistencias pueden oscilar entre 100 y 350 ohm. Su
objetivo es limitar los valores de corriente entre el puerto paralelo de la computadora y la flash,
porque los niveles lógicos de ambos dispositivos son diferentes.

Fig. 3. Circuito eléctrico para grabar la flash.

Para manipular mejor la flash, les sugiero hacer un circuito que evite tener que soldarla y
desoldarla porque en algún momento se partirá alguna patilla.

Este es el pequeño impreso (fig. 4 y 5) que hice con los pocos recursos que tenía disponibles. No
quedó bonito pero si funcional. Le incluí un dispositivo plástico (fig. 6) para fijar la flash apretando
la parte plana de las patillas contra el impreso para asegurar el contacto, seguramente ustedes
puedan conseguir una base adecuada, en mi país eso es prácticamente imposible. Ni hablar de la
pistola de aire, esa es otra historia.

Fig. 4. Diseño del circuito impreso para el grabador. Fig. 5. Circuito impreso del grabador.

3 / 11
Como recuperar un Access Point Engenius EOC-2610 muerto. (Bricked) por Alexéi Montero F.

En el diseño del impreso (fig. 4) los puntos rojos son para soldar los cables finos que previamente
colocamos en el PCB del AP.

Fig. 6. Dispositivo para fijar la memoria al circuito de grabación.

Una vez colocada y fijada la memoria en el circuito comprueben la continuidad desde las patillas
del CI con los distintos puntos que correspondan. Hagan los ajustes necesarios hasta lograr un
contacto adecuado de todas las patillas. Si tienen algún problema prueben estañar los contactos y
emparejar con lija fina. Eso también evita la oxidación del cobre de los mismos y posibles falsos
contactos posteriores.

Utilizando el programa PSIPGMW descargado de Raver’s Homepage Programmer


http://rayer.ic.cz/programm/spipgm.zip se puede borrar y grabar la flash con facilidad y relativa
rapidez. Cópienlo en una carpeta con un nombre corto y sin espacios para más facilidad en el
trabajo; algo como C:\EOC2610 y descompáctenlo.

Para el Engenius EOC2610 obtuve una copia completa de la flash de un AP en funcionamiento


(Al final explicaré el procedimiento).

El fichero EOC-2610-OK.bin, que envío adjunto, cópienlo en la misma carpeta que utilizamos
anteriormente para guardar el programa.

Antes de grabarlo es preciso modificar algunos datos, con un editor hexadecinal, en las
direcciones: 7F0060 (MAC WLAN) y la 7F0066 (MAC de la LAN) Pueden utilizar el WinHEX, me
parece muy completo y fácil de utilizar.

4 / 11
Como recuperar un Access Point Engenius EOC-2610 muerto. (Bricked) por Alexéi Montero F.

En la fig. 7 pueden ver con letras AA AA AA AA AA AA donde deben escribir su MAC WIFI y con
BB BB BB BB BB BB la posición de la MAC LAN.

Fig. 7. Edición de las MAC utilizando el programa WinHex y etiqueta en la parte posterior del AP.

En el AP EOC-2610, las MAC están impresas en una etiqueta en la parte posterior del equipo, la
superior es la de la LAN y la inferior de la WIFI. Es muy posible que si no se corresponden con los
valores físicos de las interfaces no funcione, esa prueba no la hice.

Con este cambio, estamos listo para grabar el fichero en la flash.

Lo primero es conectar el circuito al puerto paralelo de la computadora y alimentarlo con una


fuente de 2.7 -3.6 volt. Yo utilicé una fuente regulada, ajustada a 3.3 volt. Eso sería recomendable.

En una ventana de comandos ejecutamos el SPIPGMW con la opción /i que permite identificar el
CI.

C:\EOC2610>SPIGGMW /i

Si todo está bien debemos obtener esta salida:

SPI FlashROM Programmer 1.6 (C) 2008-2009 by Martin Rehak; rayer@seznam.cz


Compiled by GCC 3.4.5 (mingw-vista special r3) at 22:49:21, Jan 21 2009
(Win9x/NT/2K/XP compatability)
SPI connected to LPT port at I/O base address: 378h, SCK pulse width: t+0us
FlashROM JEDEC ID, type: 202017h
ST Microelectronic M25P64 (8MB)
Status = 00h (SRP, RES, TB , BP2, BP1, BP0, WEL, BSY)
0 0 0 0 0 0 0 0

El programa logra identificar el tipo (FlashROM JEDEC ID: 202017h) y el fabricante de la flash
(ST Mircroelectronic M25P64 (8 MB))

5 / 11
Como recuperar un Access Point Engenius EOC-2610 muerto. (Bricked) por Alexéi Montero F.

Para lograr una grabación correcta de los datos debemos borrar la flash para inicializar todo
contenido con FF. Podemos a borrar la memoria con el siguiente comando:

C:\EOC2610>SPIGGMW /e

SPI FlashROM Programmer 1.9c (C) 2008-2011 by Martin Rehak; rayer@seznam.cz


Compiled by GCC 4.4.0 at 23:20:41, Mar 22 2011
(Win9x/NT/2K/XP compatability)
SPI connected to LPT port at I/O base address: 378h, SCK pulse width: t+0us
FlashROM JEDEC ID, type: 202017h
ST Microelectronic M25P64 (8MB)
Status = 02h, WE bit is enabled
Please wait... done.

Y por último grabamos el fichero con la copia de la flash.

C:\EOC2610>SPIGGMW /p EOC2610-OK.bin

Cuando el proceso termine podemos probar si todo quedó bien.

Desconectamos la fuente de 3.3 volt y luego el circuito del puerto de la computadora. Soldamos
los cables del AP a los puntos correspondientes del circuito de grabación.

Configuramos en la computadora la interface de red a la que está conectado el AP con la


IP:192.168.1.11 mascara: 255.255.255.0, conectamos los cables de red al AP y lo encendemos.

Debemos recuperar la LAN casi inmediatamente y a un poco después debe encenderse el led
WLAN. El AP debe levantar con los valores por defecto pero para asegurarnos, podemos resetear
al AP oprimiendo el botón de reset por aproximadamente 5 segundos.

Luego de resetear el AP la configuración por defecto será:


IP: 192.168.1.1
User: admin.
Password: admin

Podemos hacer un ping 192.168.1.1 para comprobar si tenemos respuesta del AP y por supuesto
también entrar en la página de administración http://192.168.1.1

Actualicen al último firmware, por alguna razón a pesar de que el AP de donde realicé el dump de
la flash tenía la version 1.3.1, al recuperar mi AP mostraba como versión 1.2.4. (Un misterio más
de SENAO).

Si todo les fue bien, FELICIDADES!!!!!

Ahora a soldar nuevamente la flash al PCB con mucho cuidado, Esta operación puede hacerse
con un cautín de punta bien fina o con la misma pistola de aire que utilizamos al principio para no
echar a perder lo ganado hasta ahora. Para soldar con aire caliente necesitan algo así como una
pasta especial, según algunos amigos por acá, con más experiencia que yo en soldar

6 / 11
Como recuperar un Access Point Engenius EOC-2610 muerto. (Bricked) por Alexéi Montero F.

componentes de superficie. Ellos me recomendaron que lo hiciera con el cautín, porque de esa
pasta ni hablar… en este punto ustedes deciden.

Verifiquen bien la soldadura y que no hayan quedado restos de estaño que cortocircuiten las
patillas de la flash.

¡Listo Access Point EOC-2610 RECUPERADO!

Para los que quieren saber más.

Este procedimiento puede mejorarse mucho, pero así resulta bastante sencillo y “sin muchas
complicaciones”.

Pueden leer todo su desarrollo de este hilo del foro:


http://foro.seguridadwireless.net/puntos-de-acceso-routers-switchs-y-bridges/alguien-
harealizado-jtag-con-senao-eoc-2610

De mi experiencia en esta tarea puedo darle algunas conclusiones.

En el EOC-2610, el Redboot se carga en la RAM y se ejecuta. Cuando mi AP se brickeo


posiblemente lo que haya sucedido es que sobrescribí la zona de la flash donde reside el Redboot
con una imagen que no lo contenía, al resetear, por supuesto adiós RAM y no había nada que
cargar de la flash. Si no hay RedBoot, no hay LAN, no hay forma de conectarse con el dispositivo.
El Access Point a muerto.

A partir de la dirección de memoria 0xA87F0000 (según el esquema de memoria del AP), existen
datos vitales para el booteo, entre ellos: las MAC de las interfaces LAN y WIFI (de la 0xA87F0060
a la 0xA87F006B). Esta zona está protegida o al menos el Redboot de SENAO, no deja escribir en
ellas. Es casi seguro que esta información esté intacta cuando sacamos la flash, se puede
comprobar antes de borrar los datos:

C:\EOC2610> SPWPGIW /d dumpEOC2610muerto.bin

Abrimos el fichero “dumpEOC2610muerto.bin” con el WinHex. Vamos a la posición 7F0000 y


podremos verificar si nuestra flash contiene aún esos datos vitales.

Con mi desconocimiento, lo primero que hice fue borrar la flash para probar los comandos del
SPIPGMW y eliminé toda esa información, porque ahora sé que desde el Redboot, me hubiera
sido imposible modificar algo allí.

Si logramos grabar una imagen binaria de un RedBoot desde la dirección 0x000000 sin modificar
los datos de la 0x7F0000 a 0x7FFFFE podríamos recuperar el AP con los procedimientos que ya
han sido documentados.

En mis pruebas grabé el MicroRedboot de DD-wrt (solo 64k) y funciona. Pude hacer todas las
operaciones, y grabarle un firmware con el procedimiento normal de SENAO, que no funcionó en
su momento por no existir los datos en la 0xA87F0000. Leí en un foro que el MicroRedBoot no
permite bootear otros firmware que no sea de DD-wrt, pero eso realmente no lo puede comprobar,
al menos me dejo formatear la flash, grabar todos los archivos en las direcciones correctas y
7 / 11
Como recuperar un Access Point Engenius EOC-2610 muerto. (Bricked) por Alexéi Montero F.

configurar el script de booteo. Tampoco me interesó mucho ese tema porque al final sus firmware
son pagos y tienen una política bastante drástica, pues sólo dan 24 horas de prueba.

El fichero Original2610.bin (8 323 072 bytes) que se puede descargar de Internet incluye RedBoot
y un firmware del EOC2610 completo y funcional. Desgraciadamente, el programa SPIPGMW, no
permite borrar sectores individuales de la flash, el comando implementado borra la memoria
completa. Para este tipo de memoria es necesario tener todos los bytes de la zona a grabar en FF.
(borrados) para obtener un resultado correcto del proceso, el circuito ST25P64 realiza la grabación
llevando los bit de 1 a 0; obligatoriamente tenemos que borrarla, perdiendo esta información vital.
Quizás en el futuro nuevas versiones permitan borrar sectores individuales dado que la memoria si
permite esta operación.

Es posible que con otro programa para grabar memorias SPI se pueda hacer, por supuesto
empleando otro circuito; pero la sencillez del circuito y la relativa rapidez con que realiza las
operaciones el SPIPGMW son más que suficientes para obviar estos inconvenientes. En todo caso
ya contamos con una imagen completa de la flash que nos permite borrar sin miedo la misma y
restaurar los valores adecuados para realizar el booteo.

¿Cómo obtener una imagen de la flash de un dispositivo EOC2610?

Este procedimiento se me ocurrió por la necesidad de obtener un imagen de la flash y por


supuesto la dificultad de encontrar alguien dispuesto a arriesgar su AP para desoldarle la flash y
hacerle un dump por hardware. Eso es muy arriesgado, por mi cabeza hasta pasó mandar a
comprar otro equipo para hacerlo. Por suerte se me alumbró el bombillo, como decimos por acá.

El RedBoot permite realizar un volcado del contenido de la memoria para la pantalla en varios
formatos. Entonces pensé, que si podía salvar esa información de alguna manera podría obtener
el contenido que me interesaba. Con esta idea en mente lo demás fue hacer algunas pruebas.
Activando el log del putty para grabar todo lo que se muestra en la pantalla y ya tenemos una
buena salva.

Procedimiento para obtener un volcado de la flash de un Engenius EOC-2610.


(Puede servir para otros modelos)

1. Conectarse al RedBoot del equipo utilizando el Putty 0.6.0

2. Activar el logging del Putty para grabar toda la sesión:


Click derecho en la barra de título, Change Settings/ Session / Loggings -> Printable Output ->
Apply

3. Ejecutar el comando:
RedBoot> dump –b 0xa8000000 –l 0x800000 –s

Después de cierto tiempo (se demora bastante) se obtiene un fichero como este:

8 / 11
Como recuperar un Access Point Engenius EOC-2610 muerto. (Bricked) por Alexéi Montero F.

RedBoot> dump -b 0xa8000000 -l 0x800000 -s


S315A80000003C04B100348400088C880000350800023E
S315A8000010AC8800000000000F3C04B1003484000C3A
S315A80000208C88000035080002AC8800000000000F8C
S315A80000303C04B010348440048C8800003C01FFFCCA
S315A80000403421FFFF0101402435080000AC880000D8
.
.
.
S315A87FFFD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04
S315A87FFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4
S315A87FFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4
RedBoot>

4. Cerrar el Putty y abrir con el bloc de notas, el fichero “log” de donde lo hayamos configurado.
Le eliminamos las primeras y las últimas líneas (marcadas en rojo) dejando solamente las que
comienzan con S315. Salvamos con otro nombre por ejemplo DumpEOC2610.txt.

Este es el fichero con todo el contenido de la flash en formato Motorola S-record. Comprueben las
direcciones de inicio y final del archivo, están subrayadas y en negrita en el ejemplo.

5. Convertir el fichero texto en binario.

Existen varios programas que pueden convertir este formato a binario, pero los que probé me
resultaron demasiado lentos. En todo caso ustedes pueden decidir. Yo programé una pequeña y
sencilla aplicación (LogToBin.exe) que convierte el fichero en sólo algunos segundos a costa de
obviar el chequeo y muchos otros parámetros del formato Motorola S-record. (También la incluí en
este paquete)

Su uso es sencillo:

C:>LogToBin <archivo origen> [<archivo destino>]

Si se omite el segundo argumento usa el nombre del origen agregándole la extensión: bin.

En nuestro caso, siguiendo el ejemplo anterior quedaría:

C:>LogToBin DumpEOC2610.txt DumpEOC2610.bin

El fichero obtenido (DumpEOC2610.bin) debe tener exactamente 8 388 608 bytes que es el
tamaño de las flash 25P64 que trae instalada el EOC-2610.

Así se puede obtener la imagen binaria de la flash de un AP que esté trabajando, sin siquiera
tener que bajarlo del mástil. Por supuesto este incluirá la configuración completa de ese AP:
password, redes, IP, profiles, etc.,

9 / 11
Como recuperar un Access Point Engenius EOC-2610 muerto. (Bricked) por Alexéi Montero F.

Para otros modelos

Este procedimiento puede servir para otros modelos de Access Point de Senao, puesto que ellos
ofrecen un procedimiento de recuperación del firmware original a partir del redboot con ficheros
similares; diferenciándose, en lo fundamental, en las direcciones de memoria y el script de booteo
particulares para cada AP.

Para otros modelos y fabricantes deben tener en cuenta el tamaño y el esquema de memoria de
los mismos, pero de seguro este procedimiento debe funcionar con sólo algunos cambios
mínimos.

Utilizando el comando:

RedBoot> dump –b <Dirección inicio de la flash> –l <Longitud de los datos> –s

En el esquema de memoria del AP EOC-2610 el inicio de la flash es 0xa8000000. La longitud de


los datos es, por supuesto, su tamaño completo, 0x800000; que en decimal es 8 388 608 bytes,
como habíamos comentado anteriormente.

En otros AP de SENAO como el EOC-3660 y el EOC-5610 la flash comienza en las direcciones


0xBF000000 y 0xBE000000 respectivamente.

Este valor puede obtenerse con el comando:

RedBoot> version

RedBoot(tm) bootstrap and debug environment [ROMRAM]


Non-certified release, version 1.1 - built 15:45:06, Mar 24 2009

Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.

Board: ap51
RAM: 0x80000000-0x82000000, [0x80040f30-0x80fe1000] available
FLASH: 0xa8000000 - 0xa87f0000, 128 blocks of 0x00010000 bytes each.

Resaltado en rojo se puede observar la dirección de inicio de la flash y su tamaño lo podemos


obtener multiplicando la cantidad de bloques (en azul) por la cantidad de bytes (en verde),
tomando en cuenta que el primer valor es decimal y el segundo en hexadecimal. Esta operación
se puede hacer fácilmente en la calculadora de Windows en el modo científica, convirtiendo uno
de los valores al sistema numérico del otro.

128 decimal = 80 hexdecimal


65536 decimal = 10000 hexdecimal

128 x 65536 = 8 388 608


80h x 10000h = 800000h = 8 388 608 decimal

Ante cualquier duda en el tamaño de la flash consultar los datos del fabricante para estar seguros.
10 / 11
Como recuperar un Access Point Engenius EOC-2610 muerto. (Bricked) por Alexéi Montero F.

Como nota curiosa pueden observar que el Redboot reporta la flash de 0xa8000000 – 0xa87f0000
(Para el EOC-2610), eso nos deja con una zona de memoria de 7f000 bytes (8 323 072) lo que
deja fuera de nuestro alcance exactamente 65536 bytes que conforman el último bloque de
memoria donde se encuentran los datos necesarios para el booteo del AP.

11 / 11

También podría gustarte