2010-11-18 35 views
0

Est-il possible de lire/écrire/décharger le micrologiciel HDD/USB via le code managé (C#)? Je dois pouvoir vérifier la série, la révision du micrologiciel, etc. et pouvoir les changer.Lecture du micrologiciel du périphérique physique

Si je ne peux pas le faire en C#, y a-t-il une importation non gérée que je peux appeler pour aider à accomplir ceci?

+0

Votre question est trop large. Demandez-vous sur les disques durs? Périphériques USB? Quel genre de périphériques USB? – Brad

+0

Tout type de périphérique physique. Clé USB, disque dur externe, disque dur interne, etc. – Eaton

+0

Impossible. Vous êtes conscient que tous les appareils ne peuvent même pas avoir leur firmware mis à jour, n'est-ce pas? Et puis, beaucoup d'autres nécessitent un matériel externe pour les flasher. – Brad

Répondre

1

Ceci est spécifique au périphérique, et pas seulement pour la classe de périphériques. Pas quelque chose que tu puisses faire.

Si vous n'aviez besoin que de lire les informations sur le disque dur, cela est possible grâce à SMART. Il y a quelques sample unmanaged code qui peuvent vous aider à démarrer. Il pourrait également être disponible dans WMI, mais je n'ai pas regardé.

+0

J'ai vu des applications qui peuvent modifier le firmware. Mais l'un d'entre eux était en 16bit et nécessitait que le disque dur soit connecté à un port SATA. – Eaton

+0

Bien sûr, il existe des applications qui font cela, mais encore une fois, ils sont * spécifiques à l'appareil *. Je dis, ce que vous essayez de faire (logiciel générique) n'est pas possible. – Brad

+0

Merci. Ceux-ci semblent également très utiles: http://www.codeproject.com/KB/cs/hard_disk_serialno.aspx & http://www.codeproject.com/KB/mcpp/DriveInfoEx.aspx?fid=371167&df=90&mpp=25&noise= 3 & sort = Position et vue = Rapide et sélectionnez = 2787288 – Eaton

2

Je me rends compte que c'est une question vieille de 5 ans, mais pour avoir une autre réponse, voici un repo github de @adamcaudill implémentant le dumping et l'injection de firmware de C#/pinvoke. Oui, il est appareil spécifique, mais pour répondre à la question, il semble être possible une fois que vous connaissez vos spécificités de l'appareil ...

https://github.com/adamcaudill/Psychson

Ce référentiel contient les éléments suivants:

DriveCom - PC Application C# pour communiquer avec les lecteurs Phison.

EmbedPayload - Application PC C# pour intégrer des scripts de clé inject.bin Rubber Ducky dans un microprogramme personnalisé pour une exécution sur le lecteur.

Injecteur - Application PC C# pour extraire les adresses/assimiler du firmware et incorporer le code de patch dans le firmware. firmware - c'est 8051 custom firmware écrit en C.

patch - c'est une collection de 8051 patch code écrit en C.