tutorial funciones con clase winapi

winapi - funciones - Encontrar API indocumentadas en Windows



winapi con clase pdf (5)

IDA Pro es su mejor opción aquí, pero por favor doble, por favor no los use para nada.

Son internos porque cambian; ellos pueden (y lo hacen) incluso cambiar como resultado de un Hotfix, por lo que ni siquiera está garantizado que su API no documentada funcionará para la versión del SO específico y el nivel del Service Pack para el que lo escribió. Si envía un producto como ese, está viviendo en un tiempo prestado.

Tenía curiosidad sobre cómo encontrar una API indocumentada en Windows.

Conozco los riesgos que conlleva usarlos, pero esta pregunta se centra en encontrarlos y no en utilizarlos o no.


Observe los archivos DLL del sistema y las funciones que exportan. Cada función API, documentada o no, se exporta en uno de ellos (usuario, kernel, ...).


Para las API de modo de usuario, puede abrir Kernel32.dll User32.dll Gdi32.dll, especialmente ntdll.dll en dependancecy walker y encontrar todas las API exportadas. Pero no tendrás la documentación por supuesto.

Acabo de encontrar un buen artículo sobre Native APIS por Mark Russinovich


Todo el mundo aquí hasta ahora está perdiendo alguna funcionalidad sustancial que comprende porciones enormemente no documentadas del sistema operativo Windows RPC . Las operaciones RPC (think rpcrt4.dll, lsass.exe, csrss.exe, etc ...) ocurren con mucha frecuencia en todos los subsistemas, a través de puertos LPC u otras interfaces, su funcionalidad está enterrada en los encantamientos de misticismo de varios tipos / subtipos / struct-typedef, etc., que son sustancialmente más difíciles de depurar, debido a la naturaleza asíncrona o al hecho de que están destinados a procesos, que si depurara mediante pasos individuales o lo que tiene, encontraría todo el sistema bloqueo debido al bloqueo del teclado u otras E / S desde que se pasa;)

ReactOS es probablemente la forma más conveniente de investigar la API no documentada. Tienen un núcleo bastante maduro y otros ejecutivos construidos. IDA requiere bastante tiempo y es poco probable que encuentre algo que la gente de ReactOS aún no tenga.

Aquí hay una propaganda de la página enlazada;

ReactOS® es un sistema operativo gratuito y moderno basado en el diseño de Windows® XP / 2003. Escrito completamente desde cero, pretende seguir la arquitectura de Windows® diseñada por Microsoft desde el nivel de hardware hasta el nivel de aplicación. Este no es un sistema basado en Linux, y no comparte ninguna arquitectura de Unix.

El objetivo principal del proyecto ReactOS es proporcionar un sistema operativo que sea compatible con Windows. Esto permitirá que sus aplicaciones y controladores de Windows se ejecuten como lo harían en su sistema Windows. Además, se usa la apariencia del sistema operativo Windows, de modo que las personas acostumbradas a la interfaz de usuario familiar de Windows® encontrarían que usar ReactOS de manera directa. El objetivo final de ReactOS es permitirle eliminar Windows® e instalar ReactOS sin que el usuario final note el cambio.

Cuando estoy investigando una construcción de Windows raramente vista, ReactOS suele ser la única referencia creíble.


Utilice una herramienta para volcar la tabla de exportación desde una biblioteca compartida (por ejemplo, un .dll como kernel32.dll). Verá los puntos de entrada nombrados y / o los puntos de entrada ordinales. En general, para ventanas, los puntos de entrada nombrados están desactivados (extern "C"). Lo más probable es que necesite echar un vistazo al código de ensamblado y derivar los parámetros (tipos, números, orden, convención de llamadas, etc.) del marco de pila (si hay uno) y registrar el uso. Si no hay un marco de pila, es un poco más difícil, pero todavía factible. Vea los siguientes enlaces para referencias:

  1. http://www.sf.org.cn/symbian/Tools/symbian_18245.html
  2. http://msdn.microsoft.com/en-us/library/31d242h4.aspx

Consulte herramientas como dumpbin para investigar las secciones de exportación.

También hay sitios y libros que intentan mantener una lista actualizada de las API de Windows no documentadas:

  1. Las funciones indocumentadas
  2. Una guía de la arquitectura de Windows
  3. Cómo encontrar las constantes indocumentadas utilizadas por las funciones de la API de Windows
  4. Windows sin documentar
  5. API de Windows

Editar: Estos mismos principios funcionan en una gran cantidad de sistemas operativos; sin embargo, deberá reemplazar la herramienta que está utilizando para volcar la tabla de exportación. Por ejemplo, en Linux puede usar nm para volcar un archivo de objeto y listar su sección de exportaciones (entre otras cosas). También puede usar gdb para establecer puntos de interrupción y recorrer el código de ensamblaje de un punto de entrada para determinar cuáles deberían ser los argumentos.