Patch for Silver Xpress "Bug" dates
From 
AKAcastor@21:1/162 to 
All on Tue May 21 19:03:52 2024
 
 
I wrote a small (1 byte) patch to fix "Bug" dates in Silver Xpress - XPBUGPAT.ZIP can be found in file area 4 (cracks) of Another Millennium BBS (another.tel).
(text file follows)
Chris/akacastor
----------------------------------------------------------------------------- Patch for Silver Xpress "Bug" dates by akacastor 2024-05-21 [ AP Class ] -----------------------------------------------------------------------------
Tested on Silver Xpress 5.03M1 door, Silver Xpress 4.01 real mode reader,
and Silver Xpress 4.01 protected mode reader.
This patch fixes display of dates > 2000 in Silver Xpress.  Without the patch, any dates after the year 2000 are displayed with "Bug" instead of month.
The patch is applied by running XPBUGPAT.BAT, which uses CHANGE.EXE to
patch the Silver Xpress executable file.
usage: XPBUGPAT XPREAD.EXE
When the patch is applied successfully, "Done: 1 patches applied." will
be printed.  If the executable has already been patched, 0 patches will
be applied.
-----------------------------------------------------------------------------
C:\SX>xpbugpat xpread.exe
pattern: 81 7E F4 D0 07 76 05 C7
patch:   81 7E F4 D0 70 76 05 C7
Found @ F82F ... Patched 8 bytes.
Done: 1 patches applied.
C:\SX>
----------------------------------------------------------------------------- What does the patch do? -----------------------------------------------------------------------------
The Silver Xpress code contains a subroutine that checks dates to see if they are valid, and in case of an invalid date the word "Bug" is printed instead of  the correct month.  All dates after the year 2000 are considered invalid, and thus trigger the "Bug" dates.
Below is disassembly of the relevant part of the subroutine that checks dates. An arrow marks the line with a 'cmp' comparing the year to 2000, followed by a 'jbe' which will jump if the year is below or equal to 2000.
seg097:02B4 83 7E F6 01                    cmp     [bp+var_month_idx], 1 seg097:02B8 72 06                          jb      short loc_27B50
seg097:02BA 83 7E F6 0C                    cmp     [bp+var_month_idx], 12 seg097:02BE 76 05                          jbe     short loc_27B55
seg097:02C0
seg097:02C0                loc_27B50:
seg097:02C0 C7 46 F6 0D 00                 mov     [bp+var_month_idx], 13 seg097:02C5
seg097:02C5                loc_27B55:
seg097:02C5 81 7E F4 C4 07                 cmp     [bp+var_year], 1988 seg097:02CA 73 05                          jnb     short loc_27B61
seg097:02CC C7 46 F6 0D 00                 mov     [bp+var_month_idx], 13 seg097:02D1
seg097:02D1                loc_27B61:
seg097:02D1 81 7E F4 D0 07                 cmp     [bp+var_year], 2000   ; <--- seg097:02D6 76 05                          jbe     short loc_27B6D
seg097:02D8 C7 46 F6 0D 00                 mov     [bp+var_month_idx], 13 seg097:02DD
seg097:02DD                loc_27B6D:
By patching the instruction "81 7E F4 D0 07" to "81 7E F4 D0 70", the maximum allowed year is changed from 2000 to 28,880.  This should give us a bit more  time. :)
- akacastor, 2024-05-21
-----------------------------------------------------------------------------
                  T H E       @         ############     
                            @ @           ####     ###   
                            @@@            ###      #### 
                         @@ @@@@ @@        ###       ####
                       @@@   @@   @@       ###        ###
                     @@     @@@@    @@     ###       ####
                    @@     @@  @     @@    ###       ### 
                   @       @@  @@      @   ###     ####  
                   @      @@    @@     @@@@##########    
                   @      @@    @@  @@@@@@ ###           
                   @      @@    @@@@@@ @   ###           
                   @     @@  @@@@@@    @   #M#           
                   @     @@@@@@  @@    @   #t#           
                    @@  @@@@      @@ @@    #M#           
                     @@@@@        @@@@     ###           
                   @@@ @@@         @@      ###           
                 @@@   @@ @@@@@@@@ @@@    #####          
                       @@           @@  #########        
                      @@             @@                  
                      @               @       C L A S S  
               guess what... 1994, 2024, your shit's still getting cracked.
     it's just now more of a philanthropic move instead of an anarchist one -----------------------------------------------------------------------------
         .______  .______  ._______  _____._.___.__  ._______.______
         :      \ :      \ : .___  \ \__ _:|:   |  \ : .____/: __   \
         |   .   ||       || :   |  |  |  :||   :   || : _/\ |  \____|
         |   :   ||   |   ||     :  |  |   ||   .   ||   /  \|   :  \
         |___|   ||___|   | \_. ___/   |   ||___|   ||_.: __/|   |___\
             |___|    |___|   :/       |___|    |___|   :/   |___|
  ._____.___ .___ .___    .___:   ._______.______  .___ .____     ._____.___
  :         |: __||   |   |   |   : .____/:      \ : __||    |___ :         |
  |   \  /  || : ||   |   |   |   | : _/\ |       || : ||    |   ||   \  /  |
  |   |\/   ||   ||   |/\ |   |/\ |   /  \|   |   ||   ||    :   ||   |\/   |
  |___| |   ||   ||   /  \|   /  \|_.: __/|___|   ||   ||        ||___| |   |
        |___||___||______/|______/   :/       |___||___||. _____/       |___|
                                                         :/
     .:                                                  :             :.
    / /                                                                \ \
   <-<  Multinode Maximus v3.01                    Telnet: another.tel  >->
    >-> Canada +1 587.67.31337 <300bps - 33.6kbps> USA +1 949.59.31337 <-<
   <-<  AP Class/whq                                   21:1/162@fsxnet  >->
    \ \                                                                / /
     `:                                                                :' -----------------------------------------------------------------------------
--- Maximus 3.01
 * Origin: Another Millennium - Canada - another.tel (21:1/162)