Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

Lai analizētu produktu, inženieriem dažreiz ir jādomā otrādi. Piemēram, mehāniķis var izdarīt secinājumus par produkta ražošanu, pamatojoties uz tā dizainu un fizikālajām īpašībām. Viņi pat var ražot to pašu produktu, ja viņiem ir pilnīga izpratne par to.

Varat arī salīdzināt reverso inženieriju ar matemātisko vienādojumu pierādīšanu. Tātad, kā tiek izmantota reversā inženierija?

Kas ir reversā inženierija?

Reversā inženierija ir sistēmas analīzes process, lai to reproducētu vai uzlabotu. Ja paskatās uz reversās inženierijas darba jomas, jūs varat redzēt, ka varat to izmantot daudziem dažādiem mērķiem. Ja paskatās no kiberdrošības perspektīvas, ar reversās inženierijas metodēm ir iespējams veikt šādas darbības:

  • Neatvērtā pirmkoda programmatūras avotu analīze
  • Neaizsargātības analīze
  • Ļaunprātīgas programmatūras analīze
  • Krekinga un lāpīšana

Jūs varat redzēt reverso inženieriju, ko mūsdienās izmanto pat datorspēlēs. Piemēram, izstrādātāji bieži veido programmatūras modifikācijas, izmantojot reversās inženierijas metodes.

instagram viewer

Reversās inženierijas jomā ir divas dažādas analīzes metodes: statiskā un dinamiskā. Jūs veicat statisku analīzi, kad analizējat programmu, to faktiski nepalaižot. Savukārt dinamiskās analīzes metodei ir jāpalaiž programma, lai novērotu tās darbību un tās izmantotos datus.

Taču, pirms veicat reversās inženierijas analīzi, jums jāzina daži svarīgi termini kā darbojas datoru arhitektūra.

Datoru arhitektūras galvenās daļas

Reversā inženierija ir praktiski neiespējama, ja vien nesaprotat datora arhitektūru. Jums ir jāizpēta četras galvenās daļas:

  • Ievade: metožu kopums datu ievadīšanai.
  • Procesors: CPU apstrādā ienākošos datus un pārsūta tos saviem īpašniekiem. Tas ir centrālais procesors.
  • Atmiņa: vieta, kurā apstrādes laikā īslaicīgi glabājas dati.
  • Izvade: rezultāts, ko redz gala lietotājs.

Varat paturēt prātā visas šīs galvenās problēmas, izmantojot piemēru, piemēram, kad nospiežat tastatūras burtu A. Nospiežot to, notiek ievades notikums. Pēc šī posma CPU apstrādā datus un izmanto nelielu vietu atmiņā, lai tos uzglabātu. Visbeidzot, ekrānā redzēsit burtu A, kas beidzas ar izvadi.

Ienirstiet CPU dziļumos

Ja jūs patiešām vēlaties kļūt par reversās inženierijas ekspertu un dziļi ienirt šajā tēmā, jums ir jābūt detalizētām zināšanām par aparatūru, zema līmeņa valodām un jo īpaši par centrālo procesoru. Galvenās tēmas, kas jums jāzina par CPU, ir šādas:

  1. Kontroles vienība: Tas ir atbildīgs par datu apstrādi CPU un to pārsūtīšanu uz attiecīgajiem laukiem. Šo ierīci var uzskatīt par maršrutēšanas kontroles mehānismu.
  2. ALU: tas apzīmē aritmētiskās loģikas vienību. Šeit notiek dažas aritmētiskās un loģiskās darbības. Ja iedziļināsities matemātikā, jūs redzēsit, ka četras pamata darbības būtībā ir saskaitīšanas variācijas. Tātad ALU pamatā ir apkopošana. Piemēram, atņemt divus no trīs ir tas pats, kas pievienot mīnus divus pret trīs.
  3. Reģistri: tie ir apgabali CPU iekšpusē, kuros glabājas apstrādātie dati. Ir dažādi reģistru veidi, līdzīgi kā programmēšanas valodā ir dažādi mainīgo veidi. Reģistrs ir atbildīgs par tam piešķirto datu veida un atribūtu uzturēšanu.
  4. Signāli: Ja vēlaties, lai centrālais procesors vienlaikus veiktu daudzas dažādas darbības, ir nepieciešama kāda to organizēšanas metode. Elementus, kas to dara, sauc par signāliem. Katrs darījums darbojas saskaņā ar signāliem, kas nodrošina, ka tas netraucē citam procesam.
  5. Autobuss: ceļš, ko izmanto dati, lai pārvietotos no vienas vienības uz citu. Ņemiet vērā, kā nosaukums norāda uz transportu.

Jēdzieni, kurus bieži dzirdēsit reversajā inženierijā

Izpratne par to, kā CPU apstrādā datus un saglabā tos atmiņā, līdzās reģistru koncepcijai var būt ļoti noderīga, veicot reverso inženieriju. Jo īpaši varat izmantot tālāk redzamo diagrammu, lai labāk izprastu atmiņas jēdzienu:

Visbeidzot, lai veiktu reversās inženierijas analīzi, jums jāzina daži reģistru pamatjēdzieni. Tās ir viena no tēmām, kurām pievērsīsities visvairāk. Šeit ir daži skaidrojumi par datiem, rādītājiem un indeksu reģistriem, kas jums noderēs visīsākajā veidā.

  • 1. EAX: apzīmē akumulatoru reģistru. Tas parasti saglabā datus, kas šeit ietilpst aritmētisko darbību kategorijā.
  • 2. EBX: apzīmē bāzes reģistru. Tam ir nozīme netiešajā adresēšanā.
  • 3. EDX: apzīmē datu reģistru. EDX palīdz citiem reģistriem.
  • 4. EIP: instrukciju rādītājs. Satur tā domēna adresi, kuru palaist.
  • 5. ESP: saglabā bāzes adresi.
  • 6. ESI: satur avota indeksa informāciju.
  • 7. EDI: saglabā mērķa indeksa informāciju.

Jums vajadzētu to visu izpētīt atsevišķi, lai saprastu to nianses. Bet, ja aplūkojat pamatus un mēģināt izprast biznesa loģiku, neatkarīgi no tā, ar kādu procesora arhitektūru jūs strādājat, koda analīze reversās inženierijas vajadzībām būs diezgan vienkārša.

Reversā inženierija bieži sākas ar mašīnkodu. Jūs varētu saprast daudzus no iepriekš minētajiem terminiem, ja esat pazīstams ar montāžu vai pārvaldāt to 32 bitu vai 64 bitu procesoru arhitektūras. Ja vēlaties apgūt montāžu no paša sākuma, tā būs ārkārtīgi noderīga reversajā inženierijā.

Ko tu darīsi ar šo visu?

Ja jums ir labas zināšanas par reverso inženieriju, varat veikt koda analīzi neatkarīgi no tā, ar kādu operētājsistēmu vai procesora arhitektūru strādājat. Piemēram, ir iespējams atrast daudzu programmu vai datorspēļu uzlauztas versijas. Šī ir pilnīgi nelikumīga metode.

Tomēr, ja jūs gatavojaties būt ētiskas kiberdrošības profesionālis, jums būs jāizmanto reversie inženieri, lai saprastu, kāpēc šīs uzlauztās programmas tiek uzlauztas. Ja vēlaties virzīties uz priekšu reversajā inženierijā vai tikai sāciet to, tā būtu laba izvēle, ja mēģinātu uzzināt par saistību starp aparatūru un mašīnkodu.