Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
dotNIET — Plugin para IDA Pro que importa símbolos resueltos en tiempo de ejecución en binarios .NET Native, analizando SharedLibrary.dll y su PDB para restaurar las importaciones que faltan para el análisis. | Kitploit
Herramientas/GitHubGitHub/synacktiv/dotniet
Análisis EstáticoIngeniería InversaAnálisis de Binarios
GitHubsynacktiv/dotniet

dotNIET

Plugin para IDA Pro que importa símbolos resueltos en tiempo de ejecución en binarios .NET Native, analizando SharedLibrary.dll y su PDB para restaurar las importaciones que faltan para el análisis.

Ver Repositorio
11211hace 5 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
vladimir    

.NIET

Texto alternativo

.NIET es un plugin de IDA Pro. Su propósito es importar símbolos faltantes (normalmente unos pocos miles) que son resueltos en tiempo de ejecución por binarios compilados con .NET Native. Estos símbolos se encuentran en SharedLibrary.dll y no son exportados por esta.

.NIET ha sido probado en IDA Pro 7.5 usando python 3.8 en las siguientes plataformas:

  • Windows
  • Linux

Este plugin actualmente soporta las siguientes versiones del framework .NET Native:

  • 1.3
  • 1.6
  • 1.7
  • 2.2

Por favor, abre un issue si encuentras otra versión.

Instalación

Copia estos elementos en el directorio de plugins de tu IDA Pro:

root@kitploit:~
dotNIET_plugin.py
dotNIET\

Dependencias

.NIET depende de pefile para analizar los directorios de recursos.

pefile se puede instalar de la siguiente manera:

root@kitploit:~
pip install pefile

Requisitos

Debido a que los símbolos se importan desde SharedLibrary.dll, este debe ser proporcionado a .NIET junto con su pdb (el plugin busca su ubicación dentro de _NT_SYMBOL_PATH).

Se han implementado funciones auxiliares para identificar las versiones del framework .NET Native y verificar que el pdb de SharedLibrary.dll existe dentro de la ruta de símbolos configurada.

Uso

Texto alternativo

.NIET se puede lanzar usando el atajo Alt-Shift-N o a través del menú Edit/Plugins.

Al iniciarse, el plugin intenta identificar la versión del framework .NET Native del binario actual. Todo lo que tienes que hacer es seleccionar SharedLibrary.dll en la versión correcta y luego hacer clic en Run.

.NIET identificará la versión del framework .NET Native de la dll objetivo y mostrará un mensaje si las versiones no son las mismas. Normalmente, los números de versión Major y Minor son los únicos que importan.

Funcionamiento

.NIET busca la tabla de descriptores de importación personalizados de .NET Native dentro de la sección .rdata. Para ello, lee en desplazamientos específicos de una estructura Custom Header y luego analiza un array de ordinales.

Este array de ordinales apunta a varias ubicaciones dentro de las entradas de la tabla personalizada de SharedLibrary.dll.

La resolución de símbolos se logra lanzando una instancia headless de IDA Pro mediante su binario idat para analizar el pdb de SharedLibrary.dll.

Convención de nombres de los símbolos importados

Los símbolos se importan tal cual si es posible, pero pueden encontrarse algunos casos especiales:

  • a veces las direcciones importadas son únicamente símbolos jmpstubs hacia desplazamientos o instrucciones jmp individuales hacia símbolos. Su nombre de símbolo es reemplazado por .NIET por el nombre de la función objetivo precedido por jmp_
  • algunas direcciones resueltas por el runtime de .NET Native apuntan a símbolos tras múltiples desreferencias. Si .NIET no puede encontrar un símbolo en una dirección importada, intenta desreferenciar hasta encontrar uno. deref_X se añade a este nombre de símbolo, si se encuentra, siendo X el número de desreferencias.
  • algunas direcciones apuntan a desplazamientos dentro de una tabla EETableSection. Siendo nuevo en .NET Native, no tengo idea de qué es esto (¿todavía?), por lo que estas direcciones se etiquetan como EETableSection_XXX, siendo XXX los desplazamientos desde EETableSection dentro de SharedLibrary.dll

Limitaciones conocidas

  • No funciona (todavía) en la versión de IDA Pro para macOS
  • .NIET es bastante lento, ya que requiere analizar el pdb de binarios bastante grandes
  • La opción "restore .idata" (una especie de opción "deshacer") solo desasigna los símbolos importados. Debido a que IDA propaga los nombres de forma automágica durante la importación, probablemente necesitarás volver a ejecutar el auto-análisis si quieres eliminar todos los rastros de los símbolos importados. Una solución alternativa podría ser crear una instantánea de la base de datos antes de ejecutar el plugin.
  • .NIET analiza símbolos únicamente del módulo SharedLibrary.dll, aunque la rutina original encargada de la resolución de símbolos probablemente ofrece la posibilidad de analizar otros módulos (no sé si esto ocurre realmente aparte del módulo SharedLibrary.dll)

Solución de problemas

El archivo de registro de idat está definido en %tmpdir%/dotNIETlogs.txt

Por qué este nombre

Porque hacer reversing de .NET Native es una pesadilla

Descargar herramienta