Hasp HL + sérial

Vous avez un problème pour cracker ou vous souhaitez parler de reversing en général...

Hasp HL + sérial

Messagepar Ickars » 15 Février 2014, 14:17

Bonjour,

Cette fois, je me lance... il s'agit d'un logiciel composé de plusieurs exe.
voici comment sa sécu fonctionne: l'exe principal vérifie la présence du dongle si ok , il vérifie si la licence , si la licence est expirée la clé se connecte et met à jour la licence.
Les autres exe ne vérifie que la présence du dongle.
Il s'agit d'une clé HASP HL ,j'en avais une... mais blacklistée depuis quelques semaines.

File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 1994752 (01E7000h) Byte(s)
[File Heuristics] -> Flag : 00000000000000001000000000000000 (0x00008000)
[!] DONGLE - NetHASP Network Dongle references detected !
[!] Possible License Protection String -> CheckLicense
[CompilerDetect] -> Visual C++ 8.0 (Visual Studio 2005)

Je remarque ces lignes qui semblent intéressantes:

Code: Tout sélectionner
004C9370 CPU Disasm
Address   Hex dump          Command                                  Comments
004C9370  /$  83EC 20       SUB ESP,20                               ; QUOTE32.004C9370(guessed Arg1,Arg2,Arg3,Arg4,Arg5)
CPU Disasm
Address   Hex dump          Command                                  Comments
004C1FB8  |.  68 90575C00   PUSH OFFSET 005C5790                     ; ASCII "      classic_key_info: LowAPI (API_HASP_STATUS) status %u
"

CPU Disasm
Address   Hex dump          Command                                  Comments
004C11E7  |.  68 90575C00   PUSH OFFSET 005C5790                     ; |Format = "      classic_key_info: LowAPI (API_HASP_STATUS) status %u
"
CPU Disasm
Address   Hex dump          Command                                  Comments
004C21BE  |.  68 00495C00   PUSH OFFSET 005C4900                     ; |Format = "classic_check_expdate: call to __hasp_get_system_time returned %u
"
CPU Disasm
Address   Hex dump          Command                                  Comments
004C2087  |.  68 10485C00   PUSH OFFSET 005C4810                     ; |Format = "      classic_get_rtc: HASP ID != TimeID  (%u -- "


quand je lance le débug F9
le soft s'arrête sur au chargement d'une dll puis le message d'erreur de clé apparaît, il continue rebloque sur un autre chargement dll
la partie CPU m'ouvre... une partie de code qui ne correspond pas à celui de base avec ceci :
CPU Disasm
Address Hex dump Command Comments
77D8BEB0 /$ B8 2B000700 MOV EAX,7002B ; ntdll.NtTerminateProcess(guessed Arg1,Arg2)

dans les autres exe une ligne revient tjs:
CPU Disasm
Address Hex dump Command Comments
759B2EE6 |. FF15 2803A675 CALL DWORD PTR DS:[<&ntdll.RtlRaiseExcep ; \NTDLL.RtlRaiseException

cette partie doit controler la présence ou non de clé mais ça ne se trouve pas dans le code de l'exe mais dans ntdll ça me semble étrange.

Code: Tout sélectionner
CPU Stack
Address   Value      ASCII Comments
0018FE88  [77DBA251  Q¢Ûw  ; /RETURN from ntdll.NtTerminateProcess to ntdll.RtlExitUserProcess+6D
0018FE8C  /FFFFFFFF  ÿÿÿÿ  ; |Arg1 = -1
0018FE90  |00000000        ; \Arg2 = 0
0018FE94  |02A1185C  \¡
0018FE98  |00000001  
0018FE9C  |00000000
0018FEA0  |0018FEB4  ´þ
0018FEA4  \76258287  ‡‚%v  ; /RETURN from ntdll.RtlExitUserProcess to KERNEL32.ExitProcess+13
0018FEA8  /00000000        ; \Arg1 = 0
0018FEAC  |77E8F3B0  °óèw  ; UNICODE "was not found.



Le but serait de valider la présence de dongle ... par contre je n'ai pas trouvé d'info concernant le fichier de licence.

J'ai l'impression de me perdre un peu et de partir dans tous les sens.... :?
Avatar de l’utilisateur
Ickars
 
Messages: 6
Inscription: 24 Décembre 2013, 15:07

Re: Hasp HL + sérial

Messagepar etherlord » 17 Février 2014, 07:27

77D8BEB0 /$ B8 2B000700 MOV EAX,7002B ; ntdll.NtTerminateProcess(guessed Arg1,Arg2)


Tu est dans la fonction TerminateProcess de la librairie NTDLL. Ton programme s'est arreté car il ne trouve pas le dongle.

dans les autres exe une ligne revient tjs:
CPU Disasm
Address Hex dump Command Comments
759B2EE6 |. FF15 2803A675 CALL DWORD PTR DS:[<&ntdll.RtlRaiseExcep ; \NTDLL.RtlRaiseException

cette partie doit controler la présence ou non de clé mais ça ne se trouve pas dans le code de l'exe mais dans ntdll ça me semble étrange.


Cela n'as rien à voir avec le contrôle de ton dongle.

hxxp://msdn.microsoft.com/en-us/library ... 83(v=vs.85).aspx

hxxp://msdn.microsoft.com/en-us/library ... 57(v=vs.85).aspx

etherlord
etherlord
Triumvirat
Triumvirat
 
Messages: 2522
Inscription: 22 Mars 2004, 16:12

Re: Hasp HL + sérial

Messagepar Bango » 17 Février 2014, 09:38

Ickars a écrit:Le but serait de valider la présence de dongle ... par contre je n'ai pas trouvé d'info concernant le fichier de licence.

Ce n'est pas parce que Protection ID trouve des occurences relatives au terme licence, qu'il y a forcément un fichier licence, hein ;)
D'ailleurs, il précise bien que ce n'est qu'une probabilité...et en plus que ce n'est qu'une string (un texte):
Possible License Protection String

Un nom de logiciel? ou un lien?
\ô/
Avatar de l’utilisateur
Bango
Modérateur
Modérateur
 
Messages: 1551
Inscription: 23 Juillet 2007, 15:33
Localisation: Gotham city

Re: Hasp HL + sérial

Messagepar etherlord » 17 Février 2014, 14:21

Pas de liens directs sur la cible et pas de lien qui à ce qui s'apparente à du warez

etherlord
etherlord
Triumvirat
Triumvirat
 
Messages: 2522
Inscription: 22 Mars 2004, 16:12

Re: Hasp HL + sérial

Messagepar Bango » 17 Février 2014, 15:04

J'aurais du le préciser, mais cela va de soit ;)
\ô/
Avatar de l’utilisateur
Bango
Modérateur
Modérateur
 
Messages: 1551
Inscription: 23 Juillet 2007, 15:33
Localisation: Gotham city

Re: Hasp HL + sérial

Messagepar Ickars » 21 Février 2014, 22:35

ça avance... donc j'ai lancé le soft F9 jusqu'au msg d'erreur pause ensuite alt+f9 pour retourner dans le module principale sur la ligne RTN.
je remonte à coup de F8 pour voir ce qui appelle cette section...
Code: Tout sélectionner
CPU Disasm
Address   Hex dump          Command                                  Comments
004A3ED0  /$  6A FF         PUSH -1                                  ; QUOTE32.004A3ED0(guessed Arg1,Arg2)
004A3ED2  |.  68 02385400   PUSH 00543802                            ; Entry point
004A3ED7  |.  64:A1 0000000 MOV EAX,DWORD PTR FS:[0]
004A3EDD  |.  50            PUSH EAX
004A3EDE  |.  51            PUSH ECX
004A3EDF  |.  56            PUSH ESI
004A3EE0  |.  A1 882D5C00   MOV EAX,DWORD PTR DS:[5C2D88]
004A3EE5  |.  33C4          XOR EAX,ESP
004A3EE7  |.  50            PUSH EAX
004A3EE8  |.  8D4424 0C     LEA EAX,[LOCAL.2]
004A3EEC  |.  64:A3 0000000 MOV DWORD PTR FS:[0],EAX
004A3EF2  |.  8BF1          MOV ESI,ECX
004A3EF4  |.  837E 18 00    CMP DWORD PTR DS:[ESI+18],0
004A3EF8  |.  C74424 14 000 MOV DWORD PTR SS:[LOCAL.0],0
004A3F00      75 1B         JNE SHORT 004A3F1D
004A3F02  |.  8B4424 20     MOV EAX,DWORD PTR SS:[ARG.2]
004A3F06  |.  6A 00         PUSH 0                                   ; /Arg3 = 0
004A3F08  |.  50            PUSH EAX                                 ; |Arg2 => [ARG.2]
004A3F09  |.  8D4C24 24     LEA ECX,[ARG.1]                          ; |
004A3F0D  |.  FF15 88665500 CALL DWORD PTR DS:[<&MFC80.#876>]        ; |
004A3F13  |.  50            PUSH EAX                                 ; |Arg1
004A3F14  |.  E8 71980100   CALL <JMP.&MFC80.#1123>                  ; \MFC80.#1123
004A3F19  |.  8BF0          MOV ESI,EAX
004A3F1B  |.  EB 4C         JMP SHORT 004A3F69
004A3F1D  |>  8D4C24 08     LEA ECX,[LOCAL.3]
004A3F21  |.  FF15 78665500 CALL DWORD PTR DS:[<&MFC80.#310>]        ; [MFC80.#310
004A3F27  |.  8D4C24 08     LEA ECX,[LOCAL.3]
004A3F2B  |.  51            PUSH ECX                                 ; /Arg1 => OFFSET LOCAL.3
004A3F2C  |.  8BCE          MOV ECX,ESI                              ; |
004A3F2E  |.  C64424 18 01  MOV BYTE PTR SS:[LOCAL.0],1              ; |
004A3F33  |.  E8 78FFFFFF   CALL 004A3EB0                            ; \QUOTE32.004A3EB0
004A3F38  |.  8B5424 20     MOV EDX,DWORD PTR SS:[ARG.2]
004A3F3C  |.  52            PUSH EDX                                 ; /Type => [ARG.2]
004A3F3D  |.  8D4C24 0C     LEA ECX,[LOCAL.3]                        ; |
004A3F41  |.  FF15 88665500 CALL DWORD PTR DS:[<&MFC80.#876>]        ; |
004A3F47  |.  50            PUSH EAX                                 ; |Caption
004A3F48  |.  8D4C24 24     LEA ECX,[ARG.1]                          ; |
004A3F4C  |.  FF15 88665500 CALL DWORD PTR DS:[<&MFC80.#876>]        ; |
004A3F52  |.  50            PUSH EAX                                 ; |Text
004A3F53  |.  8B46 18       MOV EAX,DWORD PTR DS:[ESI+18]            ; |
004A3F56  |.  50            PUSH EAX                                 ; |hOwner => [ARG.ECX+18]
004A3F57  |.  FF15 34905500 CALL DWORD PTR DS:[<&USER32.MessageBoxA> ; \USER32.MessageBoxA
004A3F5D  |.  8D4C24 08     LEA ECX,[LOCAL.3]
004A3F61  |.  8BF0          MOV ESI,EAX
004A3F63  |.  FF15 A8665500 CALL DWORD PTR DS:[<&MFC80.#578>]        ; [MFC80.#575
004A3F69  |>  8D4C24 1C     LEA ECX,[ARG.1]
004A3F6D  |.  FF15 A8665500 CALL DWORD PTR DS:[<&MFC80.#578>]        ; [MFC80.#575
004A3F73  |.  8BC6          MOV EAX,ESI
004A3F75  |.  8B4C24 0C     MOV ECX,DWORD PTR SS:[LOCAL.2]
004A3F79  |.  64:890D 00000 MOV DWORD PTR FS:[0],ECX
004A3F80  |.  59            POP ECX
004A3F81  |.  5E            POP ESI
004A3F82  |.  83C4 10       ADD ESP,10
004A3F85  \.  C2 0800       RETN 8



004A3F00 /75 1B JNE SHORT 004A3F1D qui renvoie à la ligne 004A3F1D |> \8D4C24 08 LEA ECX,[LOCAL.3] qui affiche le msg d'erreur.
juste au-dessus il y a un jmp qui permet de passer ce msg.
Je remplace donc ce JNE par un nop.
test de la modification, le soft se lance... message d'erreur de clé! clic sur ok et il continue, le soft tourne. il est fonctionnel...
demi satisfaction, après qlqs minutes le messagebox revient et le logiciel plante. :evil:

je continue mes recherches ...
Avatar de l’utilisateur
Ickars
 
Messages: 6
Inscription: 24 Décembre 2013, 15:07

Re: Hasp HL + sérial

Messagepar Ickars » 22 Février 2014, 22:33

pour les sous modules idem... j'ai le message box qui s'ouvre
absence de clé et blabla.. clic sur ok la soft fonctionne, après quelques minutes la boite à dialogue revient le le soft plante.

je me relance dans oly sur ce point... retracer d'où vient le plantage.
Et la dans oly ça bug :
dans le bas où l'on voit les modules et dll se charger, il se fige sur "...\DriverCFG.exe - failed to initialize" :roll:

soit , il y a moyen de déboguer , soit je dois essayer de contourner la protection différemment.
Avatar de l’utilisateur
Ickars
 
Messages: 6
Inscription: 24 Décembre 2013, 15:07

Re: Hasp HL + sérial

Messagepar etherlord » 24 Février 2014, 07:27

Essaye d'attacher Olly au processus lorsque ce dernier à fini de se lancer. Des fois cela permet de contourner certains checks au démarrage.

etherlord
etherlord
Triumvirat
Triumvirat
 
Messages: 2522
Inscription: 22 Mars 2004, 16:12

Re: Hasp HL + sérial

Messagepar morse87 » 15 Juin 2015, 13:52

Bonjour
Désolé pour une question certainement déjà postée : j'ai un logiciel protégé par une clé HASP en port série.
Il ne prend que les vieux ports série.
Impossible de la lancer sur un ordi sous Windows XP, trop récent.
Par contre le logiciel est trop vieux pour une mise à jour (Codesoft lite 4, c'est un programme pour étiquettes de vêtements).
Mon alim vient de griller à cause des orages, mon vieux PC sous Win 98 ne démarre plus.
Comment faire pour faire tourner ce foutu programme sous un PC sous XP ou ultérieur ?
Je ne veux pas changer de version, j'avais acheté ce soft 500 € environ, il est très bien, tellement bien que maintenant les versions actuelles sont à 4.000 ou 5.000 € !!
Ma vieille version basique me suffit largement, il faut juste que l'ordi reconnaisse le dongle.

Merci de votre aide.
morse87
 
Messages: 1
Inscription: 15 Juin 2015, 13:37

Re: Hasp HL + sérial

Messagepar baboon » 15 Juin 2015, 17:47

Tu as des adaptateurs port série vers USB (ou ver PCI Express si tu as vraiment besoin de beaucoup de vitesse de transfert mais j'en doute).
Newbie mais ayant soif d'apprendre et étant motivé
Avatar de l’utilisateur
baboon
Modérateur
Modérateur
 
Messages: 3319
Inscription: 08 Juillet 2005, 17:49

Re: Hasp HL + sérial

Messagepar dionosis » 15 Juin 2015, 18:47

Salut,

Pour étayer ce que te dit baboon, je peux te dire que je me sers régulièrement d'adaptateur db9->usb professionnellement pour communiquer avec du matos plus vieux que moi.
Sur trois marques que nous possédons, trois fonctionnent très bien sous xp, mais une seule seulement fonctionne (très bien aussi) sous mon seven 64.
Il me semble qu'il s'agit de celui de la marque p*r*o*l*i*f*i*c mais si tu veux je te confirmerai (demain probablement).

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43


Retourner vers Reversing

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 5 invités