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!
Ar ATA yra tas pats, kaip IDE / PATA ar SATA?
Kai perkate naują kietąjį diską, kartais gali būti šiek tiek painu, kai panaši ar ne tokia panaši terminologija sumaišyti produkto aprašyme. Atsižvelgiant į tai, šiandieninis "SuperUser Q & A" postas turi atsakymą į įdomų skaitytojo klausimą. Šiandienos klausimų ir atsakymų sesija ateina pas mus "SuperUser" - "Stack Exchange", bendruomenės pagrįstos Q & A svetainių grupės, padalinys.
Kaip patikrinti DSLR užraktų skaičių (ir kodėl turėtumėte rūpintis)
Nepirkite nusipirkti naudoto automobilio, nesvarbu, kiek jūdelių jame buvo, ir jūs neturėtumėte pirkti naudojamas DSLR, nežinodamas, kiek paspaudimų yra ant užrakto. Skaitykite toliau, kai paaiškinome, kodėl svarbu DSLR fotoaparato užrakto skaičių ir kaip jį patikrinti. Pastaba: Šiame straipsnyje aprašytus metodus galima patikrinti, ar užrakto skaitiklis yra be veidrodžio fotoaparatuose, pvz.