Mon projet C # Discuter si un fichier sur lequel lire est un fichier Mac, qui exécute des macos.
Il y a un projet C # exécutant Windows 2008 ou plus récent. J'aimerais savoir si un fichier sur le point de lire est un fichier Mac en cours d'exécution sur le système d'exploitation Mac. P>
Je veux savoir si un tel code est possible p> Peuvent-ils être distingués par des extensions de fichier? ou tout type de signature de fichier? p> p>
3 Réponses :
De ma compréhension après avoir lu votre question, vous souhaitez vérifier le fichier si ce fichier est pour Mac ou Windows. Vous pouvez le faire par: Il retournera le mappage MIME pour le nom de fichier spécifié et vous pouvez différencier facilement sur la base de ces mappages. Pour plus d'informations, vous pouvez vérifier ce . P> Remarque: pour .NET Framework> = 4.5 P>
blockQuote> p>
Cela vous dit qu'un fichier JPEG est une image, mais si c'est sur un Mac.
J'ai utilisé ce code pour vérifier un certain fichier DMG. Il ne dit que ce fichier est en octet / flux.
@Hwanginchan: Vous pouvez différencier le fichier Mac ou les fichiers Windows sur la base de cela.
"Vous pouvez différencier le fichier Mac ou les fichiers Windows sur la base de cette" i> - non, tu ne peux pas, parce que vous ne savez même pas ce que veut, ce que l'OP veut, exactement. Si je renomme un .exe code> à .dmg code>, ce code retournera toujours application / octet-flux code> et ne pas indiquer si le fichier est destiné à Macos ou pour fenêtres.
MacOS utilise le format exécutable binaire Mach-o. P>
Vous devez rechercher les signatures d'un binaire Mach-o, comme décrit ici: Comment lire l'en-tête Mach-o du fichier d'objet? P>
https://github.com/konrad-kruczynski/elfsharp
est l'opensource que je voudrais utiliser pour atteindre cet objectif.
Pensez-vous que vous utilisez l'extrait de code ci-dessous, aidez-vous à comparer ma tâche?
Je pense que c'est assez réalisable.
Semble solide. Cela dépend de votre cas d'utilisation, car une liaison standard générée par Mach-o devrait fonctionner. Si vous l'utilisez contre des exécutables écrits à la main folle (comme des logiciels malveillants), cela pourrait ne pas suffire.
Que voulez-vous dire "en cours d'exécution sur le système d'exploitation Mac"? Vous y accédez via une part de réseau? Sinon, et vous voulez juste prendre un fichier arbitraire et déterminer quel OS il provient alors, pour la plupart, je ne pense pas que cela soit possible.
Pourquoi? Plus de contexte s'il vous plaît.
Je pense que le problème de cette question est le principe que les fichiers ont un "type" qui a une association avec le système d'exploitation et l'objectif est de le trouver. Ce n'est pas correct, à moins que la recherche de certains types de fichiers spécifiques dépréciées à Apple soit susceptible de provoquer uniquement des macs. Mais ce n'est pas une propriété du fichier i> qui peut être découverte.
Je suis un programmeur de solution de sécurité. J'ai principalement géré les fichiers Windows PE. Mais cette fois, je dois aussi traiter des fichiers Mac. Plusieurs fois, mon SW sera exécuté dans un environnement isolé où aucune connexion Internet n'est disponible. Comme John dit, je prends un fichier arbitraire et je détermine s'il s'agit d'un fichier Mac ou non. La seule façon dont je peux penser est d'utiliser l'extension "DMG" pour le moment.
"Je suis un programmeur de solution de sécurité" i> - s'il vous plaît Modifier Votre question pour expliquer votre but i> au lieu de votre titre de poste. Tout d'abord, vous devez correctement b> Définir "Un fichier Mac en cours d'exécution sur le système d'exploitation Mac" i>. Parce que par exemple un fichier JPEG peut être ouvert sur tout système d'exploitation qui possède le logiciel de visualiseur approprié. Vous mentionnez "DMG", qui est un fichier "Image de disque" utilisé pour l'installation du logiciel. Vous devez connaître des "numéros magiques" pour reconnaître les formats de fichiers. Si vous effectuez une recherche sur le Web pour cela, vous trouverez
0x6b6f6c79 code>.