Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1888 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5  6  7  8
Page Suivante
Auteur Sujet :

Windows peut il controler un prog executé en assembleur?

n°842048
prorel
Posté le 04-09-2004 à 04:18:00  profilanswer
 

Reprise du message précédent :
je ne sais pas si tu te rappel de back orifice, ca tournait bien sous NT, et il faisait ce qu'il voulait, que tu sois user ou admin

mood
Publicité
Posté le 04-09-2004 à 04:18:00  profilanswer
 

n°842049
bjone
Insert booze to continue
Posté le 04-09-2004 à 04:22:33  profilanswer
 

si c'est une api documenté dans le cas du service pack. si t'es admin tu peux changer tes droits stou.
 
par contre c'est vrai que sur NT4 il y avait un point d'entrée non documenté qui permettait de passer des droits d'utilisateurs de base en admin.
 
mais en admin tu as tout les droits, et si t'en as pas encore assez, tu as les droits de tes les rajouter (genre droits system)
 
ce que doit faire le SP2 à l'install, doit être de près ou de loin documenté dans le MSDN.
 
c'est essentiellement le boulot du service d'installation (le truc qui installe les .MSI) je pense.

n°842050
prorel
Posté le 04-09-2004 à 04:25:31  profilanswer
 

a priori c'est pas tout a fait le cas, mais c'est l'eternel vision parano de microsoft, on n'y peut rien

n°842145
deumilcat
Posté le 04-09-2004 à 12:59:42  profilanswer
 

ben vous vous etes couché tard les gars! :D
 
z'aviez jamais parlé de contourner le kernel mode avant ou quoi?  
 
je suis en train de me demander si le fait que j y connaisse pas grand chose en architecture NT ne me fait pas justement me poser des questions que votre science qqpart vous empeche de vous poser. Je regarde les choses de maniere simpliste et du coup je pense peut etre a des choses que vous n aviez meme pas envisagé. Ca peut etre constructif comme processus vu que au risque de faire un topic-gag on peut en arriver a trouver des failles inédites (au fait prorel> comme je parle d attaquer des entreprises, je sous entendais un peu une attaque sur NT)
 
Est il possible que le virus, en user mode sous Windows puisse modifier le secteur boot (ou readresser le point d entrée du secteur boot vers du code a lui) puis ordonner un reboot (qui normalement ira booter a partir du DD et donc de son prog), afin que du coup le prog du virus s execute des le boot et donc avt chargement de Windows et donc a vec plus de liberté pour foutre le souk dans le PC (prorel>l ecrasement du DD c est bien, arreter le ventilocpu pour griller le CPU en une minute c est l objectif> cramer le PC par virus.. Helloworld> le remplacement des PC est effectivement possible mais remplacer le parc de PCs d une entreprise ca se fait pas en 24h, déjà que des fois faut passer commande pour racheter une souris.. Et puis c est plus lourd car ca oblige a tout reinstaller de fond en comble.. =paralysie totale pdt des jours, d ou "l interet" du virus dont je parle )
 

n°842155
HelloWorld
Salut tout le monde!
Posté le 04-09-2004 à 13:27:39  profilanswer
 

modifier le mbr depuis le user land non, spa possible. Je viens de tester System Commander 8 qui est capable d'écrire le mbr depuis Xp, il me jette si je suis pas Admin.
Apres le coup du SP2 qui passe super Admin... evidemment kil est possible de mettre à jour les fichiers, sinon comment on updaterait l'OS ? Y'a pas de faille la dedans, c'est une procédure régulière, et il tapes pas dans le kernel (impossible de le patcher en cours d'utilisation) il le fait remplacer au reboot suivant, comme de nombreux autres fichiers (drivers, ...).
Maintenant c'est débile de passer par le MBR, car si tu sais modifier le MBR, tu sais depuis Windows bouziller le disque dur, et de manière bien plus simple.
Et sinon le voici mon listing du bootloader de XP (de base, pas de SP). Jamais publié, tu le trouveras pa sailleurs :

Code :
  1. ;cette routine doit se situer à l'adresse 07C0h
  2. ;Instruction de saut à la routine de boot (3 octets)
  3.     jmp start ;0054       ;0000
  4.     nop                   ;0002
  5. ;Nom du fabricant et n° version (8 octets)
  6.     DB 'NTFS',0,0,0,0     ;0003
  7. ;Octets par secteur (2 octets)
  8.     SectorSize DW 512                  ;000B  ok
  9. ;Secteurs par cluster (1 octet)
  10.     SecteurParCluster DB 4                   ;000D  ok
  11. ;Nbre secteurs réservés (2 octets)
  12.     NbSecteursALire DW 0                  ;000E  ok
  13. ;inutilisé (5 octet)
  14.     SecteursLus DW 0         ;0010
  15.     dummy3 DW 0              ;0011
  16.     Int13Ex DB 0             ;0013
  17.     ; si 1 => fonction étendues de lecture / écriture du disque présentes
  18. ;Descripteur de support (1 octet)
  19.     DB 0F8h ; disque dur     ;0015
  20. ;inutilisé (2 octets)
  21.     DW 0                     ;0016
  22. ;Nbre de secteurs par piste (2 octets)
  23.     NbSecteurParPiste DW 03Fh    ;0018
  24. ;Nbre de têtes (2 octets)
  25.     NbTetes DW 0FFh              ;001A
  26. ;Distance entre 1er secteur du volume et 1er secteur du support (4 octets)
  27.     StartSector DD 004E327Fh     ;001C
  28. ;inutilisé (4 octets) (initialisé à 0, => espace réservé pour l'exécution)
  29. ;sert a stocker le nombre de secteurs du disque
  30.     TotalDiskSectors DD 0        ;0020
  31. ;inutilisé (4 octets)
  32.     DiskNumber DW 80h            ;0024
  33.     DW 80h                       ;0026
  34. ;Nombre total de secteur (8 octets)
  35.     DQ 005DA3FDh                 ;0028
  36. ;N°logique de cluster de $MFT (Master File Table) (8 octets)
  37.     MFTStartCluster DQ 0003E6D5h                              ;0030  ok
  38. ; start sector = 1022804
  39. ;N°logique de cluster de $MFTMirr (Miroir de Master File Table) (8 octets)
  40.     DQ 0005DA3Fh                 ;0038
  41. ;Nombre de cluster par segment de fichier (4 octets)
  42.     NbClusterParSegmentFichier DD 0F6h                      ;0040  ok
  43.     ;variable signée => 0F6h = -10
  44.     ;si < 0 alors il indique la taille d'un segment de fichier
  45.     ;             au moyen d'une puissance de 2 : -9 => 2 puissance 9 => 512
  46.     ;       sinon il faut multiplier sa valeur par SizeOfCluster pour obtenir
  47.     ;             la taille d'un segment de fichier
  48.     ;donc, SizeOfSegment = 2 puissance 10 = 1024 (1 Ko = taille d'une entrée dans la MFT)
  49. ;Nombre de clusters par block d'index (4 octets)
  50.     DD 2                         ;0044
  51. ;N° de série du disque (8 octets);0048
  52.     DB 7Ch, 0EDh, 02h, 6Ch, 21h, 03h, 6Ch, 24h
  53. ;Checksum (4 octets)
  54.     DD 0                         ;0050
  55. start: ;054h
  56.     cli
  57.     xor ax, ax
  58.     mov ss, ax
  59.     mov sp, 7C00h
  60.     sti
  61.     mov ax, 07C0h
  62.     mov ds, ax
  63.     call CalculeNbSecteurs
  64.     mov ax, 0D00h
  65.     mov es, ax
  66.     xor bx, bx                               ;ES:BX  : adresse où écrire les secteurs lus
  67.     mov byte ptr [NbSecteursALire], 10       ;nombre de secteurs à lire (et placer en ES:BX)
  68.     call LireSecteur
  69.     push 0D00h                               ;0D00:0000    debut de la routine de chargement
  70.     push 026Ah                               ;0D00:026A    point d'entrée de la routine
  71.                                              ;attention : les 512 octets du secteur de boot sont inclus
  72.     retf
  73. ;----------------------------------------------------------------------------------------------------
  74. ; compte le nombre total de secteurs du disque dur
  75. ; la taille max calculée du disque dur est d'environ 8 Go
  76. ; même si le disque fait plus
  77. ; la taille en secteurs est affectée à TotalDiskSectors
  78. ;
  79. ; adresse = 7Bh
  80. CalculeNbSecteurs:
  81.     mov dl, [DiskNumber]    ;[0024]
  82.     mov ah, 08              ;lire le format du disque (DL = numero du dique)
  83.     int 13
  84.     jnb ok
  85. erreur:
  86.     mov cx, FFFF            ;s'il n'est pas possible d'obtenir des infos sur le disque
  87.     mov dh, cl              ;de la part du BIOS, on considère que le disque est de taille max
  88.                             ;à savoir secteurs = 63
  89.                             ;         cylindres = 1023
  90.                             ;         têtes = 255
  91. ok:
  92. ;ici, DL = Nombre de disques durs connectés
  93. ;     DH = Nombre de têtes de lecture/écriture (0=première tête)
  94. ;     CH = Nombre de cylindres (bits 0 à 7)
  95. ;     CL = Nombre de secteurs (bits 0 à 5), Nombre de cylindres (bits 6 à 7)
  96.     movzx eax, dh             ; nombre de têtes - 1
  97.     inc ax                    ; AX = nbre de têtes
  98.     movzx edx, cl
  99.     and dl, 00111111b         ; recupérer le nombre de secteurs (6 bits)
  100.     mul dx                    ; multiplie ax (nb_tetes) avec dx (nb secteurs)
  101.                               ; DX+AX contiennent la taille ocuupée par un cylindre
  102.                               ; comme la multiplication est de 6 bits * 8 bits,
  103.                               ; le résultat tient au max sur 14 bits, soit AX
  104.                               ; donc DX = 0
  105.                               ;      AX = taille d'un cylindre
  106.                               ;     EAX = taille d'un cylindre (14 bits)
  107.     xchg ch, cl
  108.                               ; CH = Nombre de secteurs (bits 0 à 5), Nombre de cylindres (bits 6 à 7)
  109.                               ; CL = Nombre de cylindres (bits 0 à 7)
  110.     shr ch, 06                ; CH = partie haute du nombre de cylindres
  111.     inc cx                    ; CX = partie basse du nombre de cylindres
  112.                               ; CX = nombre de cylindres (10 bits)
  113.     movzx ecx, word ptr cx    ; ECX = Nombre de cylindres (10 bits)
  114.     mul ecx                   ; multiplie EAX (taille cylindre) par ECX (NB cylindre)
  115.                               ; la multiplication tient sur 14 + 10 = 24 bits
  116.                               ; donc EDX = 0
  117.                               ;      EAX = capacité du disque en secteurs (limité à 1023 cylindres)
  118.     mov dword ptr [TotalDiskSectors], eax
  119.     ret
  120. ;--------------------------------------------------------------------------------------------------------
  121. ;--------------------------------------------------------------------------------------
  122. ;   CheckInt13Ex
  123. ;   Test si l'extension de l'int 13h (LBA) est présente ou pas
  124. ;   si oui : Int13Ex est incrémenté
  125. ;
  126. ; adresse = 0AAh
  127. CheckInt13Ex:
  128.     mov ah, 41h
  129.     mov bx, 55AAh
  130.     mov dl, [DiskNumber]
  131.     int 13h
  132.                                 ; test si l'extension de l'int 13h est présente (LBA)
  133.                                 ; entrée :
  134.                                 ;          AH - 41h
  135.                                 ;          BX - 55AAh
  136.                                 ;          DL - Drive number
  137.                                 ; sortie :
  138.                                 ;          Flag Carry =0 : Opération exécutée
  139.                             ;          Flag Carry =1 : Erreur, dans ce cas AH=Code d'erreur (01h, Invalid Command)
  140.                                 ;          AH - Version of extensions = 30h
  141.                                 ;          AL - Internal use only
  142.                                 ;          BX - AA55h
  143.                                 ;          CX - bit 0 : Fixed disk access subset
  144.                                 ;               bit 1 : Drive locking and ejecting subset
  145.                                 ;               bit 2 : Enhanced disk drive support subset
  146.                                 ;               bit 3-15 : Reserved, must be 0
  147.                                 ;
  148.                                 ; ces extensions permettent d'utiliser des disques de grande capacité (> 1023 cylindres)
  149.                                 ; si elles existent, CF = 0 et BX = 0xAA55
  150.                                 ; le bit 0 de CX indique si les fonction étendue d'accès au disque dur sont présentes
  151.                                 ; (fonctions 42h, 43h, 44h, 47h, 48h)
  152.     jb fin   ;erreur : fonction non présente
  153.     cmp bx, 0AA55h
  154.     jne fin
  155.     test cl, 01                 ; fonction étendues de lecture / écriture du disque présentes ?
  156.     je fin
  157.     inc byte ptr [Int13Ex]
  158. fin:
  159.     ret
  160. ;--------------------------------------------------------------------------------------
  161. ;--------------------------------------------------------------------------------------
  162. ;    LireSecteur
  163. ;    charge NbSecteursALire secteurs du disque en mémoire à l'adresse pointee par ES:BX
  164. ;    a partir de StartSector
  165. ;
  166. ; adresse = 0C7h
  167. LireSecteur:
  168.     pushad
  169.     push ds
  170.     push es
  171. LireSecteur:
  172.     mov eax, dword ptr [NbSecteursALire]
  173.     add eax, [StartSector]
  174.     cmp eax, [TotalDiskSectors]
  175.     jb Int13Classique
  176. ;au moins un secteur à lire est situé après la limite des 8Go
  177. ;il n'est donc pas possible de le lire avec l'int 13h classique
  178. ;il faut utiliser l'int 13h étendue
  179.     push ds
  180.     push 0
  181.     push eax
  182.     push es
  183.     push bx
  184.     push 00010010h
  185.     cmp byte ptr [Int13Ex], 00
  186.     jne Int13Etendue
  187.     call CheckInt13Ex
  188.     cmp byte ptr [Int13Ex], 00
  189.     je ErreurLecture
  190. Int13Etendue:
  191.     mov ah, 42h
  192.     mov dl, [DiskNumber]
  193.     push ss
  194.     pop ds
  195.     mov si, sp
  196.                                       ; DS:SI pointe sur le sommet de la pile qui contient les valeurs
  197.                                       ; suivantes empilées juste avant :
  198.                                       ;        4 octets : 00010010h
  199.                                       ;        2 octets : BX  = 0
  200.                                       ;        2 octets : ES  = 0D00h
  201.                                       ;        4 octets : EAX = StartSector + NbSecteursALire
  202.                                       ;        2 octets : 0
  203.                                       ;        2 octets : DS  = 07C0h
  204.                                       ;
  205.                                       ; il s'agit en fait d'une structure 'Device address packet' nécessaire
  206.                                       ; à la fonction 42h de l'int 13 pour effectuer une lecture
  207.                                       ; voici le détail de cette structure :
  208.                                       ;
  209.                                       ; DB : taille de la structure (au moins 16)      => 10h
  210.                                       ; DB : réservé (doit valoir 0)                   => 0
  211.                                       ; DB : nbre de blocs a tranferer (127 max)       => 1
  212.                                       ; DB : réservé (doit valoir 0)                   => 0
  213.                                       ; DD : adresse SEG:OFF du buffer                 => ES:BX (0D00h au début)
  214.                                       ; DQ : adresse LBA de lecture (adresse linéaire) => EAX = StartSector + NbSecteursALire
  215.                                       ; DQ : adresse lnéaire du buffer alternatif si aucun premier buffer n'est spécifié
  216.                                       ;      (en passant FFFF:FFFF comme adresse)      => DS = 07C0h
  217.                                       ;
  218.                                       ;
  219.     int 13                            ; int 13 fonction 42h
  220.                                       ; lecture étendue
  221.                                       ; Entrée :
  222.                                       ;         AH - 42h
  223.                                       ;         DL - Drive number
  224.                                       ;         DS:SI - Disk address packet
  225.                                       ; Sortie :
  226.                                       ;          Flag Carry =0 : Opération exécutée
  227.                                     ;          Flag Carry =1 : Erreur, dans ce cas AH=Code d'erreur
  228.     pop eax
  229.     pop bx
  230.     pop es
  231.     pop eax
  232.     pop eax
  233.     pop ds
  234.     jmp LectureFaite
  235. Int13Classique:                               ; EAX = StartSector + NbSecteursALire et EAX < NbSecteurs
  236.     xor edx, edx
  237.     movzx ecx, word ptr [NbSecteurParPiste]
  238.     div ecx                           ; divise (StartSector + NbSecteursALire) par NbSecteurParPiste
  239.                                       ; EAX = quotient = Nombre de pistes
  240.     inc dl                            ; EDX = reste =
  241.     mov cl , dl                       ; CL = Nombre de pistes
  242.     mov edx, eax                      ; EDX = StartSector + NbSecteursALire
  243.     shr edx, 10h                      ; DX = partie haute de (StartSector + NbSecteursALire)
  244.                                       ; AX = partie basse de (StartSector + NbSecteursALire)
  245.     div word ptr [NbTetes]            ; DX:AX divisé par NbTetes
  246.                                       ; AX = quotient = NbCylindres (10 bits)
  247.                                       ; DX = reste = NbSecteursRestant
  248.     xchg dh, dl                       ; DH = NbSecteursRestant
  249.     mov dl, [DiskNumber]
  250.     mov ch, al                        ; CH = partie basse de NbCylindres
  251.     shl ah, 06h                       ; AH = partie haute de NbCylindres
  252.     or cl , ah                        ; CL = Nombre de pistes + partie haute de NbCylindres
  253.                                       ; CX =
  254.     mov ax, 0201h                     ; int 13 fonction 2 : lecture du disque dur
  255.     int 13h                           ; AL = Nombre de secteurs à lire (1 - 128)     => lire 1 secteur
  256.                                       ; DL = Numéro de disque dur (80h ou 81h)
  257.                                       ; DH = Numéro de tête de lecture/écriture
  258.                                       ; CH = Numéro de cylindre
  259.                                       ; CL = Numéro de secteur
  260.                                       ; ES = Adresse de segment du buffer
  261.                                       ; BX = Adresse d'offset du buffer
  262. LectureFaite:
  263.     jb ErreurLecture
  264.     mov ax, es
  265.     add ax, 0020h
  266.     mov es, ax                        ;incrémente ES de 32 octets => ES:BX pointe 512 octets plus loin
  267.     inc word ptr [SecteursLus]
  268.     dec word ptr [NbSecteursALire]
  269.     jne LireSecteur
  270.     pop es
  271.     pop ds
  272.     popad
  273.     ret
  274. ErreurLecture:
  275.     mov al, [MsgErrLecturePtr]
  276.     call PrintString
  277.     mov al, [MsgRebootPtr]
  278.     call PrintString
  279.     sti
  280. boucle2:
  281.     jmp boucle2
  282. ;--------------------------------------------------------------------------------
  283. ;--------------------------------------------------------------------------------
  284. ;  PrintString
  285. ;  affiche uen chaine de caractere a l'ecran
  286. ;  la chaine à afficher est pointee par DS:AL
  287. ;
  288. ; adresse = 0170h
  289. PrintString:
  290.     mov ah, 01
  291.     mov si, ax
  292. PrintChar:
  293.     lodsb               ;transfere 1 octet de DS:SI dans AL, puis inc SI
  294.     cmp al, 00          ;si fin du message, quitter
  295.     je fin2
  296.     mov ah, 0E          ;int 10h fonction 0Eh : Ecrire un caractère
  297.                         ;AL = Code ASCII du caractère
  298.                         ;BL = Couleur de premier plan du caractère
  299.     mov bx, 0007
  300.     int 10
  301.     jmp PrintChar
  302. fin2:
  303.     ret
  304. ;--------------------------------------------------------------------------------
  305. @MsgErrLecture:  ;0183h
  306.     MsgErreurLecture DB 0Dh, 0Ah, "Err. lecture disque", 0
  307.    
  308. @MsgNTLDRManque: ;0199h
  309.     MsgNTLDRManque DB 0Dh, 0Ah, "NTLDR manque", 0,
  310. @MsgNTLDRCompresse: ;01A8h
  311.     MsgNTLDRCompresse DB 0Dh, 0Ah, "NTLDR est compressé", 0
  312. @MsgReboot
  313.     MsgReboot DB 0Dh, 0Ah, "Entrez Ctrl+Alt+Suppr pour redémarrer", 0Dh, 0Ah, 0
  314.     DB 0Dh, 0Ah
  315.     DB 14 DUP(0)
  316.     MsgErrLecturePtr DB @MsgErrLecture - 100h         ; = 83h
  317.     MsgNTLDRManquePtr DB @MsgNTLDRManque - 100h       ; = 99h
  318.     MsgNTLDRCompressePtr DB @MsgNTLDRCompresse - 100h ; = A8h
  319.     MsgRebootPtr DB @MsgReboot - 100h                 ; = BEh
  320.     DB 2 DUP(0)
  321.     DW 55AAh


J'attends ton listing qui augmente les privilèges depuis un compte limité.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°842160
bjone
Insert booze to continue
Posté le 04-09-2004 à 13:54:37  profilanswer
 

deumilcat a écrit :

ben vous vous etes couché tard les gars! :D
 
z'aviez jamais parlé de contourner le kernel mode avant ou quoi?  
 
je suis en train de me demander si le fait que j y connaisse pas grand chose en architecture NT ne me fait pas justement me poser des questions que votre science qqpart vous empeche de vous poser. Je regarde les choses de maniere simpliste et du coup je pense peut etre a des choses que vous n aviez meme pas envisagé. Ca peut etre constructif comme processus vu que au risque de faire un topic-gag on peut en arriver a trouver des failles inédites (au fait prorel> comme je parle d attaquer des entreprises, je sous entendais un peu une attaque sur NT)
 
Est il possible que le virus, en user mode sous Windows puisse modifier le secteur boot (ou readresser le point d entrée du secteur boot vers du code a lui) puis ordonner un reboot (qui normalement ira booter a partir du DD et donc de son prog), afin que du coup le prog du virus s execute des le boot et donc avt chargement de Windows et donc a vec plus de liberté pour foutre le souk dans le PC (prorel>l ecrasement du DD c est bien, arreter le ventilocpu pour griller le CPU en une minute c est l objectif> cramer le PC par virus.. Helloworld> le remplacement des PC est effectivement possible mais remplacer le parc de PCs d une entreprise ca se fait pas en 24h, déjà que des fois faut passer commande pour racheter une souris.. Et puis c est plus lourd car ca oblige a tout reinstaller de fond en comble.. =paralysie totale pdt des jours, d ou "l interet" du virus dont je parle )


 
rohhh ça fait 8 pages qu'on te dit que sans les droits d'admin ou de root tu peux rien faire.
 
par contre si tu utilises un trou de sécu pou élever tes droits, oui.
 
le truc le plus tordu serait de pouvoir trouer un "soft dangeureux" lancable en utilisateur sans droits élevés. (genre un soft d'overclocking facile, qui te permetterai de vautrer la machine)


Message édité par bjone le 04-09-2004 à 13:55:12
n°842174
HelloWorld
Salut tout le monde!
Posté le 04-09-2004 à 14:26:59  profilanswer
 

je ne pense pas qu'arreter un ventilo fasse cramer le CPU, ca fait planter l'ordi. Moi ca m'est arriven un ventillo encrassé par la poussiere. Plus de ventilo du tout. Plantage au bout de qq minutes. Pareil j'ai pas mal de potes fan d'overclocking ben leur PC freezait, ils baissaient la frequence et ca rentrait dans l'odre.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°842176
HelloWorld
Salut tout le monde!
Posté le 04-09-2004 à 14:28:28  profilanswer
 

HelloWorld a écrit :

je ne pense pas qu'arreter un ventilo fasse cramer le CPU, ca fait planter l'ordi. Moi ca m'est arriven un ventillo encrassé par la poussiere. Plus de ventilo du tout. Plantage au bout de qq minutes. Pareil j'ai pas mal de potes fan d'overclocking ben leur PC freezait, ils baissaient la frequence et ca rentrait dans l'odre.


Donc a moins que le micro reste comme ça toute la nuit, le mec il fait un reset 1 ou 2 fois, et puis on en conclu que la machine est en panne. Un depanneur vient et constate que le ventillo s'arrete et puis voila.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°842191
deumilcat
Posté le 04-09-2004 à 15:32:21  profilanswer
 

bjone a écrit :

rohhh ça fait 8 pages qu'on te dit que sans les droits d'admin ou de root tu peux rien faire.


 
rohhh z aviez pas l air tous d accord  :whistle:


Message édité par deumilcat le 04-09-2004 à 15:32:42
n°842193
deumilcat
Posté le 04-09-2004 à 15:34:02  profilanswer
 

HelloWorld a écrit :

Donc a moins que le micro reste comme ça toute la nuit, le mec il fait un reset 1 ou 2 fois, et puis on en conclu que la machine est en panne. Un depanneur vient et constate que le ventillo s'arrete et puis voila.


 
ben aprés je sais pas hein, j ai deja fureté dans les topics overclocking et y en a pas mal qu on bel et bien cramé leurs cpus..

mood
Publicité
Posté le 04-09-2004 à 15:34:02  profilanswer
 

n°842195
HelloWorld
Salut tout le monde!
Posté le 04-09-2004 à 15:45:14  profilanswer
 

oui, en overclockant ca arrive souvent. Mais si on overclock pas c'est plus rare. Mon Ahtlon vit très bien depuis 2 ans avec un seul ventillo au lieu de 2.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°842228
bjone
Insert booze to continue
Posté le 04-09-2004 à 17:32:55  profilanswer
 

deumilcat a écrit :

rohhh z aviez pas l air tous d accord  :whistle:


 
non un seul était d'accord avec nous mais pas dans le même contexte.

n°842229
bjone
Insert booze to continue
Posté le 04-09-2004 à 17:37:21  profilanswer
 

deumilcat a écrit :

ben aprés je sais pas hein, j ai deja fureté dans les topics overclocking et y en a pas mal qu on bel et bien cramé leurs cpus..


 
genre un tbird avec les toutes première mobos sans rien en protection thermique.
 
mais sur le P4, le watchdog thermique est interne, et intel impose un respect de specs à son encontre aux fabricants de mobos (la mobo doit être capable de couper l'alimentation quand le P4 signale que la température critique est atteinte).
 
et sur les derniers athlons, on a bien une diode die et la pluspart des carte-mère possède un watchdog de protection thermique (dont interne), et en plus un système de throttling avant la coupure finale.
 
c'est probablement moins réactif que la protection du P4, mais c'est très largement suffisant pour un ventilo qui s'arrête.
 
bref sur du vieux matériel, sur du récent à ce niveau les dégats/problèmes seront limités. (ceci dit un serveur critique qui s'éteint en pleine nuit, c'est probablement gênant)


Message édité par bjone le 04-09-2004 à 17:38:51
n°842232
bossamiral​2
Ctrl+Alt+Del
Posté le 04-09-2004 à 18:01:36  profilanswer
 

bjone a écrit :

genre un tbird avec les toutes première mobos sans rien en protection thermique.
 
mais sur le P4, le watchdog thermique est interne, et intel impose un respect de specs à son encontre aux fabricants de mobos (la mobo doit être capable de couper l'alimentation quand le P4 signale que la température critique est atteinte).
 
et sur les derniers athlons, on a bien une diode die et la pluspart des carte-mère possède un watchdog de protection thermique (dont interne), et en plus un système de throttling avant la coupure finale.
 
c'est probablement moins réactif que la protection du P4, mais c'est très largement suffisant pour un ventilo qui s'arrête.
 
bref sur du vieux matériel, sur du récent à ce niveau les dégats/problèmes seront limités. (ceci dit un serveur critique qui s'éteint en pleine nuit, c'est probablement gênant)


 
Ben le moyen le plus simple de faire claquer le cpu, c'est d'augmenter son voltage. Evidemment cela implique de reprogrammer le bios de la carte mère.  
 
Je suis presque sur que sur la plupart des cartes mères récentes on peut augmenter le voltage de 0.5 V au moins, à long terme ton cpu crame.

n°842277
printf
Baston !
Posté le 04-09-2004 à 19:24:49  profilanswer
 

Et pourquoi cramerait-il ? Cela chatouillera à peine les transistors; c'est plutôt si tu baisse sa tension que tu va lui faire dissiper plus d'énergie.


---------------
Un matin je me lèverai et il fera beau.
n°842278
prorel
Posté le 04-09-2004 à 19:26:23  profilanswer
 

HelloWorld a écrit :


....
 
Et sinon le voici mon listing du bootloader de XP (de base, pas de SP). Jamais publié, tu le trouveras pa sailleurs :

Code :
  1. ;cette routine doit se situer à l'adresse 07C0h
  2. ;Instruction de saut à la routine de boot (3 octets)
  3.     jmp start ;0054       ;0000
  4.     nop                   ;0002
  5. ;Nom du fabricant et n° version (8 octets)
  6.     DB 'NTFS',0,0,0,0     ;0003
  7. ;Octets par secteur (2 octets)
  8.     SectorSize DW 512                  ;000B  ok
  9. ;Secteurs par cluster (1 octet)
  10.     SecteurParCluster DB 4                   ;000D  ok
  11. ;Nbre secteurs réservés (2 octets)
  12.     NbSecteursALire DW 0                  ;000E  ok
  13. ;inutilisé (5 octet)
  14.     SecteursLus DW 0         ;0010
  15.     dummy3 DW 0              ;0011
  16.     Int13Ex DB 0             ;0013
  17.     ; si 1 => fonction étendues de lecture / écriture du disque présentes
  18. ;Descripteur de support (1 octet)
  19.     DB 0F8h ; disque dur     ;0015
  20. ;inutilisé (2 octets)
  21.     DW 0                     ;0016
  22. ;Nbre de secteurs par piste (2 octets)
  23.     NbSecteurParPiste DW 03Fh    ;0018
  24. ;Nbre de têtes (2 octets)
  25.     NbTetes DW 0FFh              ;001A
  26. ;Distance entre 1er secteur du volume et 1er secteur du support (4 octets)
  27.     StartSector DD 004E327Fh     ;001C
  28. ;inutilisé (4 octets) (initialisé à 0, => espace réservé pour l'exécution)
  29. ;sert a stocker le nombre de secteurs du disque
  30.     TotalDiskSectors DD 0        ;0020
  31. ;inutilisé (4 octets)
  32.     DiskNumber DW 80h            ;0024
  33.     DW 80h                       ;0026
  34. ;Nombre total de secteur (8 octets)
  35.     DQ 005DA3FDh                 ;0028
  36. ;N°logique de cluster de $MFT (Master File Table) (8 octets)
  37.     MFTStartCluster DQ 0003E6D5h                              ;0030  ok
  38. ; start sector = 1022804
  39. ;N°logique de cluster de $MFTMirr (Miroir de Master File Table) (8 octets)
  40.     DQ 0005DA3Fh                 ;0038
  41. ;Nombre de cluster par segment de fichier (4 octets)
  42.     NbClusterParSegmentFichier DD 0F6h                      ;0040  ok
  43.     ;variable signée => 0F6h = -10
  44.     ;si < 0 alors il indique la taille d'un segment de fichier
  45.     ;             au moyen d'une puissance de 2 : -9 => 2 puissance 9 => 512
  46.     ;       sinon il faut multiplier sa valeur par SizeOfCluster pour obtenir
  47.     ;             la taille d'un segment de fichier
  48.     ;donc, SizeOfSegment = 2 puissance 10 = 1024 (1 Ko = taille d'une entrée dans la MFT)
  49. ;Nombre de clusters par block d'index (4 octets)
  50.     DD 2                         ;0044
  51. ;N° de série du disque (8 octets);0048
  52.     DB 7Ch, 0EDh, 02h, 6Ch, 21h, 03h, 6Ch, 24h
  53. ;Checksum (4 octets)
  54.     DD 0                         ;0050
  55. start: ;054h
  56.     cli
  57.     xor ax, ax
  58.     mov ss, ax
  59.     mov sp, 7C00h
  60.     sti
  61.     mov ax, 07C0h
  62.     mov ds, ax
  63.     call CalculeNbSecteurs
  64.     mov ax, 0D00h
  65.     mov es, ax
  66.     xor bx, bx                               ;ES:BX  : adresse où écrire les secteurs lus
  67.     mov byte ptr [NbSecteursALire], 10       ;nombre de secteurs à lire (et placer en ES:BX)
  68.     call LireSecteur
  69.     push 0D00h                               ;0D00:0000    debut de la routine de chargement
  70.     push 026Ah                               ;0D00:026A    point d'entrée de la routine
  71.                                              ;attention : les 512 octets du secteur de boot sont inclus
  72.     retf
  73. ;----------------------------------------------------------------------------------------------------
  74. ; compte le nombre total de secteurs du disque dur
  75. ; la taille max calculée du disque dur est d'environ 8 Go
  76. ; même si le disque fait plus
  77. ; la taille en secteurs est affectée à TotalDiskSectors
  78. ;
  79. ; adresse = 7Bh
  80. CalculeNbSecteurs:
  81.     mov dl, [DiskNumber]    ;[0024]
  82.     mov ah, 08              ;lire le format du disque (DL = numero du dique)
  83.     int 13
  84.     jnb ok
  85. erreur:
  86.     mov cx, FFFF            ;s'il n'est pas possible d'obtenir des infos sur le disque
  87.     mov dh, cl              ;de la part du BIOS, on considère que le disque est de taille max
  88.                             ;à savoir secteurs = 63
  89.                             ;         cylindres = 1023
  90.                             ;         têtes = 255
  91. ok:
  92. ;ici, DL = Nombre de disques durs connectés
  93. ;     DH = Nombre de têtes de lecture/écriture (0=première tête)
  94. ;     CH = Nombre de cylindres (bits 0 à 7)
  95. ;     CL = Nombre de secteurs (bits 0 à 5), Nombre de cylindres (bits 6 à 7)
  96.     movzx eax, dh             ; nombre de têtes - 1
  97.     inc ax                    ; AX = nbre de têtes
  98.     movzx edx, cl
  99.     and dl, 00111111b         ; recupérer le nombre de secteurs (6 bits)
  100.     mul dx                    ; multiplie ax (nb_tetes) avec dx (nb secteurs)
  101.                               ; DX+AX contiennent la taille ocuupée par un cylindre
  102.                               ; comme la multiplication est de 6 bits * 8 bits,
  103.                               ; le résultat tient au max sur 14 bits, soit AX
  104.                               ; donc DX = 0
  105.                               ;      AX = taille d'un cylindre
  106.                               ;     EAX = taille d'un cylindre (14 bits)
  107.     xchg ch, cl
  108.                               ; CH = Nombre de secteurs (bits 0 à 5), Nombre de cylindres (bits 6 à 7)
  109.                               ; CL = Nombre de cylindres (bits 0 à 7)
  110.     shr ch, 06                ; CH = partie haute du nombre de cylindres
  111.     inc cx                    ; CX = partie basse du nombre de cylindres
  112.                               ; CX = nombre de cylindres (10 bits)
  113.     movzx ecx, word ptr cx    ; ECX = Nombre de cylindres (10 bits)
  114.     mul ecx                   ; multiplie EAX (taille cylindre) par ECX (NB cylindre)
  115.                               ; la multiplication tient sur 14 + 10 = 24 bits
  116.                               ; donc EDX = 0
  117.                               ;      EAX = capacité du disque en secteurs (limité à 1023 cylindres)
  118.     mov dword ptr [TotalDiskSectors], eax
  119.     ret
  120. ;--------------------------------------------------------------------------------------------------------
  121. ;--------------------------------------------------------------------------------------
  122. ;   CheckInt13Ex
  123. ;   Test si l'extension de l'int 13h (LBA) est présente ou pas
  124. ;   si oui : Int13Ex est incrémenté
  125. ;
  126. ; adresse = 0AAh
  127. CheckInt13Ex:
  128.     mov ah, 41h
  129.     mov bx, 55AAh
  130.     mov dl, [DiskNumber]
  131.     int 13h
  132.                                 ; test si l'extension de l'int 13h est présente (LBA)
  133.                                 ; entrée :
  134.                                 ;          AH - 41h
  135.                                 ;          BX - 55AAh
  136.                                 ;          DL - Drive number
  137.                                 ; sortie :
  138.                                 ;          Flag Carry =0 : Opération exécutée
  139.                             ;          Flag Carry =1 : Erreur, dans ce cas AH=Code d'erreur (01h, Invalid Command)
  140.                                 ;          AH - Version of extensions = 30h
  141.                                 ;          AL - Internal use only
  142.                                 ;          BX - AA55h
  143.                                 ;          CX - bit 0 : Fixed disk access subset
  144.                                 ;               bit 1 : Drive locking and ejecting subset
  145.                                 ;               bit 2 : Enhanced disk drive support subset
  146.                                 ;               bit 3-15 : Reserved, must be 0
  147.                                 ;
  148.                                 ; ces extensions permettent d'utiliser des disques de grande capacité (> 1023 cylindres)
  149.                                 ; si elles existent, CF = 0 et BX = 0xAA55
  150.                                 ; le bit 0 de CX indique si les fonction étendue d'accès au disque dur sont présentes
  151.                                 ; (fonctions 42h, 43h, 44h, 47h, 48h)
  152.     jb fin   ;erreur : fonction non présente
  153.     cmp bx, 0AA55h
  154.     jne fin
  155.     test cl, 01                 ; fonction étendues de lecture / écriture du disque présentes ?
  156.     je fin
  157.     inc byte ptr [Int13Ex]
  158. fin:
  159.     ret
  160. ;--------------------------------------------------------------------------------------
  161. ;--------------------------------------------------------------------------------------
  162. ;    LireSecteur
  163. ;    charge NbSecteursALire secteurs du disque en mémoire à l'adresse pointee par ES:BX
  164. ;    a partir de StartSector
  165. ;
  166. ; adresse = 0C7h
  167. LireSecteur:
  168.     pushad
  169.     push ds
  170.     push es
  171. LireSecteur:
  172.     mov eax, dword ptr [NbSecteursALire]
  173.     add eax, [StartSector]
  174.     cmp eax, [TotalDiskSectors]
  175.     jb Int13Classique
  176. ;au moins un secteur à lire est situé après la limite des 8Go
  177. ;il n'est donc pas possible de le lire avec l'int 13h classique
  178. ;il faut utiliser l'int 13h étendue
  179.     push ds
  180.     push 0
  181.     push eax
  182.     push es
  183.     push bx
  184.     push 00010010h
  185.     cmp byte ptr [Int13Ex], 00
  186.     jne Int13Etendue
  187.     call CheckInt13Ex
  188.     cmp byte ptr [Int13Ex], 00
  189.     je ErreurLecture
  190. Int13Etendue:
  191.     mov ah, 42h
  192.     mov dl, [DiskNumber]
  193.     push ss
  194.     pop ds
  195.     mov si, sp
  196.                                       ; DS:SI pointe sur le sommet de la pile qui contient les valeurs
  197.                                       ; suivantes empilées juste avant :
  198.                                       ;        4 octets : 00010010h
  199.                                       ;        2 octets : BX  = 0
  200.                                       ;        2 octets : ES  = 0D00h
  201.                                       ;        4 octets : EAX = StartSector + NbSecteursALire
  202.                                       ;        2 octets : 0
  203.                                       ;        2 octets : DS  = 07C0h
  204.                                       ;
  205.                                       ; il s'agit en fait d'une structure 'Device address packet' nécessaire
  206.                                       ; à la fonction 42h de l'int 13 pour effectuer une lecture
  207.                                       ; voici le détail de cette structure :
  208.                                       ;
  209.                                       ; DB : taille de la structure (au moins 16)      => 10h
  210.                                       ; DB : réservé (doit valoir 0)                   => 0
  211.                                       ; DB : nbre de blocs a tranferer (127 max)       => 1
  212.                                       ; DB : réservé (doit valoir 0)                   => 0
  213.                                       ; DD : adresse SEG:OFF du buffer                 => ES:BX (0D00h au début)
  214.                                       ; DQ : adresse LBA de lecture (adresse linéaire) => EAX = StartSector + NbSecteursALire
  215.                                       ; DQ : adresse lnéaire du buffer alternatif si aucun premier buffer n'est spécifié
  216.                                       ;      (en passant FFFF:FFFF comme adresse)      => DS = 07C0h
  217.                                       ;
  218.                                       ;
  219.     int 13                            ; int 13 fonction 42h
  220.                                       ; lecture étendue
  221.                                       ; Entrée :
  222.                                       ;         AH - 42h
  223.                                       ;         DL - Drive number
  224.                                       ;         DS:SI - Disk address packet
  225.                                       ; Sortie :
  226.                                       ;          Flag Carry =0 : Opération exécutée
  227.                                     ;          Flag Carry =1 : Erreur, dans ce cas AH=Code d'erreur
  228.     pop eax
  229.     pop bx
  230.     pop es
  231.     pop eax
  232.     pop eax
  233.     pop ds
  234.     jmp LectureFaite
  235. Int13Classique:                               ; EAX = StartSector + NbSecteursALire et EAX < NbSecteurs
  236.     xor edx, edx
  237.     movzx ecx, word ptr [NbSecteurParPiste]
  238.     div ecx                           ; divise (StartSector + NbSecteursALire) par NbSecteurParPiste
  239.                                       ; EAX = quotient = Nombre de pistes
  240.     inc dl                            ; EDX = reste =
  241.     mov cl , dl                       ; CL = Nombre de pistes
  242.     mov edx, eax                      ; EDX = StartSector + NbSecteursALire
  243.     shr edx, 10h                      ; DX = partie haute de (StartSector + NbSecteursALire)
  244.                                       ; AX = partie basse de (StartSector + NbSecteursALire)
  245.     div word ptr [NbTetes]            ; DX:AX divisé par NbTetes
  246.                                       ; AX = quotient = NbCylindres (10 bits)
  247.                                       ; DX = reste = NbSecteursRestant
  248.     xchg dh, dl                       ; DH = NbSecteursRestant
  249.     mov dl, [DiskNumber]
  250.     mov ch, al                        ; CH = partie basse de NbCylindres
  251.     shl ah, 06h                       ; AH = partie haute de NbCylindres
  252.     or cl , ah                        ; CL = Nombre de pistes + partie haute de NbCylindres
  253.                                       ; CX =
  254.     mov ax, 0201h                     ; int 13 fonction 2 : lecture du disque dur
  255.     int 13h                           ; AL = Nombre de secteurs à lire (1 - 128)     => lire 1 secteur
  256.                                       ; DL = Numéro de disque dur (80h ou 81h)
  257.                                       ; DH = Numéro de tête de lecture/écriture
  258.                                       ; CH = Numéro de cylindre
  259.                                       ; CL = Numéro de secteur
  260.                                       ; ES = Adresse de segment du buffer
  261.                                       ; BX = Adresse d'offset du buffer
  262. LectureFaite:
  263.     jb ErreurLecture
  264.     mov ax, es
  265.     add ax, 0020h
  266.     mov es, ax                        ;incrémente ES de 32 octets => ES:BX pointe 512 octets plus loin
  267.     inc word ptr [SecteursLus]
  268.     dec word ptr [NbSecteursALire]
  269.     jne LireSecteur
  270.     pop es
  271.     pop ds
  272.     popad
  273.     ret
  274. ErreurLecture:
  275.     mov al, [MsgErrLecturePtr]
  276.     call PrintString
  277.     mov al, [MsgRebootPtr]
  278.     call PrintString
  279.     sti
  280. boucle2:
  281.     jmp boucle2
  282. ;--------------------------------------------------------------------------------
  283. ;--------------------------------------------------------------------------------
  284. ;  PrintString
  285. ;  affiche uen chaine de caractere a l'ecran
  286. ;  la chaine à afficher est pointee par DS:AL
  287. ;
  288. ; adresse = 0170h
  289. PrintString:
  290.     mov ah, 01
  291.     mov si, ax
  292. PrintChar:
  293.     lodsb               ;transfere 1 octet de DS:SI dans AL, puis inc SI
  294.     cmp al, 00          ;si fin du message, quitter
  295.     je fin2
  296.     mov ah, 0E          ;int 10h fonction 0Eh : Ecrire un caractère
  297.                         ;AL = Code ASCII du caractère
  298.                         ;BL = Couleur de premier plan du caractère
  299.     mov bx, 0007
  300.     int 10
  301.     jmp PrintChar
  302. fin2:
  303.     ret
  304. ;--------------------------------------------------------------------------------
  305. @MsgErrLecture:  ;0183h
  306.     MsgErreurLecture DB 0Dh, 0Ah, "Err. lecture disque", 0
  307.    
  308. @MsgNTLDRManque: ;0199h
  309.     MsgNTLDRManque DB 0Dh, 0Ah, "NTLDR manque", 0,
  310. @MsgNTLDRCompresse: ;01A8h
  311.     MsgNTLDRCompresse DB 0Dh, 0Ah, "NTLDR est compressé", 0
  312. @MsgReboot
  313.     MsgReboot DB 0Dh, 0Ah, "Entrez Ctrl+Alt+Suppr pour redémarrer", 0Dh, 0Ah, 0
  314.     DB 0Dh, 0Ah
  315.     DB 14 DUP(0)
  316.     MsgErrLecturePtr DB @MsgErrLecture - 100h         ; = 83h
  317.     MsgNTLDRManquePtr DB @MsgNTLDRManque - 100h       ; = 99h
  318.     MsgNTLDRCompressePtr DB @MsgNTLDRCompresse - 100h ; = A8h
  319.     MsgRebootPtr DB @MsgReboot - 100h                 ; = BEh
  320.     DB 2 DUP(0)
  321.     DW 55AAh


J'attends ton listing qui augmente les privilèges depuis un compte limité.


 
je confirme, on ne peut pas trouver ca dans la vraie vie
 
n'importe quel programmeur un peu habitué a l'assembleur verra q'il est impossibile de faire marcher ce "prog"
je ne sais pas en quoi tu es expert, mais en tout cas, pas en assembleur, dommage d'avoir detruit un mythe
 
je ne rentrerais pas dans le prog lui-meme, vu ce qui est presenté dans le listing et ses incoherences, on ne peut meme pas etre sur de son contenu
 
mais mettre un coup du decimal (int 13), puis qq lignes apres de l'hexa (int 13h), et oser mettre ca sur un forum, c'est montrer a tous, son incompetence
et je ne parles pas de la gestions des segments, genre on initialse Es et on utilise Ds  :sarcastic:  
 
quand aux directives d'assemblage, visiblement tu ne dois meme pas savoir ce que ca veut dire
 
bref, tu aurais mieux fait de ne rien mettre, au moins tu aurais pu beneficier du doute, là tu as perdu toute credibilité  :o  
 
pour le reste, que dire??
tu ne vaut meme pas la peine qu'on debatte avec toi, je te repete, pense que je me degonfle, si ca peut satisfaire ton ego, c'est pas un pb
 
pour revenir au sujet, c'est a dire au premier post de ce topic (possibilité d'effacer un dd sous windows avec un prog en assembleur)
je maintients ce que j'ai deja dit
sous window98 et avant, tres facile de detruire un DD
sous ME: ??? connait pas
sous NT4: faisable (faille, voir back oriffice) quelque soit le type de compte
sous 2000: pas essayé mais je pense que c'est le plus sur
sous XP famillial; faisable
sous XP pro +sp1: faisable meme en user dans certains cas  
xp pro+sp2: ???
 
allez je me retire de ce topic
 :hello:

n°842282
printf
Baston !
Posté le 04-09-2004 à 19:31:42  profilanswer
 

Moi aussi, ton programme est tellement nul, tu es tellement un gros incompétent et moi un expert que je ne m'embêterais même pas à le lire [:kiki]


---------------
Un matin je me lèverai et il fera beau.
n°842292
bjone
Insert booze to continue
Posté le 04-09-2004 à 19:43:31  profilanswer
 

bossamiral2 a écrit :

Ben le moyen le plus simple de faire claquer le cpu, c'est d'augmenter son voltage. Evidemment cela implique de reprogrammer le bios de la carte mère.  
 
Je suis presque sur que sur la plupart des cartes mères récentes on peut augmenter le voltage de 0.5 V au moins, à long terme ton cpu crame.


 
exact, mais c'est pas tellement reprogrammer le bios qu'il faut, ce qui serait plus batard serait de changer les réglages dans la ram cmos :D
ou d'attaquer directement la PLL sur le SMBus. (mais pour ça il y aura ptet un outil d'installé)

n°842318
bjone
Insert booze to continue
Posté le 04-09-2004 à 20:01:34  profilanswer
 

prorel a écrit :

je confirme, on ne peut pas trouver ca dans la vraie vie
 
n'importe quel programmeur un peu habitué a l'assembleur verra q'il est impossibile de faire marcher ce "prog"
je ne sais pas en quoi tu es expert, mais en tout cas, pas en assembleur, dommage d'avoir detruit un mythe
 
je ne rentrerais pas dans le prog lui-meme, vu ce qui est presenté dans le listing et ses incoherences, on ne peut meme pas etre sur de son contenu
 
mais mettre un coup du decimal (int 13), puis qq lignes apres de l'hexa (int 13h), et oser mettre ca sur un forum, c'est montrer a tous, son incompetence
et je ne parles pas de la gestions des segments, genre on initialse Es et on utilise Ds  :sarcastic:  
 
quand aux directives d'assemblage, visiblement tu ne dois meme pas savoir ce que ca veut dire
 
bref, tu aurais mieux fait de ne rien mettre, au moins tu aurais pu beneficier du doute, là tu as perdu toute credibilité  :o  
 
pour le reste, que dire??
tu ne vaut meme pas la peine qu'on debatte avec toi, je te repete, pense que je me degonfle, si ca peut satisfaire ton ego, c'est pas un pb
 
pour revenir au sujet, c'est a dire au premier post de ce topic (possibilité d'effacer un dd sous windows avec un prog en assembleur)
je maintients ce que j'ai deja dit
sous window98 et avant, tres facile de detruire un DD
sous ME: ??? connait pas
sous NT4: faisable (faille, voir back oriffice) quelque soit le type de compte
sous 2000: pas essayé mais je pense que c'est le plus sur
sous XP famillial; faisable
sous XP pro +sp1: faisable meme en user dans certains cas  
xp pro+sp2: ???
 
allez je me retire de ce topic
 :hello:


 
j'avoues il a glissé sur les h.
sinon question directives des assembleurs comme a86 et a386 s'en foutent et te produiront un binaire pour le mode réel (en .com, donc attention à l'org quand même)
 
enfin je t'avouerais que j'ai jamais cherché à faire un bootloader et dans l'ensemble je m'en fous.
 
mais dire qu'avec des os comme 98/Me (si tu est sûr de pouvoir le faire sous 98, tu ne devrais avoir aucun doutes en ce qui concerne Me) tu peux effaçer un dur, c'est défoncer des portes ouvertes.
 
xp famillial, tous les comptes doivent être admin/avec pouvoir (ché pu si on peut les foutre en utilisateur normal)  
 
xp+sp1 c'est normal y'a des trous de sécu (sinon y'aurait pas le sp2)
sp2 ché pas si y'a des trous de sécu pour faire des élévations de pouvoir (mais sinon c'est à venir)
 
accessoirement t'as qu'a dire qu'on peut mettre un bootloader en te connectant sur internet, si tu fais des dépassements de tampons sur les services, ou en branchant un périph USB faké.
 
bin oui, personne a dû vraiment recherché des dépassements de tampons possibles dans les piles USB de win et linux, et des dépassements de tampons dans les drivers USB de chaque périphérique.
 
car tu peux très bien avoir aussi un dépassement de tampon possible dans un driver de souris logitech/microsoft ou de joystick saitek, tu vas en entreprise tu branches ton périph USB qui balance des trames malformés et tu fais une prise de contrôle au niveau kernel, etc, etc...
 
bref, avoir une discussion centrée sur un bootloader, bof....
c'est pas non plus super haut comme niveau...

n°842447
HelloWorld
Salut tout le monde!
Posté le 04-09-2004 à 23:06:56  profilanswer
 

Je précise juste que ce code n'a jamais été compilé, c'est le desassemblage du bootloader de XP. Tous les nombres sont en hexa, donc y'a des h qui ont glissé oui. Et l'histoire des segments, c'est aux mecs de MS qui faut faire la remarque.  
Sinon, ce qui m'intrigue toujours ce sont tous ces "certains cas", que tu oublies systématiquement de détailler, et aussi le fait que XP Home soit affecté et pas XP pro. Sous le capot c'est le même moteur pour les 2...
Au passage aussi je me suis jamais présenté comme un expert en asm, j'ai pas peur de dire que je maitrise pas du tout ce langage. Enfin bon la blague a bien duré, moi aussi j'arrête. Y'a pas besoin de justifier le fait que tu connais rien à l'archi de Windows. Au moins t'auras appris quelques trucs, on a pas completement perdu notre temps. Le truc qui me gêne un peu c'est le manque de respect qui chez des "petits" passe encore, mais d'après tes dires t'es assez agé, et ça je trouve lamentable. Je me console toujours de la même manière dans ce cas : j'imagine ce que tu aurais dit entre 4 yeux en face à face, et je souris. J'espère quand même que tu as moins de 25 ans, parce que sinon c'est inquiétant.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°842456
void_ppc
Posté le 04-09-2004 à 23:23:15  profilanswer
 

HelloWorld a écrit :

Je précise juste que ce code n'a jamais été compilé, c'est le desassemblage du bootloader de XP.


 
illégal non ?

n°842508
bjone
Insert booze to continue
Posté le 05-09-2004 à 00:54:29  profilanswer
 

non (quoique ? :D)


Message édité par bjone le 05-09-2004 à 00:54:47
n°842772
HelloWorld
Salut tout le monde!
Posté le 05-09-2004 à 14:56:19  profilanswer
 

void_ppc a écrit :

illégal non ?


A but de compréhension et d'inter-opératibilité évidemment.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°842883
void_ppc
Posté le 05-09-2004 à 19:29:40  profilanswer
 

HelloWorld a écrit :

A but de compréhension et d'inter-opératibilité évidemment.


 
Tu le sors d'où ça ?  :heink:  
 
c:\windows\system32\eula.txt
 

Citation :

* Limitations relatives à l'ingénierie à rebours, à la  
décompilation et au désassemblage. Vous n'êtes pas  
autorisé à reconstituer la logique du LOGICIEL, à le  
décompiler ou à le désassembler, sauf dans la mesure où  
ces opérations seraient expressément permises par la  
réglementation applicable nonobstant la présente  
limitation.


 
 

Citation :


DISPOSITIONS SPÉCIALES
 
Ingénierie à rebours. Si vous vous êtes procuré le  
LOGICIEL dans un pays de la Communauté  
Européenne, vous vous interdisez de reconstituer  
la logique du LOGICIEL, de le décompiler ou de le  
désassembler, sauf dans la mesure où ces  
opérations seraient expressément permises par la  
réglementation applicable.

n°842884
BMenez
Posté le 05-09-2004 à 19:38:25  profilanswer
 

void_ppc a écrit :

Tu le sors d'où ça ?  :heink:


 
Article L.122-6-1 du Code la Propriété Intellectuel : La décompilation est autorisée si elle est indispensable pour obtenir des informations necessaires à l'interopérabilité :p


Message édité par BMenez le 05-09-2004 à 19:38:52
n°842968
bjone
Insert booze to continue
Posté le 05-09-2004 à 23:11:12  profilanswer
 

bin c'est nécessaire dans le cas du bootblock, sinon comment-veux tu faire un gestionnaire de boot ou autre gestionnaire de partition ? (genre Partition Magic)


Message édité par bjone le 05-09-2004 à 23:11:34
n°843128
void_ppc
Posté le 06-09-2004 à 10:55:40  profilanswer
 

exact  :jap:

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  6  7  8
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
application de droit sauvegardé ds une base a appliqué a windowsnovice en prog demande aide
Streaming audio et les prog de download[SGBD] Tip : Comment installer le client Oracle 10g sous Windows
Un compilateur C optimisé pour windows[batch] tache planifiée / changer l heure de windows
[VisualC++] contrôler l'imprimante[VC++6] Comment enregistrer une appli sous Windows? (association, etc)
Softice sous windows xp: hwnd [..] bug?GTK+ sous windows
Plus de sujets relatifs à : Windows peut il controler un prog executé en assembleur?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR