Bralci, kot ste vi, pomagajo podpirati MUO. Ko opravite nakup prek povezav na našem spletnem mestu, lahko zaslužimo partnersko provizijo. Preberi več.

Inženirji morajo včasih razmišljati obratno, da analizirajo izdelek. Strojni inženir lahko na primer sklepa o proizvodnji izdelka na podlagi njegove zasnove in fizikalnih lastnosti. Morda bodo celo sposobni izdelati isti izdelek, če ga bodo temeljito razumeli.

Povratni inženiring lahko primerjate tudi z dokazi matematičnih enačb. Torej, kako se uporablja obratni inženiring?

Kaj je obratno inženirstvo?

Povratni inženiring je postopek analiziranja sistema z namenom njegove reprodukcije ali izboljšave. Če pogledate delovna področja obratnega inženiringa, lahko vidite, da ga lahko uporabite za veliko različnih namenov. Če na to pogledate z vidika kibernetske varnosti, je z metodami povratnega inženiringa mogoče izvesti naslednje operacije:

  • Izvorna analiza neodprtokodne programske opreme
  • Analiza ranljivosti
  • Analiza zlonamerne programske opreme
  • Razpoke in popravki
instagram viewer

Vidite lahko povratni inženiring, ki se danes uporablja celo v računalniških igrah. Na primer, razvijalci pogosto ustvarjajo modifikacije programske opreme z metodami obratnega inženiringa.

Na področju obratnega inženiringa obstajata dve različni metodi analize: statična in dinamična. Statično analizo izvedete, ko analizirate program, ne da bi ga dejansko zagnali. Po drugi strani pa metoda dinamične analize zahteva, da zaženete program, da opazujete njegovo vedenje in podatke, ki jih uporablja.

Toda preden izvedete analizo za obratno inženirstvo, morate vedeti nekaj pomembnih izrazov kako deluje računalniška arhitektura.

Glavni deli računalniške arhitekture

Povratni inženiring je praktično nemogoč, če ne razumete računalniške arhitekture. Preučiti morate štiri glavne dele:

  • Vnos: Nabor metod za vnos podatkov.
  • procesor: CPE obdela vhodne podatke in jih posreduje svojim lastnikom. Je centralna procesna enota.
  • Spomin: prostor, ki začasno hrani podatke med obdelavo.
  • Izhod: Rezultat, ki ga vidi končni uporabnik.

Vse te glavne težave si lahko zapomnite s primerom, ko na primer pritisnete črko A na tipkovnici. Ko ga pritisnete, se zgodi vnosni dogodek. Po tej stopnji procesor obdela podatke in za njihovo shranjevanje uporabi majhen prostor v pomnilniku. Končno boste na zaslonu videli črko A, ki bo končala postopek z izhodom.

Potopite se v globino procesorja

Če res želite postati strokovnjak za povratno inženirstvo in se poglobiti v to temo, morate imeti podrobno znanje o strojni opremi, jezikih nizke ravni in še posebej CPE. Ključne teme, ki jih boste morali vedeti o CPU, so:

  1. Kontrolna enota: Ta je odgovoren za obdelavo podatkov v CPE in njihov prenos v ustrezna polja. To enoto si lahko predstavljate kot mehanizem za nadzor usmerjanja.
  2. ALU: To pomeni aritmetično logično enoto. Tu se izvajajo nekatere aritmetične in logične operacije. Če se poglobite v matematiko, boste videli, da so osnovne štiri operacije v bistvu različice seštevanja. Torej ALU temelji na združevanju. Na primer, odšteti dva od tri je enako kot dodati minus dva k tri.
  3. Registri: To so območja znotraj procesorja, ki hranijo obdelane podatke. Obstajajo različne vrste registrov, podobno kot obstajajo različne vrste spremenljivk v programskem jeziku. Register je odgovoren za vzdrževanje vrste in atributov podatkov, ki so mu dodeljeni.
  4. Signali: Če želite, da CPE izvaja več različnih operacij hkrati, je potrebna neka metoda za njihovo organizacijo. Elementi, ki to počnejo, se imenujejo signali. Vsaka transakcija deluje v skladu s signali, ki zagotavljajo, da ne moti drugega procesa.
  5. Avtobus: pot, ki jo uporabljajo podatki za premikanje iz ene enote v drugo. Upoštevajte, kako ime nakazuje prevoz.

Koncepti, ki jih boste pogosto slišali pri vzvratnem inženirstvu

Razumevanje, kako CPE obdeluje podatke in jih shranjuje v pomnilnik, poleg koncepta registrov, je lahko zelo koristno pri obratnem inženirstvu. Za boljše razumevanje koncepta pomnilnika lahko uporabite spodnji diagram:

Nazadnje, za analizo obratnega inženiringa morate poznati nekaj osnovnih pojmov o registrih. So ena od tem, na katere se boste najbolj osredotočili. Tukaj je nekaj razlag o podatkih, kazalcih in indeksnih registrih, ki vam bodo koristna na najbolj jedrnat način:

  • 1. EAX: Okrajšava za register akumulatorjev. Običajno shrani podatke, ki tukaj spadajo v kategorijo aritmetičnih operacij.
  • 2. EBX: Okrajšava za osnovni register. Ima vlogo pri posrednem naslavljanju.
  • 3. EDX: Okrajšava za register podatkov. EDX pomaga drugim registrom.
  • 4. EIP: Kazalec navodil. Vsebuje naslov domene za izvajanje.
  • 5. ESP: Vsebuje osnovni naslov.
  • 6. ESI: Vsebuje informacije o izvornem indeksu.
  • 7. EDI: Ohranja informacije o ciljnem indeksu.

Vse to bi morali raziskati ločeno, da bi razumeli njihove nianse. Toda če pogledate osnove in poskusite razumeti poslovno logiko, bo analiza kode za obratno inženirstvo precej enostavna, ne glede na arhitekturo procesorja, s katero delate.

Povratni inženiring se pogosto začne s strojno kodo. Morda boste razumeli veliko zgornjih izrazov, če ste seznanjeni s sestavljanjem ali ga obvladate 32-bitne ali 64-bitne procesorske arhitekture. Če se želite sestavljanja naučiti od začetka, bo to izjemno koristno pri obratnem inženirstvu.

Kaj boste storili z vsem tem?

Če dobro poznate obratno inženirstvo, lahko analizirate kodo ne glede na operacijski sistem ali procesorsko arhitekturo, s katero delate. Na primer, mogoče je najti krekane različice številnih programov ali računalniških iger. To je popolnoma nezakonita metoda.

Vendar, če nameravate biti etični strokovnjak za kibernetsko varnost, boste morali uporabiti povratne inženirje, da boste razumeli, zakaj se ti vlomljeni programi vdrejo. Če želite napredovati v obratnem inženiringu ali šele začenjate, bi bila dobra izbira, če bi poskušali izvedeti več o razmerju med strojno opremo in strojno kodo.