Je me suis toujours demandé comment trouver une API non documentée / privée ?
Exemple d' API Apple non documentée / privée, Play Station , Windows Phone 7 , noyau Win32 , API Windows , rappel caché , etc ...
Quels outils les pirates informatiques utilisent-ils pour découvrir les fonctions privées et non documentées?
Où puis-je lire sur les expériences des gens plongeant dans les API privées et les techniques de rétro-ingénierie qui révèlent les secrets qui sont normalement expliqués dans la documentation des API?
merci,
A
Outils normaux que vous utilisez pour développer des logiciels :)
Habituellement, les fonctions d'API non documentées ne sont que des secrets non documentés et pas vraiment soigneusement cachés.
La conception d'une API à l'épreuve du temps est difficile - vous pouvez facilement ajouter des éléments dans l'API, mais il est vraiment difficile de supprimer quoi que ce soit (sans casser certains clients). Ainsi, vous faites très attention lorsque vous ajoutez quoi que ce soit dans l'API. C'est pourquoi il peut y avoir des fonctions supplémentaires (pour les tests, en développement, un hack rapide?) Dans l'API, qui ne sont pas documentées et sans garantie de travailler ou d'être là dans la prochaine version.
Ces fonctions non documentées peuvent être trouvées assez facilement, étant donné que vous savez comment fonctionnent les compilateurs, les éditeurs de liens, les bibliothèques et les débogueurs (programmation système). La connaissance du langage d'assemblage de l'architecture cible ne fera pas de mal. Si votre IDE / compilateur peut créer des exécutables qui fonctionnent, vous pouvez également le faire "manuellement", et en gardant les yeux ouverts sur ce chemin, vous découvrirez peut-être des fonctionnalités cachées :)
Exemple dans un environnement Unix: Un scénario où nous n'avons de documentation que pour la fonction printf et aimerions savoir s'il existe d'autres fonctions semblables à printf . Le train de pensée pourrait aller quelque chose comme:
1. Vérifier les fichiers d'en-tête
2. Vérifier la bibliothèque
3. Démonter la fonction de bibliothèque
Ou quelque chose comme ça...
la source
Avertissement: j'aime la réponse de ChrisF. Cela laisse de côté quelques approches, je pense. S'il est placé dans les commentaires de la réponse sur la façon dont ils sont couverts, je supprimerai ma réponse.
Il pourrait en quelque sorte tomber sous décompilation:
La recherche d'autres API non documentées peut également se faire par le débogage d'un outil fourni par le fournisseur qui fait ce que vous voulez et le suivi des appels entre bibliothèques. De cette façon, vous pouvez avoir une idée du type de données envoyées à quel endroit.
D'autres outils "personnalisés" peuvent ensuite être écrits pour jouer avec ces API non documentées en utilisant python et CTYPES ou ruby avec sa version de quelque chose de similaire jusqu'à ce que vous découvriez exactement ce qu'il fait ou fuzzing pour les plantages. Ce sujet est traité en profondeur par Aaron Portnoy dans le: http://pentest.cryptocity.net/reverse-engineering/ et certains de ses autres discours lors de conférences (je semble me souvenir qu'il en parle directement lors d'un discours au Brésil ). Il est lié à RE, mais je ne pense pas que ce soit exactement juste RE général. Remarque: les vidéos sur pentest.cryptocity.net ne sont PAS SEULEMENT ce sujet. Ils couvrent d'autres domaines plus en profondeur, c'est juste abordé. Je pense que c'est souvent quelque chose que les testeurs gardent car "les étapes exactes seraient de révéler nos secrets".
Merci d'avoir lu tous les commentaires appréciés.
edit: un outil qui peut s'avérer utile pour cela du côté des fenêtres est couvert de manière minimale ici: http://breakingcode.wordpress.com/2010/08/24/winappdbg-1-4-is-out/
détournement d'appel pour java épais clients aux services réseau personnalisés fuzz sont couverts ici:
http://www.securitytube.net/JavaSnoop-How-to-hack-anything-written-in-Java-video.aspx
ce dernier n'est que d'une pertinence minimale, mais pourrait s'avérer pertinent pour savoir où le questionneur va finalement. en utilisant des API que vous ne possédez pas pour faire ... peu importe.
la source
Le piratage semble assez romantique, l'espionnage industriel, les fuites, les pots-de-vin, le vol et la chance ordinaire ne le font pas. Je ne les compterais pas cependant.
la source