Manipulations sur le format Mach-O et applications concrètes sur les exécutables Apple

Magazine
Marque
MISC
Numéro
67
Mois de parution
mai 2013
Domaines


Résumé
Vous connaissez peut-être le format PE pour les systèmes Windows ou l'ELF pour la plupart des systèmes de type Unix ? Nous vous proposons une introduction au format d’exécutable pour les systèmes Apple : « Mach-O ». Cet article se veut être un tour d’horizon des méthodes permettant d'analyser et de manipuler ce format : de nombreuses actions sur un binaire Apple, sans avoir à en modifier son code, sont en effet possibles par ce biais.

1. Le format Mach-O

Cette première partie de l'article a pour but de décrire brièvement l'historique et les bases structurelles du format Mach-O, utilisé pour quasiment tous les exécutables Apple.

1.1 Description du format

Le format Mach-O (« Mach Object file ») a été développé par NeXT à la fin des années 1980 pour le projet de système d'exploitation NeXTSTEP. Ce dernier utilisait le micro noyau Mach développé dans les années 1980 à l'université américaine de Carnegie Mellon. NeXTSTEP était destiné à la base pour fonctionner sur des puces Motorola 68000 et évolua par la suite pour fonctionner sur des architectures x86.

OpenStep est une évolution de NeXTSTEP sortie en 1994 et utilisant aussi le format d’exécutable Mach-O. Cet événement sera d'ailleurs l'origine de la création du format FAT binaire (évoqué plus loin dans cet article) pour des applications pouvant être utilisées à la fois sur les architectures Motorola 68000 et x86.

NeXT étant utilisé...

Cet article est réservé aux abonnés. Il vous reste 97% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

À la découverte du gestionnaire de système et de services System Daemon

Magazine
Marque
Linux Pratique
Numéro
125
Mois de parution
mai 2021
Domaines
Résumé

Historiquement, les services du système GNU/Linux étaient pris en charge par ce qu’on appelait System V. Cela permettait de lancer des programmes au démarrage de l’ordinateur, mais également de gérer les niveaux d’exécution de différentes parties du système, grâce à des scripts shell placés dans le répertoire /etc/init.d. Après une courte transition par le projet upstart, une grande majorité des systèmes GNU/Linux a basculé sous Systemd (pour System Daemon), plus souple et efficace pour gérer les différents services, mais pas seulement.

Gérez vos gros volumes de données avec Elasticsearch

Magazine
Marque
Linux Pratique
Numéro
125
Mois de parution
mai 2021
Domaines
Résumé

Elasticsearch est un SGBD NoSQL qui gagne en popularité ces dernières années de par sa flexibilité et sa gestion facile. Il intègre la notion de cluster qui permet de décentraliser une base de données afin de rendre les requêtes à celle-ci plus rapides, tout en assurant une sécurité plus qu’acceptable. Dans cet article, nous allons gérer une base de données Elasticsearch en nous focalisant principalement sur la manipulation des données. Nous supposerons que vous disposez déjà d’un cluster installé disposant bien évidemment d’un nœud master, comme vu précédemment [1].

Retour sur une stratégie de migration à grande échelle : l’exemple de la Gendarmerie Nationale

Magazine
Marque
Linux Pratique
Numéro
125
Mois de parution
mai 2021
Domaines
Résumé

Le lieutenant-colonel Stéphane Dumond, chef de bureau IT au sein du Service des Technologies et des Systèmes d’Information de la Sécurité Intérieure a accepté de revenir avec nous sur les enjeux de la migration à grande échelle réalisée par la Gendarmerie Nationale. Vous découvrirez dans ces lignes son retour d’expérience sur le sujet, de la stratégie suivie, aux objectifs visés en passant par les difficultés rencontrées et les bénéfices constatés à court et long terme.

À la découverte des namespaces mount et uts

Magazine
Marque
GNU/Linux Magazine
Numéro
247
Mois de parution
avril 2021
Domaines
Résumé

Le namespace mount, premier d'une longue série de namespaces a été ajouté à Linux quelques années après chroot() pour offrir plus de possibilités et de sécurité dans l'isolation des systèmes de fichiers. Introduit peu après et indéniablement plus simple, le namespace uts permet d'instancier les noms de machine. Les conteneurs sont bien entendu les premiers clients de ces fonctionnalités.