
encontre endereços base de DLL sem PEB WALK
Esta biblioteca Rust e ferramenta CLI demonstra um método alternativo para encontrar o endereço base de DLLs carregadas sem usar uma caminhada pelo Process Environment Block (PEB). Essa técnica é particularmente útil em cenários onde a caminhada pelo PEB pode ser detectada ou bloqueada.
winapi e VirtualQuery para validação de memórialib.rs) não têm instruções de impressão para integração limpamain.rs) inclui saída de depuração para prova de conceitoVirtualQueryAmbos os branches são seguros de usar, mas o branch OPSEC oferece benefícios adicionais de segurança operacional para cenários onde chamadas de API podem ser monitoradas ou bloqueadas.
O programa usa uma abordagem de caminhada de pilha (stack walking) para localizar DLLs ao:
Acessando o Thread Environment Block (TEB):
Caminhada de Pilha (Stack Walking):
VirtualQuery para validar regiões de memóriaIdentificação de Módulo:
Validação:
Métodos tradicionais de encontrar DLLs geralmente envolvem percorrer a lista de módulos do PEB. Embora eficazes, essa abordagem pode ser:
Este método de caminhada de pilha oferece uma alternativa que:
winapiAdicione ao seu Cargo.toml:
Branch Principal:
[dependencies]
moonwalk = { git = "https://github.com/Teach2Breach/moonwalk.git" }
Branch OPSEC:
[dependencies]
moonwalk = { git = "https://github.com/Teach2Breach/moonwalk.git", branch = "opsec" }
Exemplo de uso no seu código:
use moonwalk::find_dll_base;
fn main() {
// Find ntdll.dll
if let Some(ntdll_base) = find_dll_base("ntdll.dll") {
println!("ntdll.dll base: 0x{:X}", ntdll_base);
}
// Case-insensitive, .dll extension optional
if let Some(kernel32_base) = find_dll_base("KeRNEl32") {
println!("kernel32.dll base: 0x{:X}", kernel32_base);
}
}
Compile:
cargo build --release
Execute:
# Find ntdll.dll (default)
cargo run --release
# Find specific DLL (case insensitive, .dll extension optional)
cargo run --release kernel32.dll
cargo run --release KeRNEl32
cargo run --release USER32
Instruções de impressão não estão mais incluídas. Esta imagem é incluída para fins educacionais.

VirtualQuery para validação segura de acesso à memória