Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: misterjano en 23 Octubre 2019, 12:39 pm



Título: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: misterjano en 23 Octubre 2019, 12:39 pm
Buenas compañeros.

Juraría que tenia cuenta creada hace años pero se ve que no.

Por el foro veo varios tutoriales para emular hardlock (algunos de ellos haciendo mencion a mi video de youtube que ya es un tanto viejo)

https://www.youtube.com/watch?v=DrvsCcXfdj4

Ante todo daros las gracias a los que comentasteis que os sirvió,

Bueno, a lo que venimos.

Tengo un programa (EtiqPeso, un programa para imprimir etiquetas), no lo busqueis en google, no sale nada XD.

Que sino tiene la llave insertada se abre en modo DEMOSTRACION. (quien quiera probar lo adjunto, es portable).

El caso es que su "llave" original fue a cagar, y tienen un backup, que no recuerdo si lo hice yo hace unos años, o donde la sacaron, (ellos tampoco lo saben).

El caso es que ese backup es un puto pendrive KINGSTON de 512 Mb.

La verdad, no lo entiendo, ninguna aplicación lo reconoce como un dongle.. pero si lo extraes, se abre en modo demo, si lo insertas funciona correctamente.

Decir que tiene una cosa buena, si insertas el pendrive, ejecutas y lo extraes, el programa sigue funcionando. Pero bueno, lo suyo sería tener en cada PC emulado el suyo.

He probado de todo, y ningun soft para dongles lo detecta, a su vez probe a hacer una imagen del pendrive (dado que es lo que es...) y clonarlo en otro, y aunque lo clona correctamente, no funciona. Es decir, modo DEMO.


Habéis visto algo así alguna vez?

El modelo es Kingston DTI/512. La verdad me esta volviendo loco el tema, y si alguien sabe algo agradecería vuestra ayuda.


Un saludo!


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: MCKSys Argentina en 23 Octubre 2019, 12:54 pm
Hola!

Si es un pendrive (fíjate como lo reconoce windows), entonces puede que el software esté tomando info del hardware del pendrive.

O puede que tenga una carcasa de pendrive, pero sea un dongle efectivamente(má aún si es muy custom la app) ...

Saludos!


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: xor.pt en 23 Octubre 2019, 17:59 pm
Hola


Si realmente es un pendriver, por lo tanto, contiene software que controla la licencia.

Necesita encontrar e ingeniería inversa para desbloquear o controlar.
Saludos.


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: finn en 23 Octubre 2019, 21:27 pm
Si te entiendo bien tu caso se parece a uno mio , lo clone con el dd en linux y asi tendras tantos pendrives como quieras , Mi caso un soft que se abre con un pen , sin el pen no seabre , lo metes en linux y lo clonas ya esta si me das tiempo te busco los comandos , ya los potee para un caso parecido aqui en el foro . yo fui el que puso tu tutorial aqui en el foro cuando vi los tutos que publcaban y no me gustaban.
Un saludo en su momento me fuiste de utilidad.
aqui
 encontre el viejo post
https://foro.elhacker.net/windows/clonar_usb-t465043.0.html


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: misterjano en 24 Octubre 2019, 09:27 am
Gracias por la mención, la verdad, no me habia registrado, pero si veia que aparecieron muchos tutos aquí, y cuando yo hice ese no habia nada XD tuve que traducirlo de un foro RUSO y me costo un cojón entenderlo, fue ahi cuando dije, voy hacer un video. Visto en perspectiva 8 años después, no me explique muy bien, pero creo que si lo suficiente para ayudar a muchos. Ademas que mi tuto es funcional para que lo haga uno, la mayoría son, hazte el dump, y luego nosotros te cobramos XD. Yo a día de hoy, aun mantengo los enlaces en el video. ( y sin acortadores XD, cuanto dinero he perdido :xD)


@finn gracias por el enlace, entiendo que debo usar:


Citar
Desde cualquier linux live , wifislax por ejemplo
con dd.. ejemplo
con el usb conectado pero no montado. si el dispositivo es sdb1
#dd if=/dev/sdb1 of=/home/llave.img bs=1
después en otro pendrive lo haces al revés
#dd if=/home/llave.img of=/dev/sdb1 bs=1
el bs es la abreviacion de "Bytes per sector"
el dd copia sectores... no filesystem.
Creme funciona

El USB en el que se clona, entiendo que es indiferente la capacidad no?

En mi caso, el programa se abre siempre, lo unico es que ponga DEMOSTRACION o no en medio de la pantalla(y al imprimir las etiquetas claro ).

Ayer, os juro no se como, instalando drivers de hardlock, haciendo pruebas con HL emul etc, no se como, hice que en un equipo funcionara sin USB (no se como, sobretodo porque ningun programa lo reconoce como dongle).

El caso es que por la tarde quise replicarlo, y ni por cojones  :xD

El caso es, (bueno, voy probar a clonarlo desde linux por supuesto).

De todas formas hoy lo abrí, y algo me da, que aunque encaja, el continente no es lo mismo que el contenido.

A ver que opinais:
https://drive.google.com/file/d/12nNR3x74XKT5RCXMDRWx5wPwmYGS9ebi/view?usp=sharing
https://drive.google.com/file/d/12rkQy7wBJZ8zzhfjnemw0ZM_BcxNNHqv/view?usp=sharing
https://drive.google.com/file/d/12xGzA68TF4vXUMQBQ4auWnPofxldHndc/view?usp=sharing
https://drive.google.com/file/d/12nKke1AMewGHJUYY4qhesHByucUbw_v0/view?usp=sharing

Y esto es lo que muestra USBview

Citar
[Port3]  :  Dispositivo de almacenamiento USB


Is Port User Connectable:         yes
Is Port Debug Capable:            no
Companion Port Number:            17
Companion Hub Symbolic Link Name: USB#ROOT_HUB30#4&103e3991&0&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
Protocols Supported:
 USB 1.1:                         yes
 USB 2.0:                         yes
 USB 3.0:                         no

Device Power State:               PowerDeviceD0

       ---===>Device Information<===---
English product name: "DataTraveler 2.0"

ConnectionStatus:                  
Current Config Value:              0x01  -> Device Bus Speed: High (is not SuperSpeed or higher capable)
Device Address:                    0x05
Open Pipes:                           2

          ===>Device Descriptor<===
bLength:                           0x12
bDescriptorType:                   0x01
bcdUSB:                          0x0200
bDeviceClass:                      0x00  -> This is an Interface Class Defined Device
bDeviceSubClass:                   0x00
bDeviceProtocol:                   0x00
bMaxPacketSize0:                   0x40 = (64) Bytes
idVendor:                        0x13FE = Phison Electronics Corp.
idProduct:                       0x1D00
bcdDevice:                       0x0110
iManufacturer:                     0x01
     English (United States)  "Kingston"
iProduct:                          0x02
     English (United States)  "DataTraveler 2.0"
iSerialNumber:                     0x03
     English (United States)  "5B71189863FA"
bNumConfigurations:                0x01

          ---===>Open Pipes<===---

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x81  -> Direction: IN - EndpointID: 1
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x02  -> Direction: OUT - EndpointID: 2
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

       ---===>Full Configuration Descriptor<===---

          ===>Configuration Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x02
wTotalLength:                    0x0020  -> Validated
bNumInterfaces:                    0x01
bConfigurationValue:               0x01
iConfiguration:                    0x00
bmAttributes:                      0x80  -> Bus Powered
MaxPower:                          0x64 = 200 mA

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x00
bAlternateSetting:                 0x00
bNumEndpoints:                     0x02
bInterfaceClass:                   0x08  -> This is a Mass Storage USB Device Interface Class
bInterfaceSubClass:                0x06
bInterfaceProtocol:                0x50
iInterface:                        0x00

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x81  -> Direction: IN - EndpointID: 1
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x02  -> Direction: OUT - EndpointID: 2
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00


Os agradezco cualquier ayuda, voy a ver si puedo pedirselo a los que estan trabajando con el para probar a hacer el clone en linux.


 ::)


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: xor.pt en 24 Octubre 2019, 14:11 pm
ID Vendor 13fe  = Kingston Technology Company Inc.
PID Producto     = DataTraveler 2.0 1GB/4GB Flash Drive / Patriot Xporter 4GB Flash Drive

http://www.linux-usb.org/usb.ids


Con el debido respeto, en mi opinión, ¡copiar no funcionará!
Necesita encontrar el binario que verifica la activación.
El bloqueo de licencia es por valores de número de hardware
Que en este caso debe ser USB serie!

Saludos.


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: Serapis en 24 Octubre 2019, 14:31 pm
El bloqueo de licencia es por valores de número de hardware
Que en este caso debe ser USB serie!

Eso venía a decir... cuando clonas el software y no funciona es porque utiliza algún valor del hardware del dispositivo original... toca desemsamblar para buscar el punto concreto de validación...

Seguramente antes de instalar el software sobre el dispositivo, leen algún atributo del hardware y luego lo aplican al software (seguramente ya compilado), y así cada copia es única... si dispones de varios, prueba hashear el ejecutable/instalador de varios y verificar que aunque sean la misma versión y seguramente mismo tamaño (y quizás fecha original) tienen diferente hash...

Si fuera simplemente el número de serie, hay herramientas que permiten cambiar el número de serie de la unidad.


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: misterjano en 24 Octubre 2019, 15:14 pm
ID Vendor 13fe  = Kingston Technology Company Inc.
PID Producto     = DataTraveler 2.0 1GB/4GB Flash Drive / Patriot Xporter 4GB Flash Drive

http://www.linux-usb.org/usb.ids


Con el debido respeto, en mi opinión, ¡copiar no funcionará!
Necesita encontrar el binario que verifica la activación.
El bloqueo de licencia es por valores de número de hardware
Que en este caso debe ser USB serie!

Saludos.

Si supiera como hacer eso... XD


Eso venía a decir... cuando clonas el software y no funciona es porque utiliza algún valor del hardware del dispositivo original... toca desemsamblar para buscar el punto concreto de validación...

Seguramente antes de instalar el software sobre el dispositivo, leen algún atributo del hardware y luego lo aplican al software (seguramente ya compilado), y así cada copia es única... si dispones de varios, prueba hashear el ejecutable/instalador de varios y verificar que aunque sean la misma versión y seguramente mismo tamaño (y quizás fecha original) tienen diferente hash...

Si fuera simplemente el número de serie, hay herramientas que permiten cambiar el número de serie de la unidad.


Agradezco la info, pero estoy igual que antes, se escapa a mis conocimientos. No se si hay algún tutorial mas o menos relacionado con esto. Ya que lo poco encuentro googleando siempre son antiguos o con links muertos.

Me falta por comprobar de clonar el usb con linux a ver si suena la flauta... si supiera que hice para que funcionara en este equipo....


EDIT:

Usando SYSANALIZER he visto que en hexadecimal puedo buscar la palabra DEMOSTRACION, al darme cueta de esto, con un editor hexadecilam sustituí la palabra DEMOSTRACION por espacios en blanco. Solución basica y acojonante XD, pero funciona, la tara, que es subrayado, y la línea del surayado sigue ahi, y no se como localizarla... Alguna idea?

captura originalmente y como sale ahora

https://drive.google.com/file/d/1b4V3XplTrAb7Pxc4w4fJKQpMOSUbuAZI/view?usp=sharing
https://drive.google.com/file/d/16hBGC9-nNstTXS23eCRTQM54OFAeaUxt/view?usp=sharing


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: finn en 25 Octubre 2019, 07:51 am
Tu torial me sirvio en su momento, ahora ya .....
Te ruego encarecidamente que hagas lo del dd no copia file sistem como digo , si lo tienes en unpen de 500mb a uno de 1gb te lo dejara 500 mb clona el espacio libre haslo comentalo y luego sigue investigando por otros caminos , peor no descartes esto porque ya esta experimentado positivamente,
si es un pendrive claro


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: misterjano en 25 Octubre 2019, 09:04 am
Tu torial me sirvio en su momento, ahora ya .....


Ese ahora ya..? XD esta obsoleto entiendo....

Citar
Te ruego encarecidamente que hagas lo del dd no copia file sistem como digo , si lo tienes en unpen de 500mb a uno de 1gb te lo dejara 500 mb clona el espacio libre haslo comentalo y luego sigue investigando por otros caminos , peor no descartes esto porque ya esta experimentado positivamente,
si es un pendrive claro

No lo descarto, la chapuza del editor es una opción si no consigo hacerlo de manera "guay".

Para mi vale mas el clonar el USB, porque no se hasta que punto, pude haberme cargado parte del ejecutable, bueno, ayer testeandolo en si funciona, pero, si le das a ayuda-info, para ver la versiom, ya se cuelga XD.

Hoy en cuanto me puedan dejar el USB lo pruebo y tambien comento. Lo malo que aqui solo tengo uno de 32gb, para clonar ese de 512mb XD


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: misterjano en 25 Octubre 2019, 09:40 am
Tu torial me sirvio en su momento, ahora ya .....
Te ruego encarecidamente que hagas lo del dd no copia file sistem como digo , si lo tienes en unpen de 500mb a uno de 1gb te lo dejara 500 mb clona el espacio libre haslo comentalo y luego sigue investigando por otros caminos , peor no descartes esto porque ya esta experimentado positivamente,
si es un pendrive claro

CLONANDO CON DD


EDIT2: Tras esperar un buen rato para hacer la clonación, confirmar que NO me ha servido... asique seguimos trabajando en ello... :(


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: finn en 25 Octubre 2019, 13:15 pm
Una pregunta , el instalador del programa esta dentro del pen ?


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: MCKSys Argentina en 25 Octubre 2019, 13:17 pm
Si tienes el instalador, puedes subirlo a algun server y poner el link de descarga, asi se lo puede mirar mejor al software.

Eso es, si puedes (y quieres) publicarlo.

Saludos!


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: misterjano en 25 Octubre 2019, 15:05 pm
Gracias a ambos. El tema es que no tengo instalador. En los equipo que esta simplemente se copia la carpeta con el programa. y ya.

Aquí lo teneis por si alguien quiere revisarlo.

https://mega.nz/#!rUBDxQrD!oyHkzudNrq5TMv0js4eO4oVJjQyC-JUkeL6jHDR8NPU

La única diferencia, en puesto. funcionamiento normal.

Pen sin conectar, en el campo de diseño de etiquetas pone DEMOSTRACION en grande. A pesar de que es plenamente funcional. Que pasa, cuando imprimes, te sale cruzado el demostracion tambien XD

EDIT: Para quien lo vea, y me diga que arriba tiene opcion de Ayuda>Licencia, ya lo he visto XD, pero con o sin USB se muestra igual. El campo CODE 1 varia cada vez que abres el programa.

EDIT2: Lo que me sigue matando es, como hice que funcionara en el primer PC asi porque si por arte de magia, mas cuando en ese PC no se va usar.. XD


Una pregunta , el instalador del programa esta dentro del pen ?

En el pen, basicamente esta lo mismo que en el link, y algun  excel mas(que debieron de usar para mover de un PC a otro.


EDIT:3 Aunque el programa que ejecutamos es del enlace de arriba (junto con una carpeta con monton de plantillas ya echas) os copio lo que esta en el USB, este no se usa, dado que cuando lo abres da un error de com1. De  echo, la gente lo tiene copiado en su PC y lo ejecutan desde ahí. Simplemente conectan el usb.

En el USB si se ven mas DLLs y un unninstaller, a pesar de no haber installer XD.

Decir que obviamente probe a copiar todo lo del USB al PC y probar, pero sin USB no hay tu tía.

Como veréis hay una carpeta que pone licencia bixolon... totalmente ajena u obsoleta, sobretodo porque las impresoras que usamos no son bixolon XD

https://mega.nz/#!aUhDnYCL!e0SmwEH3qDHrRe5dwTod_cVSaGLAQhkDvjd2RRsWslE


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: MCKSys Argentina en 25 Octubre 2019, 17:17 pm
Hola!

Dándole un vistazo rapido, puedes evitar que aparezca el texto si evitas que se produzca el salto ubicado en 41C951 (jnz 41C958).

Puedes reemplazar el salto por 2 NOPs y ya no sale el texto.

Saludos!


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: misterjano en 26 Octubre 2019, 10:15 am
Hola!

Dándole un vistazo rapido, puedes evitar que aparezca el texto si evitas que se produzca el salto ubicado en 41C951 (jnz 41C958).

Puedes reemplazar el salto por 2 NOPs y ya no sale el texto.

Saludos!

Gracias por la info, me sería el doble de útil si entendiera de que me hablas XDDDDD.


Googleando veo que NOP es "no operation" y entiendo su funcionamiento. Veo que para procesadores x86 es 0x90 lo que no entiendo es como integrar eso en hexadecimal.

He echo esto, pero no funciona (seguramente no he entendido bien el funcionamiento).

https://drive.google.com/open?id=1xp0ZxFCh1Z2srR28OKyZ_FGhtaC6RGBc


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: MCKSys Argentina en 26 Octubre 2019, 15:01 pm
Hola!

No, 41C951 es la direccion de memoria que tiene el salto cuando el ejecutable está cargado en memoria.

Bajo un editor hexa, si buscas los bytes del las instrucciones del salto y las siguientes (75 05 E9 12 01 00 00 8B 4D F0), los encontrarás a partir del offset 1C951.

Ahí, deberás reemplazar los bytes del salto (75 05) por NOP's (90 90).

Saludos!


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: misterjano en 28 Octubre 2019, 09:14 am
Hola!

No, 41C951 es la direccion de memoria que tiene el salto cuando el ejecutable está cargado en memoria.

Bajo un editor hexa, si buscas los bytes del las instrucciones del salto y las siguientes (75 05 E9 12 01 00 00 8B 4D F0), los encontrarás a partir del offset 1C951.

Ahí, deberás reemplazar los bytes del salto (75 05) por NOP's (90 90).

Saludos!

Funcionó a la perfección!

Una duda, como sabes que era en los puntos que me indicabas? Porque con las apps que  lo abrí para intentar entenderlo, no entendí nada XD.


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: finn en 28 Octubre 2019, 10:52 am
Un soft sencillo , una ayuda enorme


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: misterjano en 28 Octubre 2019, 11:34 am
Un soft sencillo , una ayuda enorme

la verdad que si, agradezco mucho la ayuda a los foreros por todo.

 ;-) ;-) :laugh: :laugh: :laugh: :rolleyes: :rolleyes:


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: MCKSys Argentina en 28 Octubre 2019, 18:21 pm
Funcionó a la perfección!

Una duda, como sabes que era en los puntos que me indicabas? Porque con las apps que  lo abrí para intentar entenderlo, no entendí nada XD.

Hola!

Bueno, si con la indicación que te dí, no entendiste nada, explicarte cómo hallé el lugar podría tener igual resultado.

Pero, como aquí fomentamos la curiosidad: Si abres el ejecutable con Olly y buscas el string que mencionas (demostracion), ves que aparece un referencia a la misma en el codigo. Usanso esa referencia, examinas el código hacia atrás, y llegas a ese salto que decide si ejecutar o no la parte que imprime ese string en pantalla.

Por lo pronto, si te interesa el tema, te invito a mirar el FAQ (link en mi firma). Ahí encontrarás mucha info para inicirte en este mundo.

Saludos!


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: misterjano en 29 Octubre 2019, 09:14 am
Hola!

Bueno, si con la indicación que te dí, no entendiste nada, explicarte cómo hallé el lugar podría tener igual resultado.

Pero, como aquí fomentamos la curiosidad: Si abres el ejecutable con Olly y buscas el string que mencionas (demostracion), ves que aparece un referencia a la misma en el codigo. Usanso esa referencia, examinas el código hacia atrás, y llegas a ese salto que decide si ejecutar o no la parte que imprime ese string en pantalla.

Por lo pronto, si te interesa el tema, te invito a mirar el FAQ (link en mi firma). Ahí encontrarás mucha info para inicirte en este mundo.

Saludos!

Estoy revisando con el OLLY pero me faltan conocimientos. Ya había mirado el faq previamente.

Recomendación entre tutotial de cero de ricardo narvaja de olly o de IDA?

Gracias por toda la ayuda!


Título: Re: AYUDA, un HARDLOCK que NO es un HARDLOCK.
Publicado por: MCKSys Argentina en 29 Octubre 2019, 15:13 pm
Estoy revisando con el OLLY pero me faltan conocimientos. Ya había mirado el faq previamente.

Recomendación entre tutotial de cero de ricardo narvaja de olly o de IDA?

Gracias por toda la ayuda!

Hola!

Si puedes, ambos.

Saludos!

PD: Ricardo Narvaja esta comenzando una nueva serie de tutoriales sobre reversing y exploiting usando herramientas gratis: https://twitter.com/ricnar456 (https://twitter.com/ricnar456)