     1                                  ; NullOS v1.0 - 16-bit Kernel (512 byte boot sector)
     2                                  ; RGB Pastel Terminal - Keyboard Only - No Linux
     3                                  [BITS 16]
     4                                  [ORG 0x7C00]
     5 00000000 E93E08                  jmp start
     6                                  
     7 00000003 E29594E29590E29590-     banner: db '╔══════════════════════════════════════╗',13,10
     7 0000000C E29590E29590E29590-
     7 00000015 E29590E29590E29590-
     7 0000001E E29590E29590E29590-
     7 00000027 E29590E29590E29590-
     7 00000030 E29590E29590E29590-
     7 00000039 E29590E29590E29590-
     7 00000042 E29590E29590E29590-
     7 0000004B E29590E29590E29590-
     7 00000054 E29590E29590E29590-
     7 0000005D E29590E29590E29590-
     7 00000066 E29590E29590E29590-
     7 0000006F E29590E29590E29590-
     7 00000078 E295970D0A         
     8 0000007D E2959120202020E296-            db '║    ██████╗ ██╗   ██╗██╗  ██╗        ║',13,10
     8 00000086 88E29688E29688E296-
     8 0000008F 88E29688E29688E295-
     8 00000098 9720E29688E29688E2-
     8 000000A1 9597202020E29688E2-
     8 000000AA 9688E29597E29688E2-
     8 000000B3 9688E295972020E296-
     8 000000BC 88E29688E295972020-
     8 000000C5 202020202020E29591-
     8 000000CE 0D0A               
     9 000000D0 E2959120202020E295-            db '║    ╚════██╗██║   ██║██║ ███╔╝        ║',13,10
     9 000000D9 9AE29590E29590E295-
     9 000000E2 90E29590E29688E296-
     9 000000EB 88E29597E29688E296-
     9 000000F4 88E29591202020E296-
     9 000000FD 88E29688E29591E296-
     9 00000106 88E29688E2959120E2-
     9 0000010F 9688E29688E29688E2-
     9 00000118 9594E2959D20202020-
     9 00000121 20202020E295910D0A 
    10 0000012A E295912020202020E2-            db '║     ██╔╝ ██║   ██║█████╔╝         ║',13,10
    10 00000133 9688E29688E29594E2-
    10 0000013C 959D20E29688E29688-
    10 00000145 E29591202020E29688-
    10 0000014E E29688E29591E29688-
    10 00000157 E29688E29688E29688-
    10 00000160 E29688E29594E2959D-
    10 00000169 202020202020202020-
    10 00000172 E295910D0A         
    11 00000177 E2959120202020E296-            db '║    ██╔╝   ██║   ██║██╔═██╗         ║',13,10
    11 00000180 88E29688E29594E295-
    11 00000189 9D202020E29688E296-
    11 00000192 88E29591202020E296-
    11 0000019B 88E29688E29591E296-
    11 000001A4 88E29688E29594E295-
    11 000001AD 90E29688E29688E295-
    11 000001B6 972020202020202020-
    11 000001BF 20E295910D0A       
    12 000001C5 E2959120202020E295-            db '║    ╚██████╔╝╚██████╔╝██║  ██╗       ║',13,10
    12 000001CE 9AE29688E29688E296-
    12 000001D7 88E29688E29688E296-
    12 000001E0 88E29594E2959DE295-
    12 000001E9 9AE29688E29688E296-
    12 000001F2 88E29688E29688E296-
    12 000001FB 88E29594E2959DE296-
    12 00000204 88E29688E295912020-
    12 0000020D E29688E29688E29597-
    12 00000216 20202020202020E295-
    12 0000021F 910D0A             
    13 00000222 E295912020202020E2-            db '║     ╚═════╝  ╚═════╝ ╚═╝  ╚═╝       ║',13,10
    13 0000022B 959AE29590E29590E2-
    13 00000234 9590E29590E29590E2-
    13 0000023D 959D2020E2959AE295-
    13 00000246 90E29590E29590E295-
    13 0000024F 90E29590E2959D20E2-
    13 00000258 959AE29590E2959D20-
    13 00000261 20E2959AE29590E295-
    13 0000026A 9D20202020202020E2-
    13 00000273 95910D0A           
    14 00000277 E29591202020202020-            db '║         RGB PASTEL TERMINAL         ║',13,10
    14 00000280 202020524742205041-
    14 00000289 5354454C205445524D-
    14 00000292 494E414C2020202020-
    14 0000029B 20202020E295910D0A 
    15 000002A4 E2959AE29590E29590-            db '╚══════════════════════════════════════╝',13,10
    15 000002AD E29590E29590E29590-
    15 000002B6 E29590E29590E29590-
    15 000002BF E29590E29590E29590-
    15 000002C8 E29590E29590E29590-
    15 000002D1 E29590E29590E29590-
    15 000002DA E29590E29590E29590-
    15 000002E3 E29590E29590E29590-
    15 000002EC E29590E29590E29590-
    15 000002F5 E29590E29590E29590-
    15 000002FE E29590E29590E29590-
    15 00000307 E29590E29590E29590-
    15 00000310 E29590E29590E29590-
    15 00000319 E2959D0D0A         
    16 0000031E 683D68656C7020773D-            db 'h=help w=wifi s=scan b=ble u=usb r=rf',13,10
    16 00000327 7769666920733D7363-
    16 00000330 616E20623D626C6520-
    16 00000339 753D75736220723D72-
    16 00000342 660D0A             
    17 00000345 6E3D6E657420743D74-            db 'n=net t=tb  TAB=switch panels',13,10
    17 0000034E 6220205441423D7377-
    17 00000357 697463682070616E65-
    17 00000360 6C730D0A           
    18 00000364 4B4559424F41524420-            db 'KEYBOARD ONLY - NO MOUSE',13,10
    18 0000036D 4F4E4C59202D204E4F-
    18 00000376 204D4F5553450D0A   
    19 0000037E E29AA020534543204C-            db '⚠ SEC LAB AUTHORIZED ONLY ⚠',13,10,0
    19 00000387 414220415554484F52-
    19 00000390 495A4544204F4E4C59-
    19 00000399 20E29AA00D0A00     
    20                                  
    21 000003A0 6E756C6C6F733E2000      prompt: db 'nullos> ',0
    22                                  
    23                                  tabnames:
    24 000003A9 [B103][BE03][CB03]-         dw tab0, tab1, tab2, tab3
    24 000003AF [D503]             
    25 000003B1 5B205445524D494E41-     tab0: db '[ TERMINAL ]',0
    25 000003BA 4C205D00           
    26 000003BE 5B2053455454494E47-     tab1: db '[ SETTINGS ]',0
    26 000003C7 53205D00           
    27 000003CB 5B204755494445205D-     tab2: db '[ GUIDE ]',0
    27 000003D4 00                 
    28 000003D5 5B20544F4F4C53205D-     tab3: db '[ TOOLS ]',0
    28 000003DE 00                 
    29                                  
    30                                  help_msg:
    31 000003DF 0D0AE29594E29590E2-         db 13,10,'╔═══ NullOS COMMANDS ═══╗',13,10
    31 000003E8 9590E29590204E756C-
    31 000003F1 6C4F5320434F4D4D41-
    31 000003FA 4E445320E29590E295-
    31 00000403 90E29590E295970D0A 
    32 0000040C E29591206820202D20-         db '║ h  - This help          ║',13,10
    32 00000415 546869732068656C70-
    32 0000041E 202020202020202020-
    32 00000427 20E295910D0A       
    33 0000042D E29591206320202D20-         db '║ c  - Clear screen      ║',13,10
    33 00000436 436C65617220736372-
    33 0000043F 65656E202020202020-
    33 00000448 E295910D0A         
    34 0000044D E29591207720202D20-         db '║ w  - WiFi attacks      ║',13,10
    34 00000456 576946692061747461-
    34 0000045F 636B73202020202020-
    34 00000468 E295910D0A         
    35 0000046D E29591207320202D20-         db '║ s  - Network scanner   ║',13,10
    35 00000476 4E6574776F726B2073-
    35 0000047F 63616E6E6572202020-
    35 00000488 E295910D0A         
    36 0000048D E29591206220202D20-         db '║ b  - BLE/Bluetooth     ║',13,10
    36 00000496 424C452F426C756574-
    36 0000049F 6F6F74682020202020-
    36 000004A8 E295910D0A         
    37 000004AD E29591207520202D20-         db '║ u  - USB HID attacks   ║',13,10
    37 000004B6 555342204849442061-
    37 000004BF 747461636B73202020-
    37 000004C8 E295910D0A         
    38 000004CD E29591207220202D20-         db '║ r  - RF spectrum       ║',13,10
    38 000004D6 524620737065637472-
    38 000004DF 756D20202020202020-
    38 000004E8 E295910D0A         
    39 000004ED E29591206E20202D20-         db '║ n  - Network pen test  ║',13,10
    39 000004F6 4E6574776F726B2070-
    39 000004FF 656E20746573742020-
    39 00000508 E295910D0A         
    40 0000050D E29591207420202D20-         db '║ t  - Thunderbolt4 DMA   ║',13,10
    40 00000516 5468756E646572626F-
    40 0000051F 6C743420444D412020-
    40 00000528 20E295910D0A       
    41 0000052E E2959120544142202D-         db '║ TAB - Switch panels    ║',13,10
    41 00000537 205377697463682070-
    41 00000540 616E656C7320202020-
    41 00000549 E295910D0A         
    42 0000054E E2959AE29590E29590-         db '╚════════════════════════╝',13,10,0
    42 00000557 E29590E29590E29590-
    42 00000560 E29590E29590E29590-
    42 00000569 E29590E29590E29590-
    42 00000572 E29590E29590E29590-
    42 0000057B E29590E29590E29590-
    42 00000584 E29590E29590E29590-
    42 0000058D E29590E29590E29590-
    42 00000596 E29590E2959D0D0A00 
    43                                  
    44                                  wifi_msg:
    45 0000059F 0D0A5B574946495D20-         db 13,10,'[WIFI] airmon | airodump | aireplay',13,10
    45 000005A8 6169726D6F6E207C20-
    45 000005B1 6169726F64756D7020-
    45 000005BA 7C2061697265706C61-
    45 000005C3 790D0A             
    46 000005C6 202020202020206465-         db '       deauth | handshake | pmkid',13,10
    46 000005CF 61757468207C206861-
    46 000005D8 6E647368616B65207C-
    46 000005E1 20706D6B69640D0A   
    47 000005E9 202020202020206576-         db '       eviltwin | hashcat | wifite',13,10,0
    47 000005F2 696C7477696E207C20-
    47 000005FB 68617368636174207C-
    47 00000604 207769666974650D0A-
    47 0000060D 00                 
    48                                  
    49                                  scan_msg:
    50 0000060E 0D0A5B5343414E5D20-         db 13,10,'[SCAN] nmap -sS -sV 10.0.0.0/24',13,10
    50 00000617 6E6D6170202D735320-
    50 00000620 2D73562031302E302E-
    50 00000629 302E302F32340D0A   
    51 00000631 202020202020206E65-         db '       netdiscover | arp-scan -l',13,10,0
    51 0000063A 74646973636F766572-
    51 00000643 207C206172702D7363-
    51 0000064C 616E202D6C0D0A00   
    52                                  
    53                                  ble_msg:
    54 00000654 0D0A5B424C455D2068-         db 13,10,'[BLE] hcitool lescan',13,10
    54 0000065D 6369746F6F6C206C65-
    54 00000666 7363616E0D0A       
    55 0000066C 202020202020206761-         db '       gatttool | btlejuice',13,10
    55 00000675 7474746F6F6C207C20-
    55 0000067E 62746C656A75696365-
    55 00000687 0D0A               
    56 00000689 202020202020206375-         db '       cursed-ble-glitch',13,10,0
    56 00000692 727365642D626C652D-
    56 0000069B 676C697463680D0A00 
    57                                  
    58                                  usb_msg:
    59 000006A4 0D0A5B5553425D2072-         db 13,10,'[USB] rubberducky | teensy',13,10
    59 000006AD 75626265726475636B-
    59 000006B6 79207C207465656E73-
    59 000006BF 790D0A             
    60 000006C2 202020202020206261-         db '       badusb | keystroke inject',13,10
    60 000006CB 64757362207C206B65-
    60 000006D4 797374726F6B652069-
    60 000006DD 6E6A6563740D0A     
    61 000006E4 202020202020206372-         db '       credential harvest',13,10,0
    61 000006ED 6564656E7469616C20-
    61 000006F6 686172766573740D0A-
    61 000006FF 00                 
    62                                  
    63                                  rf_msg:
    64 00000700 0D0A5B52465D207274-         db 13,10,'[RF] rtl-sdr | gqrx | cubicSDR',13,10
    64 00000709 6C2D736472207C2067-
    64 00000712 717278207C20637562-
    64 0000071B 69635344520D0A     
    65 00000722 202020202020343333-         db '      433mhz | 915mhz | sub-ghz',13,10
    65 0000072B 6D687A207C20393135-
    65 00000734 6D687A207C20737562-
    65 0000073D 2D67687A0D0A       
    66 00000743 202020202020726675-         db '      rfuzz | replay | jam',13,10,0
    66 0000074C 7A7A207C207265706C-
    66 00000755 6179207C206A616D0D-
    66 0000075E 0A00               
    67                                  
    68                                  net_msg:
    69 00000760 0D0A5B4E45545D2065-         db 13,10,'[NET] ettercap | mitmproxy',13,10
    69 00000769 74746572636170207C-
    69 00000772 206D69746D70726F78-
    69 0000077B 790D0A             
    70 0000077E 202020202020206172-         db '       arp-spoof | dns-spoof',13,10
    70 00000787 702D73706F6F66207C-
    70 00000790 20646E732D73706F6F-
    70 00000799 660D0A             
    71 0000079C 202020202020207373-         db '       sslstrip | responder',13,10,0
    71 000007A5 6C7374726970207C20-
    71 000007AE 726573706F6E646572-
    71 000007B7 0D0A00             
    72                                  
    73                                  tb_msg:
    74 000007BA 0D0A5B5442345D2044-         db 13,10,'[TB4] DMA dump | pcileech',13,10
    74 000007C3 4D412064756D70207C-
    74 000007CC 207063696C65656368-
    74 000007D5 0D0A               
    75 000007D7 202020202020207468-         db '       thunderstrike | iommu bypass',13,10
    75 000007E0 756E64657273747269-
    75 000007E9 6B65207C20696F6D6D-
    75 000007F2 75206279706173730D-
    75 000007FB 0A                 
    76 000007FC 202020202020202121-         db '       !! REQUIRES THUNDERBOLT 4 !!',13,10,0
    76 00000805 205245515549524553-
    76 0000080E 205448554E44455242-
    76 00000817 4F4C5420342021210D-
    76 00000820 0A00               
    77                                  
    78                                  unk_msg:
    79 00000822 556E6B6E6F776E2E20-         db 'Unknown. Type h for help.',13,10,0
    79 0000082B 54797065206820666F-
    79 00000834 722068656C702E0D0A-
    79 0000083D 00                 
    80                                  
    81 0000083E 0D0A00                  crlf: db 13,10,0
    82                                  
    83                                  start:
    84 00000841 B80300                      mov ax, 0x0003
    85 00000844 CD10                        int 0x10
    86 00000846 BE[0300]                    mov si, banner
    87 00000849 E8FA00                      call print_str
    88 0000084C EB00                        jmp main_loop
    89                                  
    90                                  main_loop:
    91 0000084E BE[A003]                    mov si, prompt
    92 00000851 E8F200                      call print_str
    93 00000854 31FF                        xor di, di
    94                                  
    95                                  read_char:
    96 00000856 30E4                        xor ah, ah
    97 00000858 CD16                        int 0x16
    98 0000085A 3C0D                        cmp al, 13
    99 0000085C 7454                        je process_cmd
   100 0000085E 3C08                        cmp al, 8
   101 00000860 7414                        je handle_backspace
   102 00000862 3C09                        cmp al, 9
   103 00000864 7426                        je handle_tab
   104 00000866 83FF1F                      cmp di, 31
   105 00000869 74EB                        je read_char
   106 0000086B B40E                        mov ah, 0x0E
   107 0000086D CD10                        int 0x10
   108 0000086F 8885[5309]                  mov [cmd_buffer+di], al
   109 00000873 47                          inc di
   110 00000874 EBE0                        jmp read_char
   111                                  
   112                                  handle_backspace:
   113 00000876 83FF00                      cmp di, 0
   114 00000879 74DB                        je read_char
   115 0000087B 4F                          dec di
   116 0000087C B40E                        mov ah, 0x0E
   117 0000087E B008                        mov al, 8
   118 00000880 CD10                        int 0x10
   119 00000882 B020                        mov al, ' '
   120 00000884 CD10                        int 0x10
   121 00000886 B008                        mov al, 8
   122 00000888 CD10                        int 0x10
   123 0000088A EBCA                        jmp read_char
   124                                  
   125                                  handle_tab:
   126 0000088C BE[3E08]                    mov si, crlf
   127 0000088F E8B400                      call print_str
   128 00000892 A0[5209]                    mov al, [current_tab]
   129 00000895 FEC0                        inc al
   130 00000897 2403                        and al, 3
   131 00000899 A2[5209]                    mov [current_tab], al
   132 0000089C D0E0                        shl al, 1
   133 0000089E 30E4                        xor ah, ah
   134 000008A0 BB[A903]                    mov bx, tabnames
   135 000008A3 01C3                        add bx, ax
   136 000008A5 8B37                        mov si, [bx]
   137 000008A7 E89C00                      call print_str
   138 000008AA BE[3E08]                    mov si, crlf
   139 000008AD E89600                      call print_str
   140 000008B0 EB9C                        jmp main_loop
   141                                  
   142                                  process_cmd:
   143 000008B2 C685[5309]00                mov byte [cmd_buffer+di], 0
   144 000008B7 803E[5309]00                cmp byte [cmd_buffer], 0
   145 000008BC 7490                        je main_loop
   146 000008BE A0[5309]                    mov al, [cmd_buffer]
   147                                  
   148 000008C1 3C68                        cmp al, 'h'
   149 000008C3 7422                        je cmd_help
   150 000008C5 3C63                        cmp al, 'c'
   151 000008C7 7427                        je cmd_cls
   152 000008C9 3C77                        cmp al, 'w'
   153 000008CB 7431                        je cmd_wifi
   154 000008CD 3C73                        cmp al, 's'
   155 000008CF 7436                        je cmd_scan
   156 000008D1 3C62                        cmp al, 'b'
   157 000008D3 743B                        je cmd_ble
   158 000008D5 3C75                        cmp al, 'u'
   159 000008D7 7440                        je cmd_usb
   160 000008D9 3C72                        cmp al, 'r'
   161 000008DB 7445                        je cmd_rf
   162 000008DD 3C6E                        cmp al, 'n'
   163 000008DF 744A                        je cmd_net
   164 000008E1 3C74                        cmp al, 't'
   165 000008E3 744F                        je cmd_tb
   166 000008E5 EB56                        jmp cmd_unknown
   167                                  
   168                                  cmd_help:
   169 000008E7 BE[DF03]                    mov si, help_msg
   170 000008EA E85900                      call print_str
   171 000008ED E95EFF                      jmp main_loop
   172                                  
   173                                  cmd_cls:
   174 000008F0 B80300                      mov ax, 0x0003
   175 000008F3 CD10                        int 0x10
   176 000008F5 BE[0300]                    mov si, banner
   177 000008F8 E84B00                      call print_str
   178 000008FB E950FF                      jmp main_loop
   179                                  
   180                                  cmd_wifi:
   181 000008FE BE[9F05]                    mov si, wifi_msg
   182 00000901 E84200                      call print_str
   183 00000904 E947FF                      jmp main_loop
   184                                  
   185                                  cmd_scan:
   186 00000907 BE[0E06]                    mov si, scan_msg
   187 0000090A E83900                      call print_str
   188 0000090D E93EFF                      jmp main_loop
   189                                  
   190                                  cmd_ble:
   191 00000910 BE[5406]                    mov si, ble_msg
   192 00000913 E83000                      call print_str
   193 00000916 E935FF                      jmp main_loop
   194                                  
   195                                  cmd_usb:
   196 00000919 BE[A406]                    mov si, usb_msg
   197 0000091C E82700                      call print_str
   198 0000091F E92CFF                      jmp main_loop
   199                                  
   200                                  cmd_rf:
   201 00000922 BE[0007]                    mov si, rf_msg
   202 00000925 E81E00                      call print_str
   203 00000928 E923FF                      jmp main_loop
   204                                  
   205                                  cmd_net:
   206 0000092B BE[6007]                    mov si, net_msg
   207 0000092E E81500                      call print_str
   208 00000931 E91AFF                      jmp main_loop
   209                                  
   210                                  cmd_tb:
   211 00000934 BE[BA07]                    mov si, tb_msg
   212 00000937 E80C00                      call print_str
   213 0000093A E911FF                      jmp main_loop
   214                                  
   215                                  cmd_unknown:
   216 0000093D BE[2208]                    mov si, unk_msg
   217 00000940 E80300                      call print_str
   218 00000943 E908FF                      jmp main_loop
   219                                  
   220                                  print_str:
   221 00000946 AC                          lodsb
   222 00000947 3C00                        cmp al, 0
   223 00000949 7406                        je .done
   224 0000094B B40E                        mov ah, 0x0E
   225 0000094D CD10                        int 0x10
   226 0000094F EBF5                        jmp print_str
   227                                  .done:
   228 00000951 C3                          ret
   229                                  
   230 00000952 00                      current_tab: db 0
   231 00000953 00<rep 20h>             cmd_buffer: times 32 db 0
   232                                  
   233                                  times 510-($-$$) db 0
   233          ******************       error: TIMES value -1909 is negative
   234 00000973 55AA                    dw 0xAA55
