un truc dur mais utile ...

un truc dur mais utile ... - Programmation

Marsh Posté le 23-12-2001 à 20:52:39    

voila si qqun pouvait modifier un chtit programme présent sur la disquette de boot de win98 : findramd.exe, qui fait 9Ko et qui décide au moment du boot sur quelle lettre il fout le lecteur virtuel ...
Parce que vu qu'il choisit tjs celui juste après le dernier qu'il a trouvé ça pose souvent des problèmes qd il ya plusieurs DD, ou des partitions NTFS etc ...
Donc ça serait cool d'avoir le même mais qui choisirait tjs z: ...
Par contre j'ai bien peur que ça soit impossible, parce que j'ai regardé le prog désassembler et j'ai rien compris ... :(
M'enfin si qqun déchire bien ça vaut le coup de demander...

Reply

Marsh Posté le 23-12-2001 à 20:52:39   

Reply

Marsh Posté le 23-12-2001 à 22:28:12    

tu y vas fort .
il faut desassmbler le prog  (interdit par la loi )puis le bidouiller.
c'est un peu violent .


---------------

Reply

Marsh Posté le 23-12-2001 à 23:57:06    

flo850 a écrit a écrit :

tu y vas fort .
il faut desassmbler le prog  (interdit par la loi )puis le bidouiller.
c'est un peu violent .  




 
 
C'est nouveau ca? En tout cas chez nous c'est légal... Tu as le droit de disséquer tout ce que tu as sous la main  :D

Reply

Marsh Posté le 24-12-2001 à 09:17:07    

d'où tu tiens que c'est interdit par la loi ? Faudra que tu me montre un texte de loi parce que là j'ai comme qui dirait un doute ... :??:

Reply

Marsh Posté le 24-12-2001 à 14:43:30    

ca dépend des pays, mais aux US par exemple, c'est interdit (cf l'affaire Adobe vs le Russe venu expliqué une faille de leur logiciel)

Reply

Marsh Posté le 24-12-2001 à 15:05:27    

mmmmmmhhhhhhh .... mouais je veux bien croire aux USA mais bon ... on va dire qu'au pire si c'est vraiment interdit z'avez qu'à trouver la manip, et pis la poster sur le forum. Je me chargerai de risquer ma vie en l'effectuant tout seul dans mon coin ;)
Personne ne se sent l'âme d'un hacker de génie ? Parce que bon là ça serait vraiment utile ...

 

[edtdd]--Message édité par freewol--[/edtdd]

Reply

Marsh Posté le 24-12-2001 à 15:31:03    

en France, on a le droit de décompiler, désassembler, ... un soft uniquement quand on veut assurer l'inter-opérabilité avec d'autres softs  :D

Reply

Marsh Posté le 24-12-2001 à 16:40:48    

Est-ce normal que ce machin me renvoie 3(C) ?

Reply

Marsh Posté le 24-12-2001 à 16:44:33    

C_po_ma_faute a écrit a écrit :

en France, on a le droit de décompiler, désassembler, ... un soft uniquement quand on veut assurer l'inter-opérabilité avec d'autres softs  :D  




 
EXACTEMENT ce que je veux faire !!! Ouff, j'ai bien failli ne pas avoir le droit ... :lol: :lol:

Reply

Marsh Posté le 24-12-2001 à 16:45:24    

Ace17 a écrit a écrit :

Est-ce normal que ce machin me renvoie 3(C) ?  




 
Ben ça c'est quand il trouve aucune partition fat32
c'est le cas ?

Reply

Marsh Posté le 24-12-2001 à 16:45:24   

Reply

Marsh Posté le 24-12-2001 à 16:47:23    

ben non! tout est en Fat32!
Sinon le défi m'a l'air intéressant; je promet rien mais je veux bien jeter un oeil

 

[edtdd]--Message édité par Ace17--[/edtdd]

Reply

Marsh Posté le 24-12-2001 à 17:01:59    

au fait tu pourrais m'expliquer comment il te renvoie C ? Tu l'a testé avec la disquette de boot ? Parce que tout seul il fait rien ce prog, enfin je veux dire si on le lance sous win ...
chelou pour la lettre en tout cas. T'as combien de lecteurs (ie de lettres déjà assignées) ?

Reply

Marsh Posté le 24-12-2001 à 17:10:29    

Ben c'est une bonne question car ca m'est pas venu du premier coup; j'ai fait un batch et dedans j'ai mis une succession de
if %errorlevel%=1
if %errorlevel%=2
if %errorlevel%=3
et avec un message dans chaque cas.
Sinon, j'ai :  
A: lecteur de diskette
C: partition systeme(fat32)
D: partition de données(fat32)
E: Lecteur CD1
F: Lecteur CD2

Reply

Marsh Posté le 24-12-2001 à 19:53:22    

ben donc ça devrait renvoyer E ou G, je sais pas trop, m'enfin pas C en tout cas ... chelou, j'ai pas d'explication

Reply

Marsh Posté le 25-12-2001 à 09:14:01    

Au fait mon findramd.exe a moi il fait 6k; Or il est dit qu'il en fait 9; c'est peut etre un début d'explication?

Reply

Marsh Posté le 25-12-2001 à 14:02:00    

euh non en fait désolé erreur d'écriture, en réalité c'est 6.69Ko ... de toute façon je vois pas trop comment ça pourrait être différent ... en tout cas j'espere que c'est pas possible sinon on est pas sortit d'affaire ...

Reply

Marsh Posté le 25-12-2001 à 23:00:28    

Question a la con, un simple
 
int main()
{
 return 26;
}
 
ca le ferait pas ? ca renvoie tjs 26 ;) ...

Reply

Marsh Posté le 26-12-2001 à 09:36:57    

Quand meme........peut etre qu'il faut que ca puisse marcher pour plusieurs disques virtuels! Dans ce cas la pourquoi faire appel a findramd alors qu'on pourrait choisir manuellement z!

 

[edtdd]--Message édité par Ace17--[/edtdd]

Reply

Marsh Posté le 26-12-2001 à 22:17:51    

merci bcp 246tNt, c'est clair que je cherchais un truc tellement compliqué que j'avais même pas pensé à ça ! donc :jap:
mais bon le problème c'est que je me suis rendu compte que j'avais été trop optimiste : en réalité l'autoexec.bat n'est pas le 1er fichier appelé, et findramd ne sert qu'à trouver la lettre du lecteur virtuel déjà créé ... donc tout est à refaire.
Et encore, c'est absolument horrible : ce qui se passe c'est que le 1er appelé est config.sys, qui ensuite appelle himem.sys, puis ramdrive.sys, qui est celui qui nous intéresse puisqu'il crée le lecteur virtuel ... Le seul problème c'est que je vois pas trop comment modifier un .sys, vu que je sais même pas à quoi ça correspond ... Le config.sys est un fichier texte, mais malheureusement ça n'est pas le cas de ramdrive.sys, et pire encore qd je l'ai désassemblé avec windasm, ça foire parce qu'il arrive pas à trouver l'entrée du prog ...
Donc ben je pense que je devrais renommer ce topic en "un truc super dur mais utile" ... :(

Reply

Marsh Posté le 26-12-2001 à 23:28:02    

Tu pourrais étendre un peu plus la théorie? ramdrive.sys ca crée automatiquement un lecteur virtuel c'est ca?

Reply

Marsh Posté le 27-12-2001 à 10:16:07    

ben oui c'est exactement ça. Et il est appelé si j'ai bien suivi en 3e après config.sys et hymem.sys (dans le cas du démarage sans gestion du cd-rom) ... Et ensuite est appelé autoexec.bat qui se charge en 1er lieu d'appeler findramd.bat qui trouve quelle est la lettre du lecteur virtuel créé par ramdrive, et qui refile la lettre à autoexec.bat qui ensuite copie tous les fichiers importants de la disquette dessus ...
Voila pour ce que j'en ai compris.

Reply

Marsh Posté le 27-12-2001 à 17:27:58    

C'est bizzare que ramdrive soit appellé automatiquement...Y doit y avoir une référence quelque part non? étant donné que c'est pas indispensable...

Reply

Marsh Posté le 27-12-2001 à 19:33:18    

euh ... désolé je ne te suis pas là ? pkoi ça serait pas indispensable ?

Reply

Marsh Posté le 27-12-2001 à 20:26:37    

Oublie ce que j'ai dit, de toutes manieres ca ne mene nulle part; Il faut désassembler ramdrive.sys plutot
Ce qui va pas etre facile vu que c'est pas un format courant...
Mais au fait c'est quoi ton but exactement?

 

[edtdd]--Message édité par Ace17--[/edtdd]

Reply

Marsh Posté le 27-12-2001 à 21:06:45    

Je trouve que vous vous compliquez un peu la vie.
 
D'abord, essayez pas d'editer un fichier .sys sauf config.sys qui n'est en fait qu'un fichier texte.
 
J'ai pas la disquette sous la main mais je suis sur qu'il doit y avoir une reference à ramdrive.sys dans config.sys. C'est un truc du genre :
DEVICE=ramdrive.sys [...]
Avec un peu de chance et un paramètre sur la ligne servant à lancer ramdrive.sys, tu peux peut-etre lui assigner un lettre de lecteur precise. Bien sur le probleme est de retrouver la doc de ramdrive.sys. Pour ca, cherche du cote de MSDOS 6.22 ou moins récent.

 

[edtdd]--Message édité par Kristoph--[/edtdd]

Reply

Marsh Posté le 27-12-2001 à 22:32:26    

Ace17 a écrit a écrit :

Oublie ce que j'ai dit, de toutes manieres ca ne mene nulle part; Il faut désassembler ramdrive.sys plutot
Ce qui va pas etre facile vu que c'est pas un format courant...
Mais au fait c'est quoi ton but exactement?  
 
 




 
Déjà pour le format du .sys, clair que je connais absolument pas, je verrais ce que je pourrai trouver sur internet, au moins pour ma culture ;)
Et mon but, c'est que ramdrive.sys, au lieu de créer le lecteur virtuel à la 1ere lettre qui est disponible, le crée tjs sur la lettre Z:, de manière a éviter les incessants conflits que génère la version courante.

Reply

Marsh Posté le 27-12-2001 à 22:37:04    

Kristoph a écrit a écrit :

Je trouve que vous vous compliquez un peu la vie.
 
D'abord, essayez pas d'editer un fichier .sys sauf config.sys qui n'est en fait qu'un fichier texte.
 
J'ai pas la disquette sous la main mais je suis sur qu'il doit y avoir une reference à ramdrive.sys dans config.sys. C'est un truc du genre :
DEVICE=ramdrive.sys [...]
Avec un peu de chance et un paramètre sur la ligne servant à lancer ramdrive.sys, tu peux peut-etre lui assigner un lettre de lecteur precise. Bien sur le probleme est de retrouver la doc de ramdrive.sys. Pour ca, cherche du cote de MSDOS 6.22 ou moins récent.  




 
Alors voila la ligne exacte dans le config.sys :
devicehigh=ramdrive.sys /E 2048
Alors peut-être effectivement qu'avec un param on peut choisir la lettre, c'est une voie intéressante que j'explorerai demain, merci.
par contre détrompe toi la version de DOS utilisée est la 7.0, j'avais vu ça dans un fichier ...

Reply

Marsh Posté le 28-12-2001 à 13:40:51    

et ben d'un coté j'ai trouvé de la doc sur ce fameux ramdrive.sys, et même pleins, ya des dizaines de liens sur google ... je pensais pas que c'était si populaire ...
par contre d'un autre coté voici une phrase de fort mauvaise augure ... : "The first line gives the letter allocated by DOS to the drive. This is the first available drive letter and cannot be specified by the user" :(
Voila donc ben il semblerait bien que le seul moyen soit le désassemblage ...

Reply

Marsh Posté le 28-12-2001 à 20:39:06    

Peut etre qu'il existe un autre utilitaire ou driver qui fait le meme travail que ramdrive.sys?  
Mais en fait en quoi ca pose probleme que ramdrive choisisse une lettre deja attribuée a une partition NTFS? De toute maniere ramdrive c'est sous DOS que tu l'utilises non? Or DOS il voit pas les partitions NTFS il me semble...

Reply

Marsh Posté le 28-12-2001 à 20:44:46    

Reply

Marsh Posté le 28-12-2001 à 20:46:57    

Allez, et tant que j'y suis, je précise que reprogrammer (puisqu'on est dans le forum programmation, tant qu'a faire) un ramdrive serait peut etre plus facile!

Reply

Marsh Posté le 01-01-2002 à 12:55:22    

ok merci pour le lien, ça a effectivement l'air sympa
le problème qui se pose lorsque ramdrive crée un disque virtuel sur la même lettre qu'un lecteur réel qu'il n'a pas trouvé (le fait qu'il soit en NTFS n'est qu'une des raisons possibles, j'ai déjà eu autre chose), c'est qu'on ne peut plus utiliser fdisk, et la plupart des outils de partitionement sans détruire le lecteur réel ... ou tout au moins endommager la table de partitionnement.
ensuite pour reprogrammer un ramdrive, pkoi pas, ça correspond bien a l'intitulé ... ;) Je vais y réfléchir, mais si qqun se sent le courage de le faire ... ;)

Reply

Marsh Posté le 01-01-2002 à 14:01:39    

Non, y a un probleme de taille ...  
 
J'ai moi meme programmer un RAM drive "pour voir" comment c'etait un .sys
 
Le probleme est que ce n'est pas ton programme qui choisi la lettre !!! Toi tu dis a DOS que tu veut creer un disque et c'est LUI qui te dit quelle lettre ce sera !!!
 
C Dos qu'il faut modifier alors ... et ca ca risque d'etre un peu limite ...

Reply

Marsh Posté le 01-01-2002 à 16:32:42    

Précise un peu ca m'intéresse ca; comment tu demandes a DOS d'allouer un nouveau lecteur? Comment ca se passe au niveau des interruptions?

Reply

Marsh Posté le 01-01-2002 à 16:52:04    

Ben au fait, tu "demande"  pas vraiment.
 
Quand tu ecrit un drivers .sys en dos, l'entete contient un bit qui dit si c'est un driver de caractère ( communication char by char, pas de lettre attribuée ) ou un driver de bloc ( un HDD, un RamDisk ... )
 
Au moment du chargement du .sys, DOS attribuera a ton driver la premier lettre disponible. Au moment de l'appel de la fonction d'init de ton driver, le parametre se trouvant a l'offset 16h du bloc de donnée qu'on te donne est la premiere lettre attribuée a ton driver de bloc. ( je dis premier car ton drivers pourrait utiliser plusieurs lettre, elle sont alors prise les une a la suite des autres )

Reply

Marsh Posté le 01-01-2002 à 17:15:05    

J'aurais jure que les drivers de CDROM sous DOS avaient une option pour choisir la lettre de lecteur. C'est peut-etre mscdex.exe qui fait ca alors.
 
Peut-etre que ca ne peut pas se faire au niveau du config.sys mais seulement avec un bon vieux TSR qui s'occupera de faire tout les appels systemes à la main.

Reply

Marsh Posté le 01-01-2002 à 17:22:46    

Le seul moyen je crois tu a raison c de faire comme mscdex, c'est d'utiliser les drivers reseau ... eh oui pour dos, un lecteur cd c un disque reseau dont le driver est le .sys de votre lecteur CD. A la limite, en devellopand un driver de lecteur µcd qui en fait cree un ram disk et en utiliant mscdex y a p/e moyen

Reply

Marsh Posté le 02-01-2002 à 12:13:01    

Kristoph a écrit a écrit :

J'aurais jure que les drivers de CDROM sous DOS avaient une option pour choisir la lettre de lecteur. C'est peut-etre mscdex.exe qui fait ca alors.
 
Peut-etre que ca ne peut pas se faire au niveau du config.sys mais seulement avec un bon vieux TSR qui s'occupera de faire tout les appels systemes à la main.  




 
je me rappelle sous win95 ( il y a quelques années de cela) qu'un pote avait sous lecteur cd sous la lettre Z:, et que par la suite, un autre pote est venu arranger ça....
 
donc y'a moyen en win95 de changer la lettre de son lecteur cd....
 
je me demande si je suis pas en train de raconter des conneries comme quoi y'aurait un parallele.... chai plus !


---------------
Tef : "Je dors à poil" <-> That's me, poil-bonhomme ! Sp*m killer
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed