meRlin
January 11th, 2001, 16:47
Hello!
Recently I read Frog Print's fantastic essay about Dongle bashing.
I had have success with a couple of sentinel protected ones and now I'm working on a hasp protection.
Target is Icarus v2.42 3429307 bytes big (swedish software, they do have an english page too)www.keylogic.se/old/download/icarus/icarus242.exe
It will run in demo mode if no dongle is detected and you have to restart the "server services" after 3 hours time.
The dongle check is done 19 times starting with this one at:
00030941 mov eax, 5
00030946 call sub_1FEA8 <-main routine
inside that call you have another call and a check ->HASPUT16.DLL .
I do not uderstand what's going on in all 19 locations, an example that I do understand:
000309E3 mov edx, 665h
000309E8 mov eax, 2 <--hasp service 2
000309ED call sub_1FEA8 <-main
000309F2 test bl, bl <-test
000309F4 jz short loc_30A1A <-beggar off
000309F6 cmp [ebp+var_8], 0A0F1h <-retcode 1
000309FD jnz short loc_30A1A
000309FF cmp [ebp+var_C], 0D0ECh <- retcode 2
00030A06 jnz short loc_30A1A
00030A08 cmp [ebp+var_10], 63C6h <-retcode 3
00030A0F jnz short loc_30A1A
00030A11 cmp [ebp+var_4], 5D1Bh <- retcode 4
00030A18 jz short loc_30A1E <- good guy
00030A1A xor eax, eax <-beggar off
00030A1C jmp short loc_30A20
00030A1E mov al, 1
00030A20 mov ebx, eax
there is some similar checks that's pretty easy to understand but I need help to grep the other ones.
regards
merlin
Recently I read Frog Print's fantastic essay about Dongle bashing.
I had have success with a couple of sentinel protected ones and now I'm working on a hasp protection.
Target is Icarus v2.42 3429307 bytes big (swedish software, they do have an english page too)www.keylogic.se/old/download/icarus/icarus242.exe
It will run in demo mode if no dongle is detected and you have to restart the "server services" after 3 hours time.
The dongle check is done 19 times starting with this one at:
00030941 mov eax, 5
00030946 call sub_1FEA8 <-main routine
inside that call you have another call and a check ->HASPUT16.DLL .
I do not uderstand what's going on in all 19 locations, an example that I do understand:
000309E3 mov edx, 665h
000309E8 mov eax, 2 <--hasp service 2
000309ED call sub_1FEA8 <-main
000309F2 test bl, bl <-test
000309F4 jz short loc_30A1A <-beggar off
000309F6 cmp [ebp+var_8], 0A0F1h <-retcode 1
000309FD jnz short loc_30A1A
000309FF cmp [ebp+var_C], 0D0ECh <- retcode 2
00030A06 jnz short loc_30A1A
00030A08 cmp [ebp+var_10], 63C6h <-retcode 3
00030A0F jnz short loc_30A1A
00030A11 cmp [ebp+var_4], 5D1Bh <- retcode 4
00030A18 jz short loc_30A1E <- good guy
00030A1A xor eax, eax <-beggar off
00030A1C jmp short loc_30A20
00030A1E mov al, 1
00030A20 mov ebx, eax
there is some similar checks that's pretty easy to understand but I need help to grep the other ones.
regards
merlin