HAKATEMIA
09Hands-on

Bittioperaatiot

Keskitaso25MIN

Bittioperaatiot

Tähän asti olemme käsitelleet lukuja kokonaisuuksina: lisätty, vähennetty, vertailtu. Mutta prosessori osaa myös pureskella lukuja bitti bitiltä. Bittioperaatiot ovat ydintyökalu lippujen asettamiseen, oikeuksien tarkistamiseen, datan pakkaamiseen ja loputtomaan määrään matalan tason kikkoja, ja reverse engineeringissä törmäät niihin jatkuvasti. AND/OR/XOR-totuustaulut, AND-maskauksen vaiheet ja XOR:n yleiset kikat.

Totuustaulut lyhyesti

Kolme pääoperaatiota toimivat bitti kerrallaan kahden luvun välillä:

  • AND: tulosbitti on 1 vain jos molemmat lähdebitit ovat 1. (1100 AND 1010 = 1000)
  • OR: tulosbitti on 1 jos jompikumpi (tai molemmat) lähdebiteistä on 1. (1100 OR 1010 = 1110)
  • XOR: tulosbitti on 1 jos lähdebitit ovat eri (toinen 1, toinen 0). (1100 XOR 1010 = 0110)

Kaikki kolme kirjoitetaan kahden operandin muodossa, aivan kuten ADD ja SUB:

X86
1AND EAX, EBX     ; EAX = EAX AND EBX
2OR  EAX, 0xFF    ; EAX = EAX OR 0xFF
3XOR EAX, EAX     ; EAX = 0   (tunnettu nollausnikse)
1 / 6
Hakatemia Pro

Hakkeroinnin oppiminen alkaa tästä

Sadat interaktiiviset kurssit, virtuaalilabrat ja CTF-haasteet selaimessasi. Aloita ilmainen kokeilu ilman korttitietoja.