Niekad nemėgau naudotų daiktų – vien dėl to, kad jie dažnai turi sunkiai pastebimų trūkumų, kurie linkę išlįsti netinkamiausiu momentu ir sugadinti man nuotaiką, nors, aišku, didžiąją dalį šių problemų kompensuoja nedidelė kaina.
Šilta vasaros naktis, renkuosi daiktus į svarbią, nors ir netolimą kelionę. Staiga tarp RSS sąsajų pamačiau užuominą apie tai, kad atsinaujino viena programėlė, kurią naudoju savo „Nokia E-61“ telefone. Pažiūrėjęs į naujų funkcijų sąrašą, nusprendžiau, jog reikia atsinaujinti. Programos instaliacija buvo sėkminga ir jau ketinau pasimėgauti naujomis funkcijomis, kai paleidus naujai įdiegtą programą, telefono ekrane pasirodė didelė spyna ir aš buvau paprašytas įvesti „Lock code“. Kadangi mano smegenys jau buvo pakankamai atsipalaidavusios, pagalvojau, jog manęs prašo įvesti programos licencijos raktą. Garsiai išreiškęs keletą gražių žodžių apie programinės įrangos gamintojus, išjungiau ir vėl įjungiau telefoną: jam besikraunant vėl pasirodė ta pati lentelė, prašanti stebuklingojo „Lock code“.
Tik dabar aš supratau padėties rimtumą, kadangi paprasčiausiai nežinojau šio kodo. Aišku, kodas telefone galėjo būti nustatytas pagal nutylėjimą gamintojo, tačiau kodas „12345“ man netiko. Visiškai susinervinęs nusprendžiau, jog kažką visgi reikia padaryti ir tam turiu vos keletą valandų, kadangi atsikelti turėjau anksti, o kažkiek pamiegoti – sveika. Mane ramino tik viena – už savo nugaros turiu šiokią tokią mobiliųjų telefonų „laužymo“ praktiką, todėl galėjau jaustis kiek drąsiau bei optimistiškiau nei kas kitas mano vietoje.
Truputėlį atsitrauksiu nuo savo problemos (beje, kaip parodė tolimesnė eiga, visiškai paprastos ir išsprendžiamos per kelias minutes) ir šiek tiek papasakosiu telefonų „laužymo“ istorijos, kurią spėjau pamatyti savo akimis. Tiesą sakant, nepamenu kada prasidėjo mano pažintis su šia sritimi, tačiau tai buvo tamsūs laikai, kai visur karaliavo „Nokia 3310“ telefonai ir už juos tuo laiku kiek pranašesni, „Siemens x35“, „x45“ serijos mobilieji. Tuo metu dar neturėjau interneto namie ir aktyviai domėjausi technologijomis bei „hakingu“. Tada jau buvau praėjęs „nulaužk interneto kavinę“ fazę, todėl turėjau šiokį tokį priėjimą prie interneto ir galėjau apie valandą juo naudotis nesukeldamas administratorių įtarimo: ir kaip tik tuo metu ėmė populiarėti įvairiausi telefonai „po litą“ su abonentine sutartimi. Kartu su tokiais pasiūlymais ėmė daugėti ir „pririštų“ prie tam tikro operatoriaus telefonų, kuriuos nemažai žmonių norėjo parduoti brangiau ar naudotis kito operatoriaus paslaugomis.
Vienas tokių daikčiukų pakliuvo ir man. Tai buvo primityvus „Siemens A35“ telefonas, praktiškai galintis tik skambinti ir rašyti SMS žinutes, bet man tas tiko, kadangi kaupiau pinigus savo tuometinei svajonei – internetui namie :) Norėdamas dar labiau sutaupyti, turėjau pereiti prie kito operatoriaus, o to padaryti neleido „pririšimas“ – todėl turėjau ieškoti sprendimo. Iš esmės egzistuoja keli telefonų atrišimo nuo operatoriaus mechanizmai – dalis telefonų turi galimybę panaikinti SIM-lock‘ą įvedus unikalų kodą, kuris generuojamas pagal specialų algoritmą ir jame bendru atveju dalyvauja telefono IMEI numeris, todėl kiekvienam telefonui kodas yra unikalus. Kitas, kiek grubesnis, variantas yra telefono programinės ar aparatinės įrangos modifikavimas tam, kad būtų apeita ši apsauga. Iš tiesų geriausias atrišimo variantas yra įvedant kodą, kadangi tai yra numatytas telefono gamintojo variantas, nepažeidžiantis garantijos – bet kodais atsiriša nedaug telefonų (tiksliau visi tie, kurių rankose neturėjau :).
Kalbant apie aparatinį atrišimo būdą, galima pasakyti, jog tai pats sudėtingiausias būdas, reikalaujantis specialių žinių elektronikos srityje, sudėtingų ir brangių įrankių bei kantrybės. Tačiau tai chronologiškai žiūrint vienas iš tų metodų, kuris pasirodė pirmiausia. Pamenu, kai pasirodė „Siemens x55“ serijos telefonai, jie buvo atrišami pjaustant tam tikrus elektroninės plokštės takelius, keičiant kai kurias mikroschemas ir t.t. kol nepasirodė programinis atrišimo būdas, už kurį buvo prašoma apie 15 tūkst. JAV dolerių. Ir tik po ilgo laiko ši programa pateko į viešumą.
Kadangi jau priėjome prie programinio telefonų laužymo, tai trumpai apibūdinsiu bendrus SIM bei kitų užraktų panaikinimo principus. Pradžioje, kai telefonų gamintojai nekreipė per daug dėmesio į saugumą, apsaugos buvo apeidinėjamos „bukai“ arba „labai bukai“ . Kiek pamenu, „Siemens“ telefonuose buvo mažiausiai dvi atmintinės – EEPROM ir „Flash“. „Flash“ atmintyje buvo saugoma telefono programinė įranga, t.y., visa logika, paveiksliukai, garsai ir t.t., o EEPROM naudojama įvairių parametrų reikšmėms ir kai kur – bootstrapper'iui saugoti. Taigi „labai bukas“ atrišimo būdas buvo toks – surandi nepririštą telefoną, nuskaitai jo EEPROM ir įkali tą turinį į pririšto telefono EEPROM. Tačiau tai nelabai gerai atsiliepia telefono darbingumui, kadangi kai kurie EEPROM atmintyje saugomi parametrai yra individualūs (baterijos ar antenos kalibravimo parametrai) kiekvienam netgi to paties modelio telefonui. Natūralu, kad po „labai buko“ atrišimo atsirasdavo įvairiausių problemų, todėl industrija ėjo link konkrečių vietų, atsakingų už užraktus identifikavimo EEPROM atmintyje. Perrašius tik šias vietas reikšmėmis iš švaraus telefono, viskas veikdavo puikiai. Vėliau gamintojai ėmė diegti įvairias apsaugos priemones – nuo aparatinių pasunkinimų iki įvairiausių vientisumo (kontrolinės sektorių sumos) patikrinimų. Visa tai kažkiek galioja ir šio vakaro galvos skausmui.
Be įvairiausių apsaugų apėjimo buvo galima pigiems telefonams suteikti įdomesnių funkcijų. Sakykim maniškis A35 neturėjo nei vibroskambučio, nei galimybės keisti ekrano temų ar melodijų – visa tai reikėjo pasidaryti pačiam. Papildomai galima buvo primontuoti ličio jonų akumuliatorių ar laikiklį virvutei :)
Turbūt šiek tiek užsisvajojau, todėl grįžkime į dabartį. Nuo to laiko, kai aktyviai domėjausi tuo apie ką kalbėjau, praėjo jau daug metų – per tą laiką mobilieji telefonai labai patobulėjo, o jų atrišimo procesas įstatymų požiūriu tapo nelegaliu. Taigi turėjau problemą, šiek tiek patirties, mažai laiko, be to nieko nežinojau apie šiuolaikinius telefonus ir jų programinę architektūrą. Mano mąstymas yra orientuotas į rezultatą, todėl man visiškai nerūpi išsiaiškinti viską iki galo, surasti visus įmanomus puslapius internete apie konkrečią problemą ir perskaityti tonas dokumentacijos.
Pradėjau nuo to, kad norėdamas dirbti su telefono atmintimi, visų pirma turiu prijungti jį prie kompiuterio ir surasti programinę įrangą, leidžiančią keisti atminties turinį. Pirma pasitaikiusi programa buvo „Nemesis Service Suite“, prie kurios prijungiau savo telefoną ir įvyko nieko :) Tuomet supratau, kad nežinau, kaip šiais laikais vyksta darbas su telefono atmintimi, t.y. kokiu momentu susiriša telefonas ir programinė įranga. „Siemens“ telefonai turėjo praktiškai du režimus – vienas veikė, kai dirbama su įjungtu telefonu per kabelį. Jis skirtas tradiciniams veiksmams – telefonų knygutės peržiūrai, sms siuntimui ir kt., o kitas „žemo lygio“ režimas buvo pasiekiamas prijungiant išjungtą telefoną prie kabelio ir trumpai nuspaudžiant įjungimo mygtuką. Pamaniau, kad visai logiška, jog mano turimas probleminis telefonas neprisijungia prie kompiuterio kol nėra įvedamas „Lock code“. Tuomet kuriam laikui atidėjau šią problemą ir iš stalčiaus pasičiupau kitą panašios kartos paprastesnį telefoną, kurį pavyko sėkmingai prijungti prie NSS. Pamačiau, kad įjungtas telefonas dirba režimu „Normal“ ir jį galima pervesti į „Local“ bei „Test“ servisinius režimus ir tada atsipūtus dirbti su atmintimi. Nusiskaičiau ją į failą.
Programoje pagal nutylėjimą nurodytos 0-500 atminties sekcijos, todėl tiek ir nusikopijavau. Džiaugiausi, jog programa nuskaito duomenis į pagal sekcijas ir ląsteles suskaidytą failą, kas žymiai supaprastina jo skaitomumą. Keletą kartų peržiūrėjęs jį ir paieškojęs kombinacijos „12345“ nieko gero neradau. Tuomet kilo mintis pasikeisti kodą į kitą ir sulyginti du gautus EEPROM dump‘us. Tuo metu labiausiai bijojau, jog skirsis daug duomenų, kurių paskirtis bei formatas man bus visiškai neaiškūs, tačiau netrukus pamačiau skirtumą 35 sekcijoje: joje viename iš atvejų buvo eilutė 0=31323334350000000000, kas atitiktų ASCII lentelės skaičių 12345 kodus ir kodą 54321 atitiko eilutė 0=35343332310000000000. Taigi jau žinojau kur sužinoti telefono kodą, liko išspręsti problemą kaip jį prijungti prie telefono. Štai dabar ėmiau ieškoti informacijos internete, kol radau blogai padėtų nevisai viešų „Nokia“ serviso aprašymų. Juose buvo daug gudrių elektroninių schemų, kurios man realiai nieko nesakė, bet vienoje iš jų kaip supratau buvo paaiškinta kaip telefonas perjungiamas į „Test“ režimą. Tam, anot gamintojų, reikalinga speciali baterija. Tačiau telefono prtvedimui į „Test“ režimą namų sąlygomis užtenka 8,2 kOm varžos, ir truputėlio lipnios juostos. Reikiamo nominalo varža atsitiktinai buvo mano elektronikos detalių dėžutėje, todėl nedelsdamas užklijavau vidurinį baterijos kontaktą (vadinamą BSI) bei įdėjau varžą tarp neigiamo baterijos kontakto ir BSI. Prijungus kabelį ir įjungus telefoną jo ekrane užsidegė ilgai lauktas užrašas „Test mode“ ir NSS sėkmingai nuskaitė [35] sektorių, kuriame puikavosi 0=36333934350000000000. Beliko ištraukti varžą ir įvesti tą prakeiktą „Lock“ kodą.
Nors rašydamas šį tekstą nesitikėjau daryti kažkokių išvadų, tačiau pakeliui visgi sugalvojau keletą. Pirmas dalykas, kurį norėtųsi pabrėžti yra tas, kad nors šiuolaikiniai mobilieji telefonai vagystės atveju turi galimybę užsiblokuoti iš nuotolio ar pakeitus SIM kortelę, tačiau ši apsauga realizuojama labai primityviai. Tai aišku padės apsisaugoti nuo skaityti nemokančio narkomano (jei liksi gyvas), tačiau realiam duomenų saugumui užtikrinti reikėtų naudoti papildomas priemones. Saugumas tai visuomet kompromisas, todėl gamintojai palieka kelią išblokuoti telefoną ir pasinaudoti jame esančiais duomenimis, jeigu vartotojas tiesiog pamirštų saugos kodą.
Kitas dalykas yra tai, kad bet kokios tikrai naudingos žinios, nors ir ilgai nenaudotos, padeda orientuotis nepažįstamoje aplinkoje. Taip pat panašiomis problemomis reikėtų rūpintis iš anksto, kol telefonas dar veikia. Tam galima panaudoti specializuotą programinę įrangą ar tiesiog nunešti telefoną į garantinio aptarnavimo skyrių, kas gali būti nepriimtina tokiose situacijose kaip mano. Svarbiausia, kad spėjau pamiegoti ilgas 3 valandas.