mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-29 22:43:11 +00:00
84 lines
3.8 KiB
Markdown
84 lines
3.8 KiB
Markdown
|
# Estouro de Inteiro
|
||
|
|
||
|
<details>
|
||
|
|
||
|
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
|
||
|
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||
|
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
|
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
|
||
|
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||
|
* **Compartilhe seus truques de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [repositório hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
||
|
|
||
|
</details>
|
||
|
|
||
|
{% tabs %}
|
||
|
{% tab title="Rust" %}
|
||
|
```rust
|
||
|
fn main() {
|
||
|
|
||
|
let mut quantity = 2147483647;
|
||
|
|
||
|
let (mul_result, _) = i32::overflowing_mul(32767, quantity);
|
||
|
let (add_result, _) = i32::overflowing_add(1, quantity);
|
||
|
|
||
|
println!("{}", mul_result);
|
||
|
println!("{}", add_result);
|
||
|
}
|
||
|
```
|
||
|
{% endtab %}
|
||
|
|
||
|
{% tab title="C" %}
|
||
|
## Integer Overflow
|
||
|
|
||
|
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 application, such as crashes, memory corruption, or even security vulnerabilities.
|
||
|
|
||
|
### Example
|
||
|
|
||
|
```c
|
||
|
#include <stdio.h>
|
||
|
|
||
|
int main() {
|
||
|
unsigned int x = 4294967295; // Maximum value for a 32-bit unsigned integer
|
||
|
x = x + 1;
|
||
|
|
||
|
printf("Value of x: %u\n", x);
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
```
|
||
|
|
||
|
In this example, adding 1 to the maximum value of an unsigned 32-bit integer will result in an integer overflow, causing `x` to wrap around to 0.
|
||
|
|
||
|
To prevent integer overflow, developers should always validate input data, use data types that can accommodate the expected range of values, and implement checks to detect and handle potential overflows.
|
||
|
{% endtab %}
|
||
|
```c
|
||
|
#include <stdio.h>
|
||
|
#include <limits.h>
|
||
|
|
||
|
int main() {
|
||
|
int a = INT_MAX;
|
||
|
int b = 0;
|
||
|
int c = 0;
|
||
|
|
||
|
b = a * 100;
|
||
|
c = a + 1;
|
||
|
|
||
|
printf("%d\n", INT_MAX);
|
||
|
printf("%d\n", b);
|
||
|
printf("%d\n", c);
|
||
|
return 0;
|
||
|
}
|
||
|
```
|
||
|
<details>
|
||
|
|
||
|
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
|
||
|
* Você trabalha em uma **empresa de cibersegurança**? Quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||
|
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
|
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||
|
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||
|
* **Compartilhe seus truques de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [repositório hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
||
|
|
||
|
</details>
|