Siempre me he preguntado cómo encontrar API indocumentada / privada .
Ejemplo: la API indocumentada / privada de Apple , Play Station , Windows Phone 7 , Win32 Kernel , API de Windows , devolución de llamada oculta , etc.
¿Qué herramientas usan los hackers para conocer las funciones privadas y no documentadas?
¿Dónde puedo leer sobre las experiencias de las personas profundizando en API privadas y técnicas de ingeniería inversa que revelan los secretos que normalmente se explican en la documentación de API?
gracias
A
Herramientas normales que utiliza para desarrollar software :)
Por lo general, las funciones de API indocumentadas son solo eso, indocumentados , y no secretos ocultos realmente cuidadosos.
Diseñar una API a prueba de futuro es difícil: puede agregar fácilmente cosas a la API, pero es realmente difícil eliminar cualquier cosa (sin romper algunos clientes). Entonces, tienes mucho cuidado al agregar algo a la API. Es por eso que puede haber algunas funciones adicionales (para pruebas, en desarrollo, ¿un truco rápido?) En API, que no están documentadas y sin garantías de trabajar o estar en la próxima versión.
Estas funciones no documentadas se pueden encontrar fácilmente, dado que sabe cómo funcionan los compiladores, vinculadores, bibliotecas y depuradores (material de programación del sistema). Conocer el lenguaje ensamblador de la arquitectura de destino no hará daño. Si su IDE / compilador puede construir ejecutables que funcionen, también puede hacerlo "manualmente", y manteniendo los ojos abiertos en esa ruta puede descubrir algunas características ocultas :)
Ejemplo en un entorno Unix: un escenario en el que tenemos documentación solo para la función printf y nos gustaría saber si hay otras funciones similares a printf . El tren de pensamiento podría ser algo como:
1. Verifique los archivos de encabezado
2. Comprobar biblioteca
3. Desmontar la función de biblioteca
O algo así...
fuente
descargo de responsabilidad: me gusta la respuesta de ChrisF. Sí deja de lado un par de enfoques, creo. Si se coloca en los comentarios de la respuesta cómo están cubiertos, eliminaré mi respuesta.
Podría caer en descompilación:
Encontrar otras API indocumentadas también puede ser a través de la depuración de una herramienta suministrada por el proveedor que hace algo de lo que desea y rastrea las llamadas entre bibliotecas. De esta manera, puede tener una idea de qué tipo de datos se envían a dónde.
Luego, se pueden escribir otras herramientas "personalizadas" para jugar con estas API indocumentadas usando python y CTYPES o ruby con su versión de algo similar hasta que descubra exactamente lo que está haciendo o difuminando los bloqueos. Aaron Portnoy cubre este tema en profundidad mínima en: http://pentest.cryptocity.net/reverse-engineering/ y algunas de sus otras charlas en conferencias (me parece recordar que habla sobre eso directamente en una charla en Brasil ) Está relacionado con RE, pero no creo que sea exactamente RE general. Nota: los videos en pentest.cryptocity.net no son SOLO este tema. Cubren otras áreas con más profundidad, esto solo se toca. Creo que porque a menudo es algo que los probadores guardan como "los pasos exactos serían revelar nuestros secretos".
Gracias por leer cualquier comentario apreciado.
editar: una herramienta que puede resultar útil para esto en el lado de Windows se cubre mínimamente aquí: http://breakingcode.wordpress.com/2010/08/24/winappdbg-1-4-is-out/
secuestro de llamadas para Java grueso Los clientes para utilizar servicios de red personalizados están cubiertos aquí:
http://www.securitytube.net/JavaSnoop-How-to-hack-anything-written-in-Java-video.aspx
el último solo es mínimamente relevante, pero podría resultar pertinente para el destino final del interrogador. usando API que no tienes que hacer ... lo que sea.
fuente
La piratería suena bastante romántica, el espionaje industrial, las fugas, los sobornos, el robo y la simple suerte no. Sin embargo, no los descartaría.
fuente