Nuo to laiko, kai pirmasis asmuo išspausdino skaičiuoklę 5318008, "nerds" slepia slaptus numerius jūsų kompiuteryje ir juos naudoja derėtis dėl slaptų rankos tarp programų ir failų. Šiandien mes greitai pažvelgime į kai kuriuos įdomius pavyzdžius.
Dauguma programavimo kalbų naudoja 32 bitų natūralų skaičių, atstovaujantį tam tikrus duomenų tipus už siužetų - vidinis numeris saugomas RAM atmintyje arba CPU naudojamas kaip 32 taškai ir nuliai, tačiau šaltinio kodu jis būtų išrašomas arba įprastu dešimtainiu formatu, arba kaip šešioliktainis formatas, kuris naudoja skaičiai nuo 0 iki 9 ir raidės nuo A iki F.
Kai operacinė sistema ar programa nori nustatyti failo tipą, gali atrodyti, kad failo pradžioje yra specialus žymeklis, nurodantis failo tipą. Pavyzdžiui, PDF failas gali prasidėti šešiabriaunio verte 0x255044462D312E33, kuris lygus "% PDF-1.3" ASCII formatu, arba ZIP failas prasideda nuo 0x504B, kuris lygus "PK", kuris nusileidžia iš originalios PKZip programos. Žvelgiant į šį "parašą", failo tipas gali būti lengvai identifikuojamas net ir be jokių kitų metaduomenų.
Sudėtiniai Java klasės failai prasideda CAFEBABE
"Linux" įrankis "failas" gali būti naudojamas iš terminalo, siekiant nustatyti tipą failo - iš tikrųjų jis skaito magijos numerius iš failo, vadinamo "magija".
Kai programa nori paskambinti funkcijai, ji gali perduoti į šią funkciją vertes, naudodama standartinius tipus, tokius kaip sveikasis skaičius, kuris gali būti išreikštas šaltinio kodas šešioliktainiu formatu. Tai ypač pasakytina apie konstantas, kuris yra identifikatorius, apibrėžtas žmogaus skaitomuose varduose, pvz., AUTOSAVE_INTERVAL, tačiau jie nurodo faktinius sveikuosius (ar kitokio tipo) vertes. Taigi vietoj to, kad programuotojas įveda tokią vertę kaip 60 kiekvieną kartą, kai jie vadina funkciją šaltinio kodu, jie galėtų naudoti AUTOSAVE_INTERVAL konstantą, kad būtų lengviau juos skaityti. (Konstantai paprastai yra lengvai atpažįstami, nes jie yra parašyti visais didžiosiomis raidėmis). Visi šie pavyzdžiai gali būti priskiriami Magic Numbers, nes gali prireikti tam tikro šešioliktainio skaičiaus, kad funkcija ar failo tipas veiktų tinkamai ... jei vertė neteisinga, ji neveiks. Kai programuotojas nori šiek tiek įdomus, jie gali apibrėžti šias reikšmes naudodamiesi šešioliktainiais skaičiais, kurie paaiškina kažką anglų kalba, kitaip vadinama hexspeak.
Pramogos su magiškais numeriais: kai kurie žinomi pavyzdžiai
Jei greitai pažvelgsite į "Linux" šaltinio kodą, pamatysite, kad sisteminis "_reboot ()" skambutis "Linux" reikalauja perduoti "magišką" kintamąjį, kuris lygus šešioliktainiam skaičiui 0xfee1dead. Jei kažkas bandė skambinti šia funkcija, pirmiausia nepatekdamas tokios magijos vertės, tai tik grąžina klaidą.
GPT skaidinio schemos GUID (globaliai unikalus identifikatorius) yra 21686148-6449-6E6F-744E -656564454649, kuris sudaro ASCII eilutę "Hah! IdontNeedEFI" - aliuziją į tai, kad GPT paprastai būtų naudojamas kompiuteriuose, kurie pakeitė BIOS su UEFI, bet tai nebūtinai turi būti.
Microsoft smarkiai paslėpė 0x0B00B135 jų "Hyper-V" virtualioje mašinoje, palaikančiame "Linux" pateiktą kodą, jie pakeitė reikšmę į 0xB16B00B5 ir galiausiai pakeitė jį iki dešimtainio, kol jis iš pradžių buvo pašalintas iš šaltinio kodo.
Daugiau įdomių pavyzdžių yra:
0xbaaaaaad - naudojama "iOS" avarijų žurnale, kad būtų rodoma, kad žurnalas yra visos sistemos stackshot'as.
Patirties pavyzdžių peržiūra
Kaip papildomą pavyzdį atkūrimo vaizdai "Android" telefonams, pavyzdžiui, "ClockworkMod" pradėkite nuo "ANDROID!", jei skaitoma ASCII formatu.
Pastaba:
nieko nekeisdami, kai žiūrite. Hex redaktoriai gali sugadinti dalykus!
Kaip perkelti kontaktus iš iPhone į kitą telefoną
Jūsų "iPhone" kontaktai automatiškai ateina su jumis į naują telefoną - darant prielaidą, kad naujas telefonas yra "iPhone", jūs kuriate atsargines kopijas kontaktams "iCloud", ir jūs naudojate tą pačią iCloud sąskaitą abiejuose telefonuose. Bet viskas tampa šiek tiek sudėtingesnė, jei norite ką nors padaryti dar.
ĮSpėjimas: jūsų "Android" telefono interneto naršyklė tikriausiai nesulaukia saugos naujinių
4.3 Ir senesnėse versijose esančios interneto naršyklės turi daugybę didelių saugumo problemų, o "Google" nebebus ją pataisyti. Jei naudojate įrenginį su "Android 4.3" "Jelly Bean" arba anksčiau, turite imtis veiksmų. Ši problema yra nustatyta 4.4 ir 5.0 versijose, bet daugiau nei 60 procentų "Android" įrenginių įstrigo įrenginiuose, kurie negaus jokių Kodėl "Google" nepakeičia "Android 4.