Débutant Software RE help, Adresses RAM, chargement de la bibliothèque, par où commencer?

Pour ce faire, j’utilise OS X, un système basé sur UNIX.

J’ai des connaissances théoriques de débutant en C ++ et je voudrais approfondir mes connaissances par reverse engineering de logiciels. Chaque guide dans lequel je me penche semble sauter à mi-chemin et il me semble manquer une grande partie des informations nécessaires pour démarrer. Mon objective final est de créer avec succès un dylib fonctionnel pour toute application. Où est-ce que je commence par apprendre des adresses de Ram, comment fonctionnent-elles, comment les bibliothèques sont-elles chargées et quel est le véritable enfer que je commence à lire, quel sujet. Tout ce que j’ai appris jusqu’à présent a un sharepoint départ distinct, une certaine syntaxe, mais je trouve que tout utilise une terminologie que je ne comprends pas. Je me trouve simplement en train de se diversifier de plus en plus parce qu’un article utilise un mot-clé que je ne comprends pas, je le google, l’autre utilise cinq Je ne comprends pas et je rest coincé. L’application en question ne change pas d’adresse mémoire, mais j’aimerais aussi savoir comment la compenser en utilisant des décalages.

Où est-ce que je commence?!

Avant de commencer avec l’ingénierie inverse, vous aurez besoin de plus qu’une connaissance théorique du langage C. Oubliez C ++ pour l’instant, C est plus simple et il est si bas que, une fois que vous le maîsortingserez, vous comprendrez comment les programmes fonctionnent. Obtenez une copie de The C Programming Language de Brian Kernighan et Dennis Ritchie et parcourez tout le livre.

Une fois que vous vous sentez à l’aise, l’écriture de programmes C se familiarise avec les normes UNIX comme POSIX, puis passe à des éléments spécifiques à OS X. La meilleure ressource pour la programmation OS X est http://developer.apple.com . Le lien ci-dessous explique comment les bibliothèques dynamics fonctionnent sur OS X. Une fois que vous aurez une bonne compréhension de C, tout sera logique.

https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/OverviewOfDynamicLibraries.html