mochila USB SITEPRO Hardkey STD/NET/MIO/RTC

Iniciado por MarcosGTX, 18 Marzo 2020, 20:15 PM

0 Miembros y 2 Visitantes están viendo este tema.

MarcosGTX

Saludos!

Buen día, les comento sobre mi primer tema en la pagina.

He leído aquí en esta pagina que es posible remplazar la .dll para usar el programa sin la mochila, yo tengo un programa de captura de vídeo que necesita la mochila
usb para poder capturar, yo poseo la mochila usb y el programa trabaja bien, tambien poseo acceso al menu del sistema para activar el uso sin la llave usb pero al cerrar y abrir el programa se vuelve a resetear la opción.

mi llave es: USB SITEPRO Hardkey STD/NET/MIO/RTC

Mi nivel de lenguaje de sistemas es muy basico y no entiendo muy bien los programas abiertos en assembler, descargue el ollydbg para realizar los mismos pasos que el
tutorial y he llegado ha encontrar el lugar para insertar el BP y empezar a ver como trabaja paso a paso la autentificacion de la llave.

en esta parte me encuentro ahorita.


Código (asm) [Seleccionar]
100011B0 > 51               PUSH ECX
100011B1   8B0D A0350210    MOV ECX,DWORD PTR DS:[100235A0]
100011B7   56               PUSH ESI
100011B8   8D4424 04        LEA EAX,DWORD PTR SS:[ESP+4]
100011BC   57               PUSH EDI
100011BD   8B3D 10100210    MOV EDI,DWORD PTR DS:[10021010]     
;KERNEL32.VirtualProtect

100011C3   50               PUSH EAX
100011C4   6A 40            PUSH 40
100011C6   51               PUSH ECX
100011C7   68 F0590010      PUSH hkey-w32.100059F0                   aqui marque el BP


después de entrar en la función me llevo al bucle:

Código (asm) [Seleccionar]
005AB26B  |> B8 FF000000    /MOV EAX,0FF
005AB270  |. E8 8382E5FF    |CALL GASTROCA.004034F8
005AB275  |. 8BD0           |MOV EDX,EAX
005AB277  |. 42             |INC EDX
005AB278  |. 8D85 E8FEFFFF  |LEA EAX,DWORD PTR SS:[EBP-118]
005AB27E  |. E8 559CE5FF    |CALL GASTROCA.00404ED8
005AB283  |. 8B95 E8FEFFFF  |MOV EDX,DWORD PTR SS:[EBP-118]
005AB289  |. 8D45 FC        |LEA EAX,DWORD PTR SS:[EBP-4]
005AB28C  |. E8 439DE5FF    |CALL GASTROCA.00404FD4
005AB291  |. 4B             |DEC EBX
005AB292  |.^75 D7          \JNZ SHORT GASTROCA.005AB26B    aqui marque el BP


al seguir el follow in dump copiar y pegar obtengo:


8B 95 E8 FE FF FF    sbox1


8D 45 FC             sbox2


no se si esto esta bien ya que en el tutorial son muchos mas datos los que da el dump file o si este programa es así, y hasta aquí me quede porque no entiendo bien como de la EDI sacan el password.

espero me puedan orientar mas para seguir adelante despues de este paso.

y el manual del programador que recomiendan bajar de la pagina ya no esta disponible.
Gracias.

el tutorial que estoy viendo es el:
Tut07_Emulando_HARDKey_Discovery_3_40_SP1_por_MCKSys

MOD: Etiquetas GeSHi.


MCKSys Argentina

Hola!

El manual del programador lo bajaron al poco tiempo de haber escrito el tutorial (hace 11 años). No lo encontrarás en el sitio del fabricante.

Si mal no recuerdo, el paso en el que estás es la captura de los vectores de cifrado y la contraseña. Los vectores tienen 256 bytes de largo, pero están en 2 bytes; osea, tienes que dumpear 512 bytes para recoger los mismos.

Y la contraseña es el string apuntado por el registro EDI en ese momento.

Al menos, eso es lo que recuerdo ahora (no tengo el tutorial a mano).

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


MarcosGTX

#2
Saludos!

Buen día, les comento sobre mi avance.

me di cuenta que no era correcto en donde realice el BP por eso el dump file no estaba completo.

después de entrar en la función me llevo al bucle correcto:



10005BCA   8BC8             MOV ECX,EAX
10005BCC   33D2             XOR EDX,EDX
10005BCE   81E1 FF000000    AND ECX,0FF
10005BD4   D1E1             SHL ECX,1
10005BD6   8A940C 34040000  MOV DL,BYTE PTR SS:[ESP+ECX+434]            sbox1
10005BDD   66:898454 340800>MOV WORD PTR SS:[ESP+EDX*2+834],AX
10005BE5   33D2             XOR EDX,EDX
10005BE7   8A940C 34020000  MOV DL,BYTE PTR SS:[ESP+ECX+234]             sbox2
10005BEE   66:898454 340600>MOV WORD PTR SS:[ESP+EDX*2+634],AX
10005BF6   40               INC EAX
10005BF7   3D 00010000      CMP EAX,100
10005BFC  ^72 CC            JB SHORT hkey-w32.10005BCA





al seguir el follow in dump copiar y pegar obtengo:

08 00 3F 00 5A 00 BD 00
03 00 9D 00 74 00 75 00
7F 00 C3 00 22 00 D9 00
B3 00 F9 00 7D 00 35 00
BA 00 29 00 20 00 06 00
AD 00 B1 00 A5 00 ED 00
E9 00 F5 00 44 00 19 00
0F 00 B7 00 E0 00 B5 00
D7 00 C7 00 A0 00 81 00
69 00 4D 00 85 00 95 00
88 00 5B 00 CC 00 C1 00
F1 00 97 00 E2 00 28 00
60 00 39 00 43 00 79 00
4A 00 8B 00 9F 00 CD 00
4E 00 4F 00 7E 00 91 00
DD 00 6F 00 B8 00 00 00
90 00 C9 00 F7 00 5D 00
DF 00 16 00 8E 00 6D 00
A8 00 83 00 7A 00 48 00
3E 00 24 00 0C 00 E5 00
31 00 FB 00 86 00 59 00
D4 00 7B 00 5F 00 3D 00
66 00 4C 00 68 00 2D 00
61 00 42 00 B4 00 1A 00
A9 00 71 00 13 00 D1 00
5C 00 27 00 33 00 8D 00
37 00 93 00 FE 00 38 00
17 00 32 00 49 00 C5 00
9E 00 B9 00 D2 00 3C 00
53 00 25 00 05 00 04 00
52 00 6E 00 B2 00 64 00
67 00 0A 00 EC 00 40 00

sbox1


77 00 65 00 8B 00 D1 00
BC 00 DB 00 92 00 F5 00
54 00 D9 00 7C 00 45 00
FF 00 D7 00 DF 00 02 00
FC 00 0F 00 81 00 95 00
9F 00 D3 00 C1 00 35 00
4E 00 4D 00 43 00 59 00
12 00 73 00 C0 00 B5 00
07 00 51 00 E8 00 FD 00
D6 00 9B 00 9A 00 08 00
17 00 BB 00 CD 00 31 00
E3 00 0E 00 0C 00 18 00
2B 00 FB 00 3E 00 9D 00
D8 00 CF 00 C8 00 8D 00
0D 00 24 00 E1 00 99 00
68 00 E9 00 70 00 00 00
94 00 47 00 A7 00 3B 00
69 00 7D 00 90 00 1A 00
9E 00 4F 00 6F 00 85 00
DE 00 6D 00 3C 00 4C 00
25 00 AF 00 22 00 2F 00
BE 00 32 00 0A 00 ED 00
DC 00 6B 00 EA 00 3A 00
26 00 56 00 6C 00 28 00
2D 00 C5 00 34 00 20 00
57 00 64 00 97 00 A5 00
5F 00 52 00 F1 00 A1 00
5D 00 CB 00 7E 00 3D 00
67 00 06 00 CE 00 C9 00
0B 00 5A 00 75 00 2C 00
61 00 DD 00 AC 00 14 00
87 00 46 00 C2 00 D5 00

sbox2



EDI 10023470 ASCII "IOPsOzlwgkVHUXpM"


por lo que entiendo este es el password correcto.

ahora si tengo lo necesario para empezar a crear la .dll, descargare el MASM y empezare a ver como compilar una .dll, estoy abierto a cualquier tip que me puedan dar sobre esta segunda parte.
Gracias.


el tutorial que estoy viendo es el:
Tut07_Emulando_HARDKey_Discovery_3_40_SP1_por_MCKSys


Hola buen dia les comento hasta que punto llegue con el proyecto.

Despues de descargar el masm y el winasm y ya teniendo el archivo .wap empece
a modificar el archivo con el sbox1, sbox2, y password de mi programa, tambien trate de modificar
la serie y el lote de la llave por el de la que tengo fisicamente y la version del  dll, al
empezar a compilar la dll e insertarle en mi capeta de programa el archivo exe se tranca
y reponde a que es debido a una violacion de acceso.

Al abrir el archivo con el olly puedo ver como interactua el programa con la dll original y la nueva,
lo que puedo observar es que son completamente diferentes y al parecer usando la nueva dll hay muchos
registros que quedan de color gris como si la nueva dll los borrara y por esto no abre el programa.

al abrir las dll con el olly puedo comparar que el comportamiento es totalmente diferente entre ellas
con el programa.

la dll original abierta en olly es:

https://mega.nz/#!eQsHDbbR!bRKyh3XJcMyvTkLJU81Jwjiiq_bfc9xLjXck4R3WbGI



la dll nueva que inserte es:

https://mega.nz/#!vNky0C5B!YoaSPCLyqsNLvHW6z0DtQGwG9Lla9SKK9XM6Y6Np1RI


el programa que estoy tratando de activar sin llave:

no colocar link a software comercial

MOD: No hacer doble post. Usa el boton modificar.

MCKSys Argentina

Hola!

Lo más probable es que estés haciendo algo mal en la DLL. Los vectores tienen la cantidad de bytes necesarios? La contraseña está bien? Si pones un BP en la funcion de tu DLL, puedes ver el pedido que hace el software (eso es: puede tu dll descifrar lo que manda el software)?

Por lo que veo, es un software comercial casi único y seguramente debe ir conjuntamente con el hardware.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Fucko

#4
Buenas, hace un tiempo, había encontrado un fallo en esas llaves, que son a su vez, usadas por bejerman, tangosoft.
me contacté con la web del fabricante, tuvimos una entrevista, pero no ví que hayan arreglado el tema en los sig updates....

revisa por el lado de las dll que usan, que están empacadas con themida, por ese lado, vas a verlo seguramente
yo usé un loader para hacerlo

cualquier cosa, pasame link o algo, como para poder verlo :)
Cree en los que buscan la verdad, duda de los que la han encontrado...

Moskito

Hola, solo se puede saltar esta protección dongle Hardkey haciendo la emulación? no se puede simplemente cercenar del ejecutable original las llamadas a la llave o bien, los saltos posteriores a la respuesta de la llave? estoy trabajando con un programa que usa la hardkey pero no la tengo, bajé el programa y estoy viendo por dónde lo encaro lo único que se es que usa esa llave USB. Pero bien, les pregunto ignorando el cracking de este tipo de protecciones, no se puede hacer algo distinto a la emulación ya que tengo el ejecutable y las dll de harkey sin empaquetados PE ni nada extra, está todo a mano como para tracear, parchear etc. Espero alguna opinión, muchas gracias!
No se queje si no se queja.

MCKSys Argentina

Cita de: Moskito en  8 Julio 2020, 20:43 PM
Hola, solo se puede saltar esta protección dongle Hardkey haciendo la emulación? no se puede simplemente cercenar del ejecutable original las llamadas a la llave o bien, los saltos posteriores a la respuesta de la llave? estoy trabajando con un programa que usa la hardkey pero no la tengo, bajé el programa y estoy viendo por dónde lo encaro lo único que se es que usa esa llave USB. Pero bien, les pregunto ignorando el cracking de este tipo de protecciones, no se puede hacer algo distinto a la emulación ya que tengo el ejecutable y las dll de harkey sin empaquetados PE ni nada extra, está todo a mano como para tracear, parchear etc. Espero alguna opinión, muchas gracias!

Hola!

Emular se aplica cuando tienes una original o cuando puedes recrear una llave en base al reversing. De esa forma, te evitar parchear el exe.

Si quieres parchear, vas a tener que analizar todo lo obtenido de la llave y ver cómo usa dicha info.

El tutorial que hice realizaba una emulación sin tener un dongle físico. Puedes encontrarlo aquí: https://mega.nz/file/AlgTEBKY#J1HTWtc0l2yUFClSO9r2SKxtn3mRheSnLJWD7kfiKkI

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Moskito

Cita de: MCKSys Argentina en  8 Julio 2020, 20:56 PM
Hola!

Emular se aplica cuando tienes una original o cuando puedes recrear una llave en base al reversing. De esa forma, te evitar parchear el exe.

Si quieres parchear, vas a tener que analizar todo lo obtenido de la llave y ver cómo usa dicha info.

El tutorial que hice realizaba una emulación sin tener un dongle físico. Puedes encontrarlo aquí: https://mega.nz/file/AlgTEBKY#J1HTWtc0l2yUFClSO9r2SKxtn3mRheSnLJWD7kfiKkI

Saludos!

Si MCKSys, ya lo estuve viendo de punta a punta (sos brillante dejame decirlo), y veo que para mi es muy complejo implementar esa técnica que no se incluso si sirva para el Hardkey actual ya que ese tuto fue hace un tiempo. Solo he realizado parches en saltos condicionales e incluso algún desempacado UPX con éxito, esto de programar una DLL etc. me supera actualmente por eso consultaba de lo de encarar un parcheo más básico sobre el ejecutable para interceptar e interpretar el diálogo con las dll de harkey. Muchas gracias!
No se queje si no se queja.

JaCKeS

Pregunta, si tengo varias llaves originales de ese programa, pero por cada actualización del software pide introducir nuevas claves, es posible partiendo de la llave original poder saltar esa protección?

El software es el mismo, Discovery Easy Soft, pero en su version 5.50.


Saludos y es realmente genial el aporte.

MCKSys Argentina

Cita de: JaCKeS en 19 Mayo 2021, 19:53 PM
Pregunta, si tengo varias llaves originales de ese programa, pero por cada actualización del software pide introducir nuevas claves, es posible partiendo de la llave original poder saltar esa protección?

El software es el mismo, Discovery Easy Soft, pero en su version 5.50.


Saludos y es realmente genial el aporte.

Hola!

Claro que es posible. Debes analizar qué info solicita de la llave y ver cómo se usa en la nueva versión.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."