
/*-----------------------------------------------------------------------*/
/*                       R I N G 0,    I S S U E   # 1                   */
/*-----------------------------------------------------------------------*/

                     HASP-

                                                           by Dr_Net/TSRH

     Target : HASP - guard
     Author : Dr_Net [dr_net@uofg.cc] [http://www.uofg.cc ,
http://tsrh.cjb.net]
      Toolz : Soft-Ice v4.xx , IDA v4.xx ,      .
  ATTENTION :                
      ,  _    _ !
      .

-==-
              ,  
     .        
  .      
  HASP-guard  .              ,
    ,          .  HASP
   ,      .
HASP-4                  LPT-  
MemoHASP                LPT-   ( 112  496)
NetHASP[X]              LPT-   (5   100 ) 
TimeHASP                LPT-   (16 )  
      ,    
 .

-= =-
             ,     [ 
dll]  ,          .  
   HaspReg() ,     
  .      .   ,  
        .

SERVICE BH=FUNC,  BL=PORT           RETURN

01h.ISHASP SERVICE                  AX : 0 - HASP NOT FOUND1 - HASP FOUND
02h.HASPCODE                        AX : 1ST RETURN CODE BX : 2ND RETURN
CODE
                                    CX : 3RD RETURN CODE DX : 4TH RETURN
CODE
03h.READMEMO                        BX : DATACX : STATUSDI=MEMORY ADDR.
                                    ( 1    DI)
05h.HASPSTATUS                      AX : MEMORY SIZE BX : HASP TYPE CX :
ACTUAL LPT_NUM
06h.HASPID                          AX : IDLOW BX : IDHIGH CX : STATUS
32h. READBLOCK                      CX : STATUS

            ,      . 
       [ecx=0]

     -=         HaspCode (bh=2)=- 
     /haspcode []

HaspCode:
        mov     edx,HaspBuffer
        movzx   eax,word [pwd2]         ; Password 2
        movzx   ebx,word [pwd1]         ; Password 1
        shl     eax,10h
        mov     ax,bx
        mov     [edx],eax
        xor     dword [edx], 09071966h
        xor     eax,eax                 ; Clear eax
        call    sub_401108

        xor     ebx,ebx
        mov     edi,HaspBuffer+14h

loc_4011F9:
        xor     eax,eax
        mov     esi,eax
        jmp     short loc_401220

loc_4011FF:
        movsx   edx,byte [ebx+HaspBuffer+4]
        shl     edx,3
        lea     ecx,[edx+HaspTable]     ; Points at table entry.
        mov     eax,esi
        mov     dl,[eax+ecx]
        mov     ecx,esi
        shl     ecx,3
        add     ecx,ebx
        mov     [edi+ecx],dl
        inc     esi

loc_401220:
        cmp     esi,byte 8
        jb      loc_4011FF

        inc     ebx
        cmp     ebx,byte 8
        jb      loc_4011F9

        call    sub_40112E
        retn

;------ Functions ------

sub_401108:
        mov     cl,[edx]
        and     cl,7
        mov     [edx+eax+4],cl
        sar     dword [edx],3
        inc     ax
        cmp     ax,8
        jl      sub_401108

        retn

sub_40112E:
        movzx   ecx,word [seed]         ; Seed Code
        mov     ax,cx
        lea     edi,[HaspBuffer+0Ch]
        xor     esi,esi

loc_40113E:
        mov     byte [esi+edi],0
        xor     edx,edx

loc_401144:
        movzx   eax,ax
        imul    ecx,eax,01989h
        mov     eax,ecx
        add     ax,5
        mov     ecx,7
        sub     ecx,edx
        movzx   ebx,ax
        sar     ebx,9
        and     ebx,3Fh
        mov     bl,[ebx+HaspBuffer+14h]
        shl     bl,cl
        or      [edi+esi],bl
        inc     dx
        cmp     dx,8
        jl      loc_401144

        inc     si
        cmp     si,8
        jl      loc_40113E

        movzx   eax,word [edi]
        mov     esi,[dClient_EAX]
        mov     [esi],eax

        movzx   eax,word [edi+2]
        mov     esi,[dClient_EBX]
        mov     [esi],eax

        movzx   eax,word [edi+4]
        mov     esi,[dClient_ECX]
        mov     [esi],eax

        movzx   eax,word [edi+6]
        mov     esi,[dClient_EDX]
        mov     [esi],eax

        retn

pwd1:           dw 0
pwd2:           dw 0
seed:           dw 0
HaspBuffer:     times 84 db 0
HaspTable:      db
00h,00h,00h,00h,00h,00h,00h,00h,00h,01h,00h,01h,00h,01h,00h,01h
                db
01h,00h,01h,00h,01h,00h,01h,00h,00h,00h,01h,01h,00h,00h,01h,01h
                db
01h,01h,00h,00h,01h,01h,00h,00h,00h,00h,00h,00h,01h,01h,01h,01h
                db
01h,01h,01h,01h,00h,00h,00h,00h,01h,01h,01h,01h,01h,01h,01h,01h

-= =-
           -            
 -     ...
ICQ   114366611
IRC   dalnet #uofg #xtin
MAIL  dr_net@uofg.cc or dr_net@rambler.ru

-==-
     [dongle]   -        hardware-  ,    
-  . [ subj - LPT]

     Greetz  jump  out  to  TeaM | TsrH , UOFG crew [special for aSL!] ,
HangUp , XTIN , Nerf and All DeveLopErz AroUnd the w0rlD .