Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
tcl-androidtv-root-attempts — Documenta il reverse engineering di un layer di fabbrica TCL Android TV: protocollo IR a 56 kHz, daemon tclfactoryos, driver IR del kernel e prove che il root software è irraggiungibile. | Kitploit
Strumenti/GitHubGitHub/4onurdemir/tcl-androidtv-root-attempts
Sicurezza AndroidSicurezza Sistemi EmbeddedEscalation di PrivilegiSicurezza IoTExploitReverse EngineeringSicurezza Hardware e IoTAnalisi di BinariPaper e Ricerca

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Apprendimento e Formazione
Analisi del Firmware
GitHub4onurdemir/tcl-androidtv-root-attempts

tcl-androidtv-root-attempts

Documenta il reverse engineering di un layer di fabbrica TCL Android TV: protocollo IR a 56 kHz, daemon tclfactoryos, driver IR del kernel e prove che il root software è irraggiungibile.

Vedi Repository
1529 giorni faNon ancora revisionato

cover


🌐 Lingue: Inglese (questo file) · 🇹🇷 Türkçe

La mappa completa del livello di fabbrica di un TCL Android TV — e la prova del perché il root software è impossibile su questo firmware

Otto giorni, un TCL 65T61C, un Arduino Uno e centinaia di porte chiuse. Questo repo non è una "guida al root" — è un rapporto di chiusura: il livello di fabbrica/servizio del TV è stato mappato dall'inizio alla fine, è stato dimostrato — con prove — che il root software è irraggiungibile su questo firmware, e tutto è stato documentato così che il prossimo ricercatore non debba ripercorrere il cimitero.

La storia in breve: dentro il TV gira un demone root chiamato tclfactoryos, e dentro esso gira un processore di comandi con una chiamata system() alle spalle. Tre canali portano lì: IR, UART e p2p. Abbiamo completamente fatto reverse engineering del protocollo IR (56 kHz!), disassemblato il driver del kernel e dimostrato che i byte marcatore fissi della sequenza di tasti di fabbrica semplicemente non esistono nella tabella dei tasti del TV — nessuna sequenza valida può mai essere trasmessa. La UART è fisica; il thread p2p viene generato solo da una sequenza IR valida. La superficie software: esaurita. Questo repo è l'intero percorso.

Una nota sulle lingue: questo README è in inglese, e così è la documentazione completa: i sette documenti di fase si trovano in docs/en/ (gli originali turchi in docs/). I commenti al codice seguono l'inglese dove conta.


Il dispositivo

ModelloTCL 65T61C (65", Android TV 12)
PiattaformaRealtek RTD2875P / rtd6748
FirmwareV8-R75PT01-LF1V618 (build STT2.230203.001 release-keys)
Kernel5.4.284+ · patch di sicurezza 2025-12-05
TelecomandoRC833A dual-mode (Bluetooth HID + IR)

il rig reale

Il rig reale che ha comunicato con il TV: Arduino Uno + driver 2N2222A + LED IR da 940 nm — fotografato durante le sessioni. Questo circuito alzava e abbassava il volume del TV, tasto per tasto, e ha veicolato ogni sonda di fabbrica in docs/04.

La ricerca è stata condotta su un dispositivo di proprietà dell'autore, rigorosamente all'interno della propria rete domestica. Il TV non è mai stato aperto; nessuna scrittura persistente, nessuna manomissione di chiavi/MID/SN; il dispositivo è stato riportato allo stato di fabbrica nel momento in cui il lavoro è terminato.

I cinque risultati che contano

  1. Il protocollo IR: una portante a 56 kHz. Ogni riferimento dice 38 kHz; questo ricevitore ne vuole 56. Quel singolo disallineamento ha silenziosamente ucciso ogni tentativo iniziale. Header 4000+4000 µs, ADDR(4)|CMD(8)|~ADDR(4)|~CMD(8) a 24 bit MSB-first, bit = mark di 500 µs + spazio di 1000/2000 µs. Tabella completa dei 40 codici tasto: data/TCL-kumanda-kodlari.md.
  2. Il linguaggio privato del driver IR del kernel, decodificato. I frame vengono accumulati LSB-first, ogni byte trasformato con bitrev8, in un w19 a 32 bit; la tabella dei tasti confronta questi valori (VOL+ = 0x0b0f4f00, verificato byte per byte). I tasti di fabbrica emergono come eventi di input speciali type-0x19 — e il byte argomento proviene dalla tabella dei tasti, non dal frame.
  3. La prova di impossibilità. La sequenza di fabbrica del demone richiede i byte marcatore fissi 0x01 e 0x0C; quei valori devono provenire dalla famiglia di cifre della tabella ({b2,a3,f7,ac,81,58,92,ef}); lì non esistono. Nessuna sequenza valida può essere costruita. In più, il flag di modalità report che abilita l'emissione di type-0x19 si trova dietro un sysfs accessibile solo da root.
  4. La nascita segreta del canale p2p. Nulla all'avvio del demone crea il thread di reverse-connect; solo un commit IR valido lo genera. Il che significa che né un riavvio né un restart del demone riportano in vita il p2p — il risultato che ha ucciso con prove la speranza di "scrivere l'IP nel DB e riavviare".
  5. Una porta di esecuzione codice con uid 1000. Il servizio di diagnostica di TCL esegue qualsiasi jar gli si passi come system_app, più un socket di fabbrica su 127.0.0.1:27856 (frame da 144 byte, un DB di proprietà senza whitelist). Non è root — ma dita sulla superficie del root.

Prove

Ogni affermazione è stata verificata rispetto a log/getevent/disassembly; estratti di esempio: data/kanit-ornekleri.md · log grezzo delle misurazioni IR: data/tus_kaydi_ham.log · la tabella dei tasti del kernel stessa: data/ir_table.bin (+ parser: tools/arduino/ir_tablo_parse.py).

Cosa c'è nel repository

docs/                            the seven phase documents — Turkish originals
docs/en/                          the same seven documents, fully in English
tools/arduino/fabrika/           the universal IR blaster (fabrika.ino + firing script)
tools/arduino/{kumanda,tus_kaydet,ogren_gonder,ses_ac_oto}/   the IR tool-chain sketches
tools/arduino/rcu_hesap.py       RCU 13-byte + CRC16-CCITT-FALSE generator (note: legacy word format — docs/04)
tools/factorysock.py             client for the 27856 factory socket
tools/p2pclient.py               ts-protocol client skeleton
data/                            key table + kernel ir_table.bin + raw log + evidence excerpts
assets/                          cover GIF + real-rig photo + receiver/TV wiring guide (PDF)

Ordine di lettura

  1. docs/en/01 — Ricognizione e porte di accesso — acquisizione del firmware, la porta uid-1000, la famiglia di harness M-jar
  2. docs/en/02 — Dentro il daemon — protocollo socket, FCMD, ts/p2p, i punti di root shell
  3. docs/en/03 — La guerra IR: da 38 a 56 kHz — ogni morte e la svolta
  4. docs/en/04 — Fase root: prove sul kernel — w19, type-0x19, la prova di impossibilità, la nascita di p2p
  5. docs/en/05 — L'inventario dei vicoli ciechi — oltre 20 vettori chiusi, con le motivazioni
  6. docs/en/06 — Lezioni — tecnica + metodo + disciplina (14 lezioni)
  7. docs/en/07 — Strumenti e utilizzo — la ricetta di ogni strumento

⚡ L'unico percorso non testato che può ancora funzionare — la UART fisica. Provalo.

Scarica lo strumento