;
; support address meteo@null.net
;
 (c)1996-1999 by MeteO, Fixit //UCL

                    ࠩ-  HASP

  墠뢠 맮  VxD-ࠩ , ஢뢠 ࠬ
 맮 ( 楤 Encrypt28, Encrypt54, EncryptROR  ࠧ 䥩ᮢ)
  ᪠ ⠡ KeyTable (⠡ ন 㭪権),  宦
   । ࠢ  ⠡ KeyHandle

 		std
		movzx   ebx, [ebp.__BH]		; Func #

		mov     ecx, t_KeyTbl/4		; Length of supported fn# table
		mov	esi, offset32 KeyTbl + (t_KeyTbl/4-1)*4
	@@loopfn:
		lodsd				; ds:esi -> ax
		cmp	eax, ebx
		je	@@jump			; Have found
		loop	@@loopfn
		or	ecx, ecx
		je	INVALID_SERVICE		; No such service
	@@jump:
		lea	ebx, KeyHandle-4
		mov	ebx, [ebx+ecx*4]

		call	ebx			; Call Emu-API

 ࠡ稪 㭪権 HASP'a  室 ࠬ  ணࠬ,
 ।⥫쭮 ஢ .

  ⠪ 墠뢠 堭 ஢ ⪮  १ Int06
 (invalid opcode)  ४⭮ ஢뢠 . ணࠬ, 饭 HASP'
   0100EFFE05040302  室 ஢뢠 ⮪ ,
 ᫥騩  ⨬ ⪮

 		cmp	dword ptr [eax], 100EFFEh
		jnz	not_Invalid
		cmp	dword ptr [eax+4], 5040302h
		jnz	not_Invalid

 H⪠ Registry
 ================
  ࢮ砫쭮 樠樨   

Cell		struc
_Pwd1		dd	?	; Password #1
_Pwd2		dd	?	; Password #2
_Memory		dd	?	; Offset to memory
_Type		dd	?	; Type of HASP (MemoHASP)
Cell ends

  ந ⪠ ⥬ ॥ Windows.   :

  ᮤঠ  ॥  
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Emulator\HASP\Dump\xxxxxxxx
 xxxxxxxx - ஫  (  易⥫쭮 8 !).

ਬ ॥   DemoMA (3c39:25a0)


REGEDIT4

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Emulator\HASP\Dump\3c3925a0]
"Name"="DemoMA dongle"
"Internal Name"="[DemoMA]"
"SN"=dword:DEADBEEF
"Pwd"=dword:3c3925a0
"Type"=dword:01
"Memory"=dword:01
"Data"=hex:ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,\
  ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,\
  ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,\
  ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,\
  ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff
"Created"="12.12.1998 18:59"
"Copyright"="(c)1998 by MeteO //UCL dongle labs"
"Expired"=dword:1dae282
"CRC"=dword:00000000

᭮ ᯮ㥬 :

SN - ਩  
Pwd - ஫  
Memory - ⢮    (1-112 , 4-496 )
Data - ᮤন   (⢮    ࠬ Memory)
Expired - ६ 祭 ࠡᯮᮡ   ( trial-ᨩ)

।  ⠭⭮ :

Pwd1,Pwd2,offset to memory,Type (MemoHASP=1,NetHASP=4)

memory: word sn1,sn2

memory array of words...(112 if MemoHASP, 496 if NetHASP)
									  8 !!!
 ८ࠧ                                                        _______
									 /       \
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Emulator\HASP\Dump\Pwd1+Pwd2]

"SN"=dword:sn1+sn2
Data:=hex...  ८ࠧ    म.   hex'e
Memory:dword:{'1'-112 ,'4'-496}
Type:dword:{'1'-MemoHASP,'4'-NetHASP}

