TUTORIAL BOOTLOADER IN ASSEMBLY

Поділитися
Вставка
  • Опубліковано 5 лип 2024
  • SOURCE CODE
    github.com/MATTIAloyoutuber/b...
    ECCO I MIEI SOCIAL
    mrtech159?i...
    github.com/MATTIAloyoutuber
    / @malwaretester4._57
    / discord
    www.tiktok.com/@mattialoyt?_t...
  • Наука та технологія

КОМЕНТАРІ • 8

  • @inside2000-D
    @inside2000-D 5 днів тому +2

    : (
    A problem has occurred

  • @Crisopeo
    @Crisopeo 6 днів тому +2

    first?

  • @MalwareLab150
    @MalwareLab150  6 днів тому

    SPIEGAZIONE DA COPILOT AI(NON SO SPIEGARE)
    ### Intestazione
    ```assembly
    BITS 16
    ORG 0x7C00
    ```
    - **BITS 16**: Il codice viene scritto per un processore a 16 bit.
    - **ORG 0x7C00**: Il BIOS carica il programma all'indirizzo di memoria 0x7C00.
    ### Inizio del Programma
    ```assembly
    start:
    xor ax, ax
    mov ds, ax
    mov es, ax
    ```
    - **xor ax, ax**: Azzera il registro AX.
    - **mov ds, ax** e **mov es, ax**: Imposta i segmenti di dati (DS) ed extra (ES) a 0.
    ### Imposta il Segmento Video
    ```assembly
    mov bx, 0xB800
    mov es, bx
    ```
    - **mov bx, 0xB800**: BX viene impostato all'indirizzo del segmento video.
    - **mov es, bx**: Imposta ES all'indirizzo del segmento video.
    ### Pulisci lo Schermo e Avvia l'Animazione
    ```assembly
    call clear_screen
    call animate_colors
    ```
    - **call clear_screen**: Pulisce lo schermo.
    - **call animate_colors**: Avvia l'animazione dei colori.
    ### Loop Infinito
    ```assembly
    hang:
    jmp hang
    ```
    - **jmp hang**: Resta bloccato qui per sempre.
    ### Funzione per Pulire lo Schermo
    ```assembly
    clear_screen:
    mov di, 0
    mov cx, 2000
    mov ax, 0x0720
    rep stosw
    ret
    ```
    - **mov di, 0**: Inizia dal primo carattere dello schermo.
    - **mov cx, 2000**: Ci sono 2000 spazi sullo schermo (80 colonne x 25 righe).
    - **mov ax, 0x0720**: AX contiene uno spazio (0x20) con l'attributo di colore bianco su nero (0x07).
    - **rep stosw**: Riempie lo schermo con spazi bianchi.
    - **ret**: Torna al programma principale.
    ### Funzione per l'Animazione dei Colori
    ```assembly
    animate_colors:
    mov cx, 2000
    mov di, 0
    .next_frame:
    call get_random_byte
    and al, 0x0F
    mov ah, al
    mov al, 0xDB
    stosw
    loop .next_frame
    call delay
    jmp animate_colors
    ```
    - **mov cx, 2000**: 2000 spazi da riempire.
    - **mov di, 0**: Inizia dal primo carattere.
    - **.next_frame**: Inizia un nuovo fotogramma dell'animazione.
    - **call get_random_byte**: Ottiene un byte casuale.
    - **and al, 0x0F**: Mantiene solo la parte bassa del byte (0-15).
    - **mov ah, al**: Imposta il colore casuale.
    - **mov al, 0xDB**: Imposta il carattere a un blocco pieno (0xDB).
    - **stosw**: Scrive il carattere e il colore sullo schermo.
    - **loop .next_frame**: Ripete fino a riempire lo schermo.
    - **call delay**: Aggiunge un ritardo.
    - **jmp animate_colors**: Ripete l'animazione.
    ### Funzione per Ottenere un Byte Casuale
    ```assembly
    get_random_byte:
    in al, 0x40
    ret
    ```
    - **in al, 0x40**: Ottiene un byte casuale dalla porta di I/O 0x40.
    - **ret**: Torna alla funzione chiamante.
    ### Funzione di Ritardo
    ```assembly
    delay:
    mov cx, 0xFFFF
    .delay_loop:
    loop .delay_loop
    ret
    ```
    - **mov cx, 0xFFFF**: Imposta un grande valore per il contatore.
    - **.delay_loop**: Loop di ritardo.
    - **loop .delay_loop**: Decrementa CX e ripete il loop fino a zero.
    - **ret**: Torna alla funzione chiamante.
    ### Fine del Settore di Boot
    ```assembly
    times 510-($-$$) db 0
    dw 0xAA55
    ```
    - **times 510-($-$$) db 0**: Riempie fino a 510 byte con zeri.
    - **dw 0xAA55**: Segno di fine settore di boot.
    In sintesi, questo programma pulisce lo schermo e poi riempie continuamente lo schermo con blocchi colorati casuali, creando un'animazione.

    • @inside2000-D
      @inside2000-D 5 днів тому +2

      Ah tipo quella di ripper?

    • @MalwareLab150
      @MalwareLab150  5 днів тому

      @@inside2000-D no

    • @MalwareLab150
      @MalwareLab150  5 днів тому

      @@inside2000-D Ripper butta giù l'mbr e basta non ha l'mbr gdi

    • @inside2000-D
      @inside2000-D 5 днів тому +2

      @@MalwareLab150 no intendevo gli effetti

    • @MalwareLab150
      @MalwareLab150  5 днів тому +1

      ​@@inside2000-Dno , gli effetti sono solo in C# ( Ripper è creato SOLO con C#)