Info POST WINOLS ( FUERA OSCURANTISMO )

Gpower

Alfista Compulsivo
Usuario Premium

winols.jpeg

https://www.evc.de/en/product/ols/software/

El editor hexadecimal WINOLS tiene integradas unas funciones que hacen que podamos editar cualquier tipo de archivo hexadecimal ( sin tener por qué ser archivos de motor ).
Los archivos que extraemos de la ecu del motor son archivos hexadecimales que contienen la estructura de funcionamiento de las unidades de motor.
Al construir una ecu y tener todos los elementos y sistemas de gestión de motor acoplados a la misma, se pone todo el conjunto en funcionamiento para establecer un sistema de "acople" de todos los elementos funcionando en su conjunto. Una vez establecido el acople del sistema en su conjunto, se usará este archivo para el ajuste de algunos parámetros del funcionamiento del motor, actualizaciones del SO de la ecu del motor, etc...
Una característica importante del Winols y que facilita el trabajo es el "cálculo automático e integración del checksum" en TIEMPO REAL, búsqueda automática de estructura de mapas ( es importante la BUSQUEDA MANUAL DE ESTRUCTURAS que no se encuentran automáticamente y son también necesarias ), reconocimiento de ejes de mapas en 8, 16 y 32 bits...
Tendremos también una visualización en formato TEXT, 2D Y 3D para facilitar la edición del mapa y ajustes mediante corrector de factores y offset para después poder comprenderlos.

Ejemplo de uno de los mapas limitadores de rpm de un Alfa Giulia QV 510cv:

Alfa Giulia QV 510cv.jpg



P.D: Continuaremos... y si alguien quiere seguir... adelante...
 

ANBAL534

Alfista Junior

Igual o más importante que el programa para editar el hex del programa de la ECU son los archivos DAMOS para que le winols pueda mapear en el hex las tablas y las funciones del mapa de cada modelo de coche y motor.

Hasta donde tengo entendido conseguir estos archivos actualizados y específicos para un modelo concreto suele ser muy difícil.
 

Sk8Alfa

Alfista Veterano
Usuario Premium

una pregutna que me sirve, como estudiante de programacion informática, es con qué lenguaje de programacion, o mas bien, cómo se programan las ECU.
No creo que programen en binario... deben programar en un lenguaje conocido, digo yo. No sabía lo del winols, muy muy interesante aprender estas cosas y, sobre todo,por la parte que a mi me toca, que me llama mucho todo ese mundo de programación tanto de web y sistemas informáticos,como en el mundo automovilisco.

Me gusta el camino que se está cogiendo.
Otra duda que me surge es si existe software de codigo libre del estilo de winols, para poder editar y leer esos archivos hexadecimales. O incluso si el propio winols tiene alguna version free,aunque sea de funciones limitadas.
 

ANBAL534

Alfista Junior

Seguramente dependerá de fabricante a fabricante, pero en C o C++, lo que se saca de la ECU el "mapa" es el programa en C de la ECU compilado, el binario vamos, y con eso ya tu te apañas haciendo un buen trabajo de reversing para editarlo y remachacarlo en la memoria de la ECU.

Como al final el programa de la ECU es algo ""sencillo"", simplemente unas rutinas que reciben datos numéricos de los sensores del motor, los transforman a partir de unas matrices que se especifiquen y las escupen por el can bus a donde hagan falta las señales, pues sabiendo donde se encuentran en el binario los datos que contienen las dichas matrices las puedes modificar a pelo para cambiar el comportamiento de las señales que devuelva.

No soy experto en repros, la mia me la hizo el crack de @alfanacleto, pero soy ingeniero informático y esto es lo que puedo deducir de lo que he podido observar. Que lo mismo estoy equivocado, que alguien con experiencia de verdad me corrija si es el caso jeje
 

Sk8Alfa

Alfista Veterano
Usuario Premium

yo soy estudiante de FP DAM y entiendo lo que me dices ( aunque no tengo el nivel todavía para asimilar muchas cosas). En mi cabeza estoy pensando una cosa: Si se programa en C,C++ o lo que sea, y se compila posteriormente, no puede sacarse directamente el programa precompilado para no tener que trabajar en binario? es a lo que te refieres con el trabajo de reversing que mencionas?.
Partiendo de esa base,alguien que sepa de programacion debe de ser tarea muy sencilla sacar ese mapa/programa. LO dificil imagino que sera saber ajustar los valores y toda la historia automovilistica que hay de atras

Pero, como digo, hablo desde lo que se me pasa por la cabeza y desde mi dulce ignorancia...
Un saludo
 

Gpower

Alfista Compulsivo
Usuario Premium

Igual o más importante que el programa para editar el hex del programa de la ECU son los archivos DAMOS para que le winols pueda mapear en el hex las tablas y las funciones del mapa de cada modelo de coche y motor.

Hasta donde tengo entendido conseguir estos archivos actualizados y específicos para un modelo concreto suele ser muy difícil.
Exacto. No hay damos específicos para cada hw y sw de ecu pero ese no es el problema ya que si sabes hacerlo, winols te deja hacer indentificaciones manuales de mapas y singles. Como bien dijo en un post @alfanacleto y como ejemplo, es que él tiene damos de Giulia con mapas y singles identificados por él ya que los damos normales no los tienen. Yo hago los mismo, si hay damos a los que les faltan identificaciones de direcciones, se buscan y se crea el damos personalizado.
 

ANBAL534

Alfista Junior

yo soy estudiante de FP DAM y entiendo lo que me dices ( aunque no tengo el nivel todavía para asimilar muchas cosas). En mi cabeza estoy pensando una cosa: Si se programa en C,C++ o lo que sea, y se compila posteriormente, no puede sacarse directamente el programa precompilado para no tener que trabajar en binario? es a lo que te refieres con el trabajo de reversing que mencionas?.
Partiendo de esa base,alguien que sepa de programacion debe de ser tarea muy sencilla sacar ese mapa/programa. LO dificil imagino que sera saber ajustar los valores y toda la historia automovilistica que hay de atras

Pero, como digo, hablo desde lo que se me pasa por la cabeza y desde mi dulce ignorancia...
Un saludo
Para nada, en los lenguajes compilados como C, C++, Rust, y otros, el código fuente una vez pasa por el compilador y el linker lo que hace es generar "código nuevo" en lenguaje máquina específico para la arquitectura de procesador que hayas especificado, en el caso que nos atiende sería para la CPU que lleve la ECU, para que nos entendamos.

El código fuente, lo que tiene sentido para nuestras cabezas, nunca sale del ordenador del programador del software original, de hecho suelen ser recursos muy bien guardados por las empresas.

Entonces como la gente de Bosch no está por la labor de darnos su código fuente para sus ECUs pues tenemos que apañarnos con los binarios.

La problemática viene de que el binario no suele generarse de forma ortodoxa y consistente con la estructura del código fuente que nosotros programamos, porque el proceso de compilación no transforma literalmente nuestras ordenes del código C a binario, sino que lo optimiza, reorganiza, genera estructuras especiales a partir de lo que detecta en nuestro código, vamos, que lo mezcla todo y lo ultra optimiza y esto de forma específica teniendo en cuenta la arquitectura especial del procesador destino.

Por lo que conseguimos en el binario realmente es una sopa de ordenes en ensamblador muy compleja de la que más allá de poder sacar una estructura de bloques básica por el estándar organizativo del ejecutable en sí, no se puede sacar nada más en claro de forma intuitiva.

De hecho es el mismo proceso el que se sigue para crear los cracks de los juego o programas varios, editar archivos ejecutables binarios para saltarse protecciones o editar datos específicos que modifiquen su comportamiento original se asemeja más a un arte que a una ciencia.

En el caso de lo mapas de las ECUs, como no queremos modificar el flujo original del programa sino los datos que usan para los cálculos solo necesitamos buscarlos en el bloque de datos del binario y darle sentido a los trozos de este bloque en especial. Aquí es donde entra el WinOLS y donde se nota su brillo, ya que este programa tiene sistemas muy avanzados de detección de lo que para el WinOLS ve como tablas, donde empiezan y acaban listas, los tipos de dato y longitudes, etc. ahorrando muchísimo trabajo a los editores de estos mapas que solo tienen digamos que "afinar" y filtrar lo que el WinOLS detecta, eliminar los falsos positivos que detecte el programa, y ajustar los datos, alineaciones etc de lo que si sea una tabla mas o menos bien detectada.

Esto puede parecer sencillo, pero en realidad es tremendamente complejo, ya que lo único que te ayuda a detectar estas estructuras, incluso con la ayuda de WinOLS es la experiencia propia, y si a esto le añadimos que un fallo en una alineación, en un bit fuera de sitio, no solo puede matar la ECU en sí, sino destrozar el motor entero de un coche, pues es algo que cuesta aprender mucho.
 

Sk8Alfa

Alfista Veterano
Usuario Premium

joder, me ha quedado clarisimo. Chapó.
La verdad es que tengo un focus como coche secundario ( o terciario,mas bien xD) y me gustaria usarlo como conejillo de indias. Todo esto suena muy complicado, pero este post es de lo más util. Mis diez para los dos.
 

Gpower

Alfista Compulsivo
Usuario Premium

una pregutna que me sirve, como estudiante de programacion informática, es con qué lenguaje de programacion, o mas bien, cómo se programan las ECU.
No creo que programen en binario... deben programar en un lenguaje conocido, digo yo. No sabía lo del winols, muy muy interesante aprender estas cosas y, sobre todo,por la parte que a mi me toca, que me llama mucho todo ese mundo de programación tanto de web y sistemas informáticos,como en el mundo automovilisco.

Me gusta el camino que se está cogiendo.
Otra duda que me surge es si existe software de codigo libre del estilo de winols, para poder editar y leer esos archivos hexadecimales. O incluso si el propio winols tiene alguna version free,aunque sea de funciones limitadas.
No lo programan en un lenguaje conocido y general sino es como lo comenta el compañero para que nos entendamos:
"El código fuente, lo que tiene sentido para nuestras cabezas, nunca sale del ordenador del programador del software original, de hecho suelen ser recursos muy bien guardados por las empresas".
Ahí interviene el Winols y otros editores hexadecimales con identificación automática de mapas, Ecm Titanium, Race, Stagex, etc...
Evidentemente que esto ya es información confidencial el cómo se crea el software de identificación automática de mapas ya que es algo que las empresas tienen muy en secreto. Sin embargo su creación es posible pero requiere mucho tiempo.
 

Gpower

Alfista Compulsivo
Usuario Premium

Me gusta el camino que se está cogiendo.
Otra duda que me surge es si existe software de codigo libre del estilo de winols, para poder editar y leer esos archivos hexadecimales. O incluso si el propio winols tiene alguna version free,aunque sea de funciones limitadas.
Si que hay alguna versión libre por la red y con funciones completas.
 

Gpower

Alfista Compulsivo
Usuario Premium

¿Alguien quiere continuar?

Pues parece que aquí tampoco los expertos quieren aportar nada. Continuo yo entonces con un poco más de teoría general del software:

Winols es una app desarrollada por EVC Electronic que se desarrolló específicamente para la modificación del contenido de las centralitas de motor. La app tiene las siguientes potencialidades:

1.- Búsqueda automática de mapas creando lista de los mismos.
2.- Búsqueda online ( para la versión original y de pago ) de los datos del proyecto en su propia base de datos de EVC.
3.- Importación de archivos DAMOS/ASAP2.
4.- Detección automática del procesador para diferenciar las zonas de programación y de datos.
5.- Ventana para previsualizar en 3D para el fácil reconocimiento de mapas.
6.- Estos mapas se pueden visualizar en texto, 2d o 3d.
7.- Búsqueda manual o automática de las referencias de la ECU y su número de SW.
8.- Almacenaje de datos en proyectos con el binario original y el modificado.
9.- Función de importación y exportación con función de codificación.
10.- Cálculo del checksum en tiempo real con integración de los checksum en librerías .dll integradas en el propio programa.

Tenéis aquí un vídeo de ejemplo de cómo funciona el programa:


P.D: Continuaremos... y si alguien quiere seguir... adelante...
 
Última edición:

Sk8Alfa

Alfista Veterano
Usuario Premium

entonces el winols tiene una version digamos de prueba oalgo, no?
 

sass

Alfista Consagrado
Usuario Premium

Muy interesante este tema y bien explicado, enhorabuena por el post. Es de agradecer contenidos así.
Diría que te dedicas a enseñar sobre estos temas. Uno más que sigue el hilo, gracias.
 

Gpower

Alfista Compulsivo
Usuario Premium

Muy interesante este tema y bien explicado, enhorabuena por el post. Es de agradecer contenidos así.
Diría que te dedicas a enseñar sobre estos temas. Uno más que sigue el hilo, gracias.
Gracias compañero. Como comenté desde que entré en el foro llevo muchos años en esto, di cursos y trabajo en la elaboración y apoyo de varios softwares.
Saludos
 

Patata

Alfista Junior
Usuario Premium

Yo no tengo ni pajolera idea, pero es un tema interesante. Eso si, en lugar de centrarse en el uso de winols, del cual hay tutoriales, lo importante y complicado creo que es que tocar y como ya que si te limitas a subir porcentajes y falsear cosas pues tendremos un bonito calamar…

Me quedare por aquí por si se explican los cálculos y demás cosas a tener en cuenta aunque viendo lo que cuesta cualquier máquina para hacer repros a coches actuales me da que poca gente se meterá en jaleos…
 

Gpower

Alfista Compulsivo
Usuario Premium

Me quedare por aquí por si se explican los cálculos y demás cosas a tener en cuenta aunque viendo lo que cuesta cualquier máquina para hacer repros a coches actuales me da que poca gente se meterá en jaleos…
Haces bien en quedarte. A ver si alguien más continua por no hacerlo yo sólo.
 

sass

Alfista Consagrado
Usuario Premium

yo no tengo mucha idea pero voy leyendo este y el otro post. más que nada por afición y saber cómo se hace.
 
Arriba