- Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você 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)
- **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** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **Compartilhe seus truques de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
Um shellcode é um pequeno pedaço de código que é usado como carga útil em uma exploração de software. O objetivo de um shellcode é fornecer ao invasor acesso remoto ao sistema comprometido. O shellcode é geralmente escrito em linguagem assembly e é executado diretamente na memória do sistema. Ele pode ser injetado em um processo em execução ou pode ser usado para criar um arquivo malicioso que, quando executado, executa o shellcode.
Durante a depuração, o GDB terá **endereços ligeiramente diferentes dos usados pelo binário quando executado.** Você pode fazer com que o GDB tenha os mesmos endereços fazendo o seguinte:
Quando você tem um binário **linkado estaticamente**, todas as funções pertencerão ao binário (e não a bibliotecas externas). Nesse caso, será difícil **identificar o fluxo que o binário segue para, por exemplo, solicitar entrada do usuário**.\
Você pode facilmente identificar esse fluxo **executando** o binário com **gdb** até que seja solicitada a entrada. Em seguida, pare com **CTRL+C** e use o comando **`bt`** (**backtrace**) para ver as funções chamadas:
**Ghidra** é muito útil para encontrar o **deslocamento** para uma **sobrecarga de buffer graças à informação sobre a posição das variáveis locais.**\
Por exemplo, no exemplo abaixo, uma sobrecarga de buffer em `local_bc` indica que você precisa de um deslocamento de `0xbc`. Além disso, se `local_10` for um cookie canário, isso indica que para sobrescrevê-lo a partir de `local_bc`, há um deslocamento de `0xac`.\
_Lembre-se de que os primeiros 0x08 de onde o RIP é salvo pertencem ao RBP._
Dentro da pasta do IDA, você pode encontrar binários que podem ser usados para depurar um binário dentro de um Linux. Para fazer isso, mova o binário _linux\_server_ ou _linux\_server64_ para dentro do servidor Linux e execute-o dentro da pasta que contém o binário:
- Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você 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)
- **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** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@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)**.