![]() |
|
|
|
#1
|
|||
|
|||
|
Bulding true dongle emulator can solve all your problems. Here is the part of my source code:
;------------------------------------------------------------------------- BeginProc spro_Find1st xor ebx, ebx mov word ptr _pDataPatch, bx ; Restore previous state mov word ptr _pAlgoPatch, bx ; Restore previous state mov word ptr _pLicPatch, bx ; Restore previous state mov bl, byte ptr [edi._RBP_SPRO_APIPACKET.bUnitNumber] rol ebx, 10h mov bx, word ptr [edi._RBP_SPRO_APIPACKET.DevId] ; 100% bug support cmp bx, _DEVID_DUMPER ; DevID==FFFF check je @@dumper movy DeviceID, ebx ; Save Device Id call _DongleScan jnc @@found push ebx call _LoadKey ; At Prog jc @@quit @@found: call GetDongleMemOffset ; ESI points to Memory mov ax, word ptr [SP_CELL_SN*2+esi] ; Store SN of dongle into packet mov word ptr [edi._RBP_SPRO_APIPACKET.wMemoryContents], ax mov ax, word ptr [SP_CELL_DI*2+esi] ; Store SN of dongle into packet mov word ptr [edi._RBP_SPRO_APIPACKET.wMemoryAddress], ax mov eax, SP_SUCCESS or SPRO_STATUS_BASE @@quit: ret ;--------------------------------------------------------------------------------- ; Scan for 0xFFFF case of search dongle ; @@dumper: movx esi, pKeyCell mov eax, dword ptr [esi.Cell._DevId]; Also take UnitNo movy DeviceID, eax jmp @@found EndProc spro_Find1st ; ;------------------------------------------------------------------------- BeginProc spro_FindNext movx ebx, DeviceID ; Save Device Id cmp bx, _DEVID_DUMPER ; DevID==FFFF check je @@caseFFFF rol ebx, 10h mov bl, byte ptr [edi._RBP_SPRO_APIPACKET.bUnitNumber] inc bl rol ebx, 10h call _DongleScan jnc @@found push ebx call _LoadKey jnc @@found @@absent: mov eax, SP_UNIT_NOT_FOUND or SPRO_STATUS_BASE ret @@found: call GetDongleMemOffset ; ESI points to Memory mov ax, word ptr [SP_CELL_SN*2+esi] ; Store SN of dongle into packet mov word ptr [edi._RBP_SPRO_APIPACKET.wMemoryContents], ax mov ax, word ptr [SP_CELL_DI*2+esi] ; Store SN of dongle into packet mov word ptr [edi._RBP_SPRO_APIPACKET.wMemoryAddress], ax mov eax, SP_SUCCESS or SPRO_STATUS_BASE ret ;--------------------------------------------------------------------------------- ; Scan for 0xFFFF case of search dongle ; @@caseFFFF: mov eax, SP_UNIT_NOT_FOUND ret movx esi, pKeyCell mov ebx, dword ptr [esi.Cell._DevId] call _DongleScan @@match: cmp ecx, 0 jz @@absent add esi, (size Cell) mov ax, word ptr [esi.Cell._DevId] mov word ptr [edi._RBP_SPRO_APIPACKET.wMemoryAddress], ax mov esi, [esi.Cell._Memory] ; Get ptr to memory mov ax, word ptr [SP_CELL_SN*2+esi] ; Store SN of dongle into packet mov word ptr [edi._RBP_SPRO_APIPACKET.wMemoryContents], ax mov eax, SP_SUCCESS or SPRO_STATUS_BASE ret EndProc spro_FindNext |
|
#2
|
|||
|
|||
|
Quote:
we all know that you are profesional in dongle emu
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|