Naucite i vežbajte hakovanje AWS-a:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Naucite i vežbajte hakovanje GCP-a: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
Na primer, **8-bitni neoznaceni ceo broj** može predstavljati vrednosti od **0 do 255**. Ako pokusate da sacuvate vrednost 256 u 8-bitnom neoznacenom celom broju, ona se obavija nazad na 0 zbog ogranicenja njegove kapaciteta za cuvanje. Na isti nacin, za **16-bitni neoznaceni ceo broj**, koji može držati vrednosti od **0 do 65,535**, dodavanje 1 na 65,535 ce obaviti vrednost nazad na 0.
Pored toga, **8-bitni označeni ceo broj** može predstavljati vrednosti od **-128 do 127**. To je zato što se jedan bit koristi za predstavljanje znaka (pozitivan ili negativan), ostavljajuci 7 bitova za predstavljanje velicine. Najnegativniji broj je predstavljen kao **-128** (binarno `10000000`), a najpozitivniji broj je **127** (binarno `01111111`).
Integer overflow occurs when an arithmetic operation results in a value that exceeds the maximum size that the data type can hold. This can lead to unexpected behavior in the program, such as wrapping around to a minimum value or causing a buffer overflow. Integer overflow can be exploited by an attacker to manipulate the program's behavior and potentially execute malicious code.
Razmotrite situaciju u kojoj se potpisani ceo broj čita iz korisničkog unosa, a zatim koristi u kontekstu koji ga tretira kao nepotpisani broj, bez odgovarajuće validacije:
U ovom primeru, ako korisnik unese negativan broj, biće tumačen kao veliki neoznačeni broj zbog načina tumačenja binarnih vrednosti, što potencijalno može dovesti do neočekivanog ponašanja.
* Koristi se samo 1B za čuvanje veličine lozinke, pa je moguće prekoračenje i naterati je da misli da je dužina 4, dok je zapravo 260, kako bi se zaobišla provera dužine
* Koristi se samo 1B za čuvanje veličine lozinke, pa je moguće prekoračenje i naterati je da misli da je dužina 4, dok je zapravo 260, kako bi se zaobišla provera dužine i prepisala sledeća lokalna promenljiva na steku i zaobišla obe zaštite
Ovo **se ne menja u ARM64** kao što možete videti u [**ovom blog postu**](https://8ksec.io/arm64-reversing-and-exploitation-part-8-exploiting-an-integer-overflow-vulnerability/).