giovedì 30 maggio 2024

Published maggio 30, 2024 by Django Faiola with 0 comment

iOS Google Translate

Introduzione

Google Translate è l’applicazione mobile gratuita sviluppata da Google per la traduzione di parole o frasi in 133 lingue differenti. La traduzione può avvenire in diverse modalità: digitazione, scrittura a mano libera, dettatura, trascrizione, conversazione, immagini, fotocamera, documenti, etc.

Per maggiori dettagli sulle funzionalità dell'app consulta https://support.google.com/translate/.

App Store: https://apps.apple.com/us/app/google-translate/id414706506

Per lo studio di questa app sono state utilizzate sia le vecchie versioni 5.18.59063 e 6.4.59163 che le più recenti 8.3.0 e 8.9.2 del mio iPhone.

Percorsi

Di seguito lo stralcio di Google Translate del poster della SANS “iOS Third-Party Apps Forensics Reference Guide Poster” con le informazioni più rilevanti per l’analisi dell’app.

Cronologia delle traduzioni

Il database SQLite translate.db nell'Internal App Path "/Documents/" contiene la tabella history, la cronologia delle traduzioni.

SELECT
    ROWID AS "_id",
    datetime(timestamp, 'unixepoch') AS "timestamp",
    (sourcelanguage || '-' || targetlanguage) AS "fromToLang",
    sourcetext,
    targettext,
    star AS "starred",
    romanization
FROM history

La struttura della tabella history (esempio _id=60):

  • timestamp2019-11-01 14:56:45 (timestamp nel formato Unix Epoch: 01 novembre 2019 14:56:45);
  • sourcelanguageen (lingua di origine);
  • targetlanguagefr (lingua di traduzione);
  • sourcetext😉😉😉should I put 25% up fit this amazing service? (testo sorgente);
  • targettext😉😉😉est-ce que je devrais mettre 25% de plus pour ce service incroyable? (testo tradotto);
  • star: 0 (1=aggiunto ai preferiti);
  • romanization (romanizzazione o latinizzazione).

Preferiti

La tabella starred contiene l'elenco delle traduzione salvate nei preferiti.

SELECT
    ROWID AS "_id",
    (sourcelanguage || '-' || targetlanguage) AS "fromToLang",
    sourcetext,
    targettext,
    romanization
FROM starred

La struttura della tabella starred:

  • sourcelanguageen (lingua di origine);
  • targetlanguagefr (lingua di traduzione);
  • sourcetextworthless share (testo sorgente);
  • targettextpart sans valeur (testo tradotto);
  • romanization (romanizzazione o latinizzazione).

Text-To-Speech

La tabella tts (text-to-speech) è presente solo nelle vecchie versioni fino alla 8.1.1 compresa (verificata da Johann Polewczyk). Nella 8.3.0 la tabella è già stata rimossa; quindi non ho modo di stabilire qual è l'ultima versione 8.x intermedia tra le due che la contiene.

SELECT
    ROWID AS "_id",
    language,
    text,
    audio
FROM tts

La tabella tts:

  • text: cum o numiți? (testo);
  • languagero (lingua);
  • audio: <BLOB> (parlato).

I primi due byte del campo audio sono FF F3 che è la signature (magic numbers) del file MP3. Oppure salvando il campo audio su file e analizzandolo con ExifTool, si può verificare che è una traccia audio nel formato MP3. Quindi, audio è proprio il parlato.

FileName : audio.bin
FileType : MP3
FileTypeExtension : mp3
MIMEType : audio/mpeg
MPEGAudioVersion : 2
AudioLayer : 3
AudioBitrate : 32 kbps
SampleRate : 22050
ChannelMode : Single Channel
Duration : 1.75 s (approx)

iLEAPP 💖

Come di consueto, a supporto del progetto iLEAPP (iOS Logs, Events, And Plists Parser) di Alexis Brignoni, ho sviluppato il plugin googleTranslate.py che alla data odierna è in “pull request”  e comunque disponibile sul mio GitHub.

Di seguito alcuni screenshot del report di Google Translate:


Read More