Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.os.linux.sys > #39377 > unrolled thread

Cambio stringhe in firmware

Started bygandalf.corvotempesta@gmail.com
First post2015-09-24 00:11 -0700
Last post2015-09-29 23:39 -0700
Articles 11 — 4 participants

Back to article view | Back to it.comp.os.linux.sys


Contents

  Cambio stringhe in firmware gandalf.corvotempesta@gmail.com - 2015-09-24 00:11 -0700
    Re: Cambio stringhe in firmware Andrea D'Amore <anddam+NOSPAM@brapi.net> - 2015-09-24 09:54 +0200
      Re: Cambio stringhe in firmware gandalf.corvotempesta@gmail.com - 2015-09-24 07:02 -0700
    Re: Cambio stringhe in firmware Giovanni <lsodgf0@home.net.it> - 2015-09-24 14:48 +0200
      Re: Cambio stringhe in firmware gandalf.corvotempesta@gmail.com - 2015-09-24 07:07 -0700
        Re: Cambio stringhe in firmware Leonardo Serni <lserni@gmail.com> - 2015-09-24 21:03 +0200
          Re: Cambio stringhe in firmware gandalf.corvotempesta@gmail.com - 2015-09-24 15:02 -0700
            Re: Cambio stringhe in firmware Leonardo Serni <lserni@gmail.com> - 2015-09-26 00:35 +0200
              Re: Cambio stringhe in firmware gandalf.corvotempesta@gmail.com - 2015-09-28 00:37 -0700
    Re: Cambio stringhe in firmware Andrea D'Amore <anddam+NOSPAM@brapi.net> - 2015-09-29 21:45 +0200
      Re: Cambio stringhe in firmware gandalf.corvotempesta@gmail.com - 2015-09-29 23:39 -0700

#39377 — Cambio stringhe in firmware

Fromgandalf.corvotempesta@gmail.com
Date2015-09-24 00:11 -0700
SubjectCambio stringhe in firmware
Message-ID<bae16361-e5d7-49a1-acea-c3990b783ab2@googlegroups.com>
Non so se è il gruppo corretto, ma non saprei dove chiedere.

Ho "un firmware". Non so altro. Non so la piattaforma, ne altro. E' il firmware di una stampante POS

DECIMAL   	HEX       	DESCRIPTION
-------------------------------------------------------------------------------------------------------
41505     	0xA221    	BLCR context data (big endian, version 52)
168337    	0x29191   	BLCR context data (big endian, version 67)
210376    	0x335C8   	LZMA compressed data, properties: 0x38, dictionary size: 1048576 bytes, uncompressed size: 4096 bytes
.......... (molte altre sezioni LZMA)

Premesso che ho provato ad estrarre le sezioni LZMA ma sembra un loop infinito, per ciascuna sezione mi torna archivi compressi in LZMA, che decomprimendoli ne generano di ulteriori e così via.

A parte ciò:

1. c'è modo di decompilare il tutto ?
2. c'è modo di cambiare le stringe testuali (visibili con 'strings') ? Dovrei correggere alcuni grossolani errori di scrittura (è un firmware cinese). L'SDK cinese costa tanti, tanti, tanti $$ (e non mi è chiaro cosa sia possibile fare e cosa no, con tale SDK, i sorgenti non vengono distribuiti) e per cambiare 5 parole è eccessivo.

[toc] | [next] | [standalone]


#39378

FromAndrea D'Amore <anddam+NOSPAM@brapi.net>
Date2015-09-24 09:54 +0200
Message-ID<mu0a87$q88$1@virtdiesel.mng.cu.mi.it>
In reply to#39377
On 2015-09-24 07:11:37 +0000, gandalf.corvotempesta@gmail.com said:

> 2. c'è modo di cambiare le stringe testuali (visibili con 'strings') ? 
> Dovrei correggere alcuni grossolani errori di scrittura (è un firmware 
> cinese). L'SDK cinese costa tanti, tanti, tanti $$ (e non mi è chiaro 
> cosa sia possibile fare e cosa no, con tale SDK, i sorgenti non vengono 
> distribuiti) e per cambiare 5 parole è eccessivo.

Se le stringhe non sono in sezioni compresse (che probabilmente faranno 
checksum) apri un editor qualsiasi (che non forzi la terminazione, 
meglio un editor esadecimale) e cambi i caratteri che vuoi mantenendo 
la lunghezza delle stringhe, per far sparire caratteri usa degli spazi 
(0x20).
Prima di procedere però assicurati di poter riscrivere un firmware 
corretto in caso di errori.

-- 
Andrea

[toc] | [prev] | [next] | [standalone]


#39381

Fromgandalf.corvotempesta@gmail.com
Date2015-09-24 07:02 -0700
Message-ID<438a3ec2-a878-44c2-9b6f-c23706fdca16@googlegroups.com>
In reply to#39378
Il giorno giovedì 24 settembre 2015 09:54:49 UTC+2, Andrea D'Amore ha scritto:
> Se le stringhe non sono in sezioni compresse (che probabilmente faranno 
> checksum) apri un editor qualsiasi (che non forzi la terminazione, 
> meglio un editor esadecimale) e cambi i caratteri che vuoi mantenendo 
> la lunghezza delle stringhe, per far sparire caratteri usa degli spazi 
> (0x20).

Ottima idea.

> Prima di procedere però assicurati di poter riscrivere un firmware 
> corretto in caso di errori.

Ecco, non ne sono affatto sicuro.
E' un po di tempo che cerco anche una sorta di brutale emulatore/virtualizzatore per poter eseguire questo firmware ma senza successo

[toc] | [prev] | [next] | [standalone]


#39380

FromGiovanni <lsodgf0@home.net.it>
Date2015-09-24 14:48 +0200
Message-ID<mu0rfm$298$1@milena.home.net.it>
In reply to#39377
On 09/24/2015 09:11 AM, gandalf.corvotempesta@gmail.com wrote:
> 1. c'è modo di decompilare il tutto?

Abbastanza difficile se non conosci la piattaforma su cui deve girare.

> 2. c'è modo di cambiare le stringe testuali (visibili con 'strings')?
> Dovrei correggere alcuni grossolani errori di scrittura (è un
> firmware cinese). L'SDK cinese costa tanti, tanti, tanti $$ (e non mi
> è chiaro cosa sia possibile fare e cosa no, con tale SDK, i sorgenti
> non vengono distribuiti) e per cambiare 5 parole è eccessivo.

Ai tempi del DOS editavo le stringhe riscrivendole con un editor 
esadecinale.  L'unica avvertenza era di sostituirle con altre della 
stessa lunghezza.

Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   < http://giovanni.homelinux.net/ >

[toc] | [prev] | [next] | [standalone]


#39382

Fromgandalf.corvotempesta@gmail.com
Date2015-09-24 07:07 -0700
Message-ID<8ac0bd47-0c55-490c-b8c7-cd18cdf12f44@googlegroups.com>
In reply to#39380
Il giorno giovedì 24 settembre 2015 14:48:56 UTC+2, Giovanni ha scritto:
> Abbastanza difficile se non conosci la piattaforma su cui deve girare.

Parliamone, che dati ti servono per poter identificare il firmware e la rispettiva piattaforma ?

Come scritto sopra, non sono in grado di estrarlo, l'archivio LZMA sembra un loop infinito, ma sicuramente sono io a non essere capace, è la prima volta che mi cimento.

Se qualcuno ha voglia e magari è curioso, son disponibile a fare tutte le prove del caso. Poter decompilare questo affare mi sarebbe di grande aiuto.

So solo che la CPU è una Simcom SIM840W (serie SIM800H) ma anche leggendo la documentazione ufficiale, non ho cavato un ragno dal buco.

So che il firmware è diviso in due parti (io credo di averne solo una), la parte che controlla la CPU e la parte con la componente dati (il software di interazione con la stampante). Io ho quest'ultima parte, di controllare la CPU mi interessa zero.

[toc] | [prev] | [next] | [standalone]


#39386

FromLeonardo Serni <lserni@gmail.com>
Date2015-09-24 21:03 +0200
Message-ID<j5i80bhtq36b796hqvfukvvdbfqf33f0v5@4ax.com>
In reply to#39382
On Thu, 24 Sep 2015 07:07:36 -0700 (PDT), gandalf.corvotempesta@gmail.com
wrote:

> Come scritto sopra, non sono in grado di estrarlo, l'archivio LZMA sembra un loop infinito

Immagino che non ci sia modo di farmi avere i primi, che so... 256 Kb di
quell'LZMA?

Leonardo

-- 

Now suppose -just suppose- I could show you a way to
manufacture a wall that would do the same job... but
was only one inch thick.

[toc] | [prev] | [next] | [standalone]


#39387

Fromgandalf.corvotempesta@gmail.com
Date2015-09-24 15:02 -0700
Message-ID<3d970aa8-e98e-4453-9b39-bdc2e076e6a8@googlegroups.com>
In reply to#39386
Il giorno giovedì 24 settembre 2015 21:03:11 UTC+2, Leonardo Serni ha scritto:
> Immagino che non ci sia modo di farmi avere i primi, che so... 256 Kb di
> quell'LZMA?

C'è modo (volendo ti mando anche tutto il firmware) ma come te lo estraggo? 
"dd" per i primi 256bytes? Oppure ti servono i primi 256byte del solo LZMA ?
In quest'ultimo caso non son capace ad estrarlo, come scritto in precedenza, sempre si loopi all'infinito, estraggo sempre se stesso.

[toc] | [prev] | [next] | [standalone]


#39402

FromLeonardo Serni <lserni@gmail.com>
Date2015-09-26 00:35 +0200
Message-ID<r0jb0bplo3piaa4qejfp0ujun35fs36edc@4ax.com>
In reply to#39387
On Thu, 24 Sep 2015 15:02:44 -0700 (PDT), gandalf.corvotempesta@gmail.com
wrote:

>Il giorno giovedì 24 settembre 2015 21:03:11 UTC+2, Leonardo Serni ha scritto:
>> Immagino che non ci sia modo di farmi avere i primi, che so... 256 Kb di
>> quell'LZMA?

>C'è modo (volendo ti mando anche tutto il firmware) ma come te lo estraggo? 

Be'... manda tutto e vediamo. L'email è buona. Non so quando ci potrò dare una
occhiata, ho un cumulo di arretrati alto così e varia gente che mi insegue, ma
farò quel che potrò :-D

Leonardo

-- 

Now suppose -just suppose- I could show you a way to
manufacture a wall that would do the same job... but
was only one inch thick.

[toc] | [prev] | [next] | [standalone]


#39413

Fromgandalf.corvotempesta@gmail.com
Date2015-09-28 00:37 -0700
Message-ID<d2fe3bd3-decb-40f4-b447-1ec4aa6ac48a@googlegroups.com>
In reply to#39402
Il giorno sabato 26 settembre 2015 00:36:01 UTC+2, Leonardo Serni ha scritto:
> Be'... manda tutto e vediamo. L'email è buona. Non so quando ci potrò dare una
> occhiata, ho un cumulo di arretrati alto così e varia gente che mi insegue, ma
> farò quel che potrò :-D

Ti ho mandato direttamente il link ricevuto dai cinesi.
Ha una scadenza, se hai problemi, fammi sapere.

[toc] | [prev] | [next] | [standalone]


#39418

FromAndrea D'Amore <anddam+NOSPAM@brapi.net>
Date2015-09-29 21:45 +0200
Message-ID<muepns$ne1$1@virtdiesel.mng.cu.mi.it>
In reply to#39377
On 2015-09-24 07:11:37 +0000, gandalf.corvotempesta@gmail.com said:

> 1. c'è modo di decompilare il tutto ?

Hai provato binwalk <https://github.com/devttys0/binwalk>?

-- 
Andrea

[toc] | [prev] | [next] | [standalone]


#39419

Fromgandalf.corvotempesta@gmail.com
Date2015-09-29 23:39 -0700
Message-ID<fa47bf9e-db18-4af0-945a-3dae1ddc01dd@googlegroups.com>
In reply to#39418
Il giorno martedì 29 settembre 2015 21:45:02 UTC+2, Andrea D'Amore ha scritto:
> Hai provato binwalk <https://github.com/devttys0/binwalk>?

E' la prima cosa che ho provato.
E' proprio lui che si inlooppa, crea un totale di file, secondo lui decompressi, che però a loro volta sono compressi LZMA, eseguendo binwalk su ciascuno di essi, ne crea altrettanti di nuovi, sempre compressi, e così via.

[toc] | [prev] | [standalone]


Back to top | Article view | it.comp.os.linux.sys


csiph-web