Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
lazy_importer — biblioteca para importar funções de dlls de forma oculta e hostil à engenharia reversa | Kitploit
Ferramentas/GitHubGitHub/justasmasiulis/lazy_importer
Análise EstáticaExploraçãoEngenharia ReversaAnálise de MalwareUtilitários e FrameworksAnálise de BináriosRed TeamingDesenvolvimento de PayloadsAnti-Bot
GitHubjustasmasiulis/lazy_importer

lazy_importer

biblioteca para importar funções de dlls de forma oculta e hostil à engenharia reversa

1.9k2276há 3 anosRevisado pelo Kitploit
Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

lazy importer

Uma biblioteca simples e fácil de usar, apenas com cabeçalho, para tornar a vida de um engenheiro reverso muito mais difícil.

pequeno exemplo

LI_FN(OutputDebugStringA)("hello world");
LI_FN(VirtualProtect).in(LI_MODULE("kernel32.dll").cached());

Saída do IDA ao compilar a primeira linha

recursos

  • Não deixa nenhuma string na memória.
  • Não aloca nenhuma memória.
  • Pode ser facilmente embutida (inlined).
  • Não deixa nenhuma importação no executável.
  • Produz assembly extremamente pequeno.
  • Funções sem cache não deixam nada nas seções de dados.
  • Os hashes são randomizados a cada compilação para derrotar ataques básicos de banco de dados de hash.

documentação

  • LI_FN(function_pointer) -> lazy_function
  • LI_FN_DEF(function_type) -> lazy_function
  • LI_MODULE(module_name) -> lazy_module

  • safe indica que, quando a função não consegue completar sua tarefa com sucesso, 0 é retornado em vez de comportamento indefinido se manifestar.
  • cached indica que o resultado é calculado apenas durante a primeira chamada e reutilizado depois.
  • forwarded indica que o encaminhamento de exportação será resolvido corretamente.

lazy_module

function safe cached
Tenta encontrar o módulo fornecido e retorna seu endereço
get<T = void*>() -> T :x: :x:
safe<T = void*>() -> T :white_check_mark: :x:
cached<T = void*>() -> T :x: :white_check_mark:
safe_cached<T = void*>() -> T :white_check_mark: :white_check_mark:
Tenta encontrar o módulo fornecido usando o ponteiro LDR_DATA_TABLE_ENTRY fornecido
in<T = void*, Ldr>(Ldr ldr_entry) -> T :white_check_mark: :x:
in_cached<T = void*, Ldr>(Ldr ldr_entry) -> T :white_check_mark: :white_check_mark:

lazy_function<F>

function safe cached forwarded
chama a exportação resolvida usando os argumentos fornecidos
operator()(...) -> result_of<F, ...> :x: :x: :x:
tenta resolver uma exportação em todos os módulos carregados e retorna o endereço da função
get<T = F>() -> T :x: :x: :x:
safe<T = F>() -> T :white_check_mark: :x: :x:
cached<T = F>() -> T :x: :white_check_mark: :x:
safe_cached<T = F>() -> T :white_check_mark: :white_check_mark: :x:
forwarded<T = F>() -> T :x: :x: :white_check_mark:
forwarded_safe<T = F>() -> T :white_check_mark: :x: :white_check_mark:
forwarded_cached<T = F>() -> T :x: :white_check_mark: :white_check_mark:
forwarded_safe_cached<T = F>() -> T :white_check_mark: :white_check_mark: :white_check_mark:
tenta resolver uma exportação no módulo fornecido e retorna o endereço da função
in<T = F, A>(A module_address) -> T :x: :x: :x:
in_safe<T = F, A>(A module_address) -> T :white_check_mark: :x: :x:
in_cached<T = F, A>(A module_address) -> T :x: :white_check_mark: :x:
in_safe_cached<T = F, A>(A module_address) -> T :white_check_mark: :white_check_mark: :x:
tenta resolver uma exportação em ntdll e retorna o endereço da função
nt<T = F>() -> T :x: :x: :x:
nt_safe<T = F>() -> T :white_check_mark: :x: :x:
nt_cached<T = F>() -> T :x: :white_check_mark: :x:
nt_safe_cached<T = F>() -> T :white_check_mark: :white_check_mark: :x:

configuração extra

#defineefeitos
LAZY_IMPORTER_NO_FORCEINLINEdesativa o force inlining
LAZY_IMPORTER_CASE_INSENSITIVEativa a comparação sem distinção entre maiúsculas e minúsculas. Pode ser necessário para a resolução de exportações encaminhadas.
LAZY_IMPORTER_CACHE_OPERATOR_PARENSusa cached() em vez de get() no operator() de lazy_function
LAZY_IMPORTER_RESOLVE_FORWARDED_EXPORTSusa forwarded() em get(). AVISO: não se aplica a nt() e in().
LAZY_IMPORTER_HARDENED_MODULE_CHECKSadiciona verificações extras de sanidade à enumeração de módulos.
LAZY_IMPORTER_NO_CPP_FORWARDRemove a dependência do cabeçalho C++ <utility>.

exemplo de saída

Baixar ferramenta