Árvores Balanceadas: Treap e FHQ Treap

Árvores binárias de busca (BST) são eficientes quando balanceadas, mas podem degenerar em uma lista encadeada se os dados forem enseridos em ordem. Para resolver esse problema, surgem as árvores balanceadas, que mantêm a altura próxima de O(log n) através de rotações ou operações de divisão e mesclagem. Neste artigo, exploramos duas variantes p ...

Publicado em 7-5 02:45

Casa do Banana: Exploração de Vulnerabilidades em GLIBC

Versões aplicáveis: 2.23 até a mais recente 2.36 (nas versões 2.27 e abaixo não é possível realizar operações de leitura, escrita e execução (orw), mas nas versões superiores é possível, pois apenas a partir da versão 2.27 é possível controlar o rdx e utilizar setcontext para realizar orw) Condições de exploração: Possibilidade de escrever um ...

Publicado em 6-26 04:19

Estrutura de Memória na Máquina Virtual Java

A máquina virtual Java (JVM) gerencia diversas áreas de memória em tempo de execução. Estas áreas são divididas entre regiões compartilhadas entre threads e regiões privadas para cada thread. Áreas de Dados em Tempo de Execução As principais regiões incluem o contador de programa, a pilha de máquina virtual, a pilha de métodos nativos, o heap e ...

Publicado em 6-17 03:21

C++ STL: Algoritmos com Estrutura Modular

Algoritmos de Consulta (Não Modificadores) Esses algoritmos examinam os elementos sem alterá-los. 1.1 find e find_if find(inicio, fim, valor): retorna um iterador para o primeiro elemento igual ao valor fornecido, ou fim se não encontrado. find_if(inicio, fim, predicado): retorna o primeiro elemento que satisfaz o predicado. find_end(inicio ...

Publicado em 6-12 18:29

Gerenciamento de Memória na JVM com Exemplos Práticos em Java

Componentes da Memória de Execução da JVM A Java Virtual Machine (JVM) organiza a memória de forma a otimizar a execução de programas Java. Compreender como essa memória é estruturada e gerenciada é fundamental para o desenvolvimento de aplicações eficientes e robustas. As principais áreas de memória de tempo de execução na JVM são a Pilha (Sta ...

Publicado em 6-5 20:22

Usando a extensão libheap para GDB na análise de heap

Esta extensão foi desenvolvida para Python 3, mas o ambiente GDB em uso possuía Python 2 integrado. Para resolver essa incompatibilidade, seria necessário recompilar o GDB com a opção --with-python, apontadno para o interpretador Python 3 correto. Ao tentar utilizar o comando heapls, observa-se que parte das funcionalidades operou, porém com er ...

Publicado em 6-1 17:30