Ayuda sugerencias con crack en .NET

Iniciado por kenosis, 12 Septiembre 2015, 19:17 PM

0 Miembros y 1 Visitante están viendo este tema.

Eleкtro

#10
Cita de: kenosis en 12 Septiembre 2015, 19:17 PMSe que hay varias maneras de Crackearlo pero se me ocurrió que la más simple era cambiar en el método CheckRegistration().

El problema es que no logro modificar el codigo IL para que quede de la forma anterior, modifique las primeras instrucciones Il con el Reflexil de la siguiente manera pero no funciona:

No intentes modificar manualmente las instrucciones IL si no sabes hacerlo correctamente (yo tampoco se mucho), dices que estás utilizando .Net Reflector + el plugin Reflexil y tienes localizado la función validatoria, entonces con el mismo Reflexil puedes modificar el código del método a tu semejanza utilizando la sintaxis VB.Net o C# del byte-code, es decir, modificar las órdenes para dejarlo más o menos así:

Código (vbnet) [Seleccionar]
Public Function CheckRegistration() As RegistrationState
   Me._isProLicense = True
   Return RegistrationState.Registered
End Function


No es necesario más que eso, olvida el código IL.

Aquí tienes un tutorial que hice con imágenes sobre cómo usar la opción "Replace all with code", por si te sirve de algo, pero no creas que soy experto ni nada parecido en la ing. inversa, simplemente me defiendo en la técnica Reflection ya que desarrollo bajo la plataforma .Net y eso siempre ayuda a entender lo que haces al craquear un ensamblado .Net:

[TUTORIAL] Craquear librería Nostalgia.Net (Reflection)

En el panel de Reflexil, lo configuras para usar la sintaxis de VB.Net, posteriormente seleccionas todas las instrucciones IL de la class PhotoPartyUpload.PhotoBoothUpload.Registration, presionas click derecho y seleccionas la opción "Replace all with code", seguidamente, reemplazas la class entera por el siguiente código modificado que te muestro aquí abajo, y compilas usando la misma versión del compiler de .NetFx que hayan usado originálmente al desarrollar la dll.

Debo mencionar que obviamente no puedo verificar que no sea necesario realizar más modificaciones de las que hice, o ignorar alguna modificación, pues aparte de que con la dll que subiste no es suficiente ya que faltan referencias a otras classes de otros ensamblados de la aplicación los cuales no has compartido, además de eso me ha sido imposible descargar el trial de la app para testearlo, ya que al parecer te piden la VISA y demás para un miserable trial, es de locos, así que si tienes problemas en compilar este código entonces envíame el instalador completo del tal PBU por mensaje privado y veré que puedo hacer, pero en principio esto te podría servir cómo solución final:

Código (vbnet) [Seleccionar]
Option Explicit On
Option Strict On

#Region " Imports "

   Imports System
   Imports System.Collections.Generic
   Imports System.Text

#End Region

Namespace PhotoPartyUpload.PhotoBoothUpload.Registration

Class Registration

Function CheckRegistration() As PhotoPartyUpload.PhotoBoothUpload.Registration.RegistrationState
Return RegistrationState.Registered
End Function

#Region " Methods stubs "

    Function get_LicenseData() As PhotoPartyUpload.PhotoBoothUpload.Registration.LicenseData
    Return Nothing
    End Function
   
    Sub set_LicenseData(ByVal value As PhotoPartyUpload.PhotoBoothUpload.Registration.LicenseData)
    End Sub
   
    Function get_RemaningDaysTrial() As Integer
    Return Integer.MaxValue
    End Function
   
    Function GetCurrentTime() As System.DateTime
    Return DateTime.Now()
    End Function
   
    Function LoadLicenseData() As PhotoPartyUpload.PhotoBoothUpload.Registration.LicenseData
    Return Nothing
    End Function
   
    Sub SaveLicenseData(ByVal regData As PhotoPartyUpload.PhotoBoothUpload.Registration.LicenseData)
    End Sub
   
    Function LoadRegistrationData() As PhotoPartyUpload.PhotoBoothUpload.Registration.RegistrationData
    Return New RegistrationData
    End Function
   
    Sub SaveRegistrationData(ByVal regData As PhotoPartyUpload.PhotoBoothUpload.Registration.RegistrationData)
    End Sub
   
    Shared Function KeyGenerator(ByVal name As String, ByVal systemCode As String, ByVal expiryDate As System.DateTime, ByVal updatesExpiryDate As System.DateTime, ByVal isProVersion As Boolean) As String
    Return String.Empty
    End Function
   
    Function DecodeLicense(ByVal name As String, ByVal systemCode As String, ByVal code As String) As PhotoPartyUpload.PhotoBoothUpload.Registration.LicenseData
    Return Nothing
    End Function
   
    Sub SetCurrentTime(ByVal currentTime As System.DateTime)
    End Sub
   
    Function get_IsBasicLicense() As Boolean
    Return False
    End Function
   
    Function get_IsDemoMode() As Boolean
    Return False
    End Function
   
    Function get_IsProLicense() As Boolean
    Return True
    End Function
   
    Function get_LicenseCode() As String
    Return "2fa747e3-4604-46e5-9083-3d01aadb9499"
    End Function
   
    Shared Function GetSystemKey() As String
    Return String.Empty
    End Function
   
    Shared Function GetSystemInfo() As String
    Return String.Empty
    End Function
   
    Shared Function RunQuery(ByVal TableName As String, ByVal MethodName As String) As String
    Return String.Empty
    End Function
   
    Sub New()
    End Sub
   
    Shared Sub New()
    End Sub

#End Region

#Region " Fields stubs "

    Dim Shared TrialDays As Integer = Integer.MaxValue
    Dim Shared RegistrationSubKey As String = String.Empty
    Dim Shared RegistrationSubKeyOld As String = String.Empty
    Dim _registrationState As PhotoPartyUpload.PhotoBoothUpload.Registration.RegistrationState = RegistrationState.Registered
    Dim _isProLicense As Boolean = True
    Dim _licenseCode As String = "2fa747e3-4604-46e5-9083-3d01aadb9499"
    Dim RegData As PhotoPartyUpload.PhotoBoothUpload.Registration.RegistrationData = New RegistrationData
    Dim Shared RegistrationKey As String = "{76995B8C-ECAF-4A37-8AE7-D2CFD9B303A5}"
    Dim Shared DataKey As String = "{C4D4B1C3-C9C9-4CFE-A70A-54358EE10109}"
    Dim IsRegistrationDisabled As Boolean = False
    ' Dim <LicenseData>k__BackingField As PhotoPartyUpload.PhotoBoothUpload.Registration.LicenseData

#End Region

End Class
End Namespace


Saludos








MCKSys Argentina

Cita de: Ele?tro en 20 Septiembre 2015, 12:26 PM
No intentes modificar manualmente las instrucciones IL si no sabes hacerlo correctamente...

No es necesario más que eso, olvida el código IL.

Sólo quiero destacar que saber codear en IL equivale a ASM en x86 o x86-64. Es imperativo en Ing. Inversa, saber cómo funciona IL si vas a atacar programas hechos en .NET. En este caso se podría reemplazar todo con código ya que no hay packer. Pero generalmente no es así.

Cita de: Ele?tro en 20 Septiembre 2015, 12:26 PM
... me ha sido imposible descargar el trial de la app para testearlo, ya que al parecer te piden la VISA y demás para un miserable trial ...

La app la puedes descargar sin problemas desde el sitio. La verdad, el sitio está muy mal hecho (si te has fijado, piden los datos de tu tarjeta por HTTP).  :P
El ejecutable lo puedes bajar entrando aqui y haciendo click en el link de la opción 1.

Saludos!

PD: El link de descarga salió usando FOCA...  :xD
MCKSys Argentina

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


Eleкtro

#12
Cita de: MCKSys Argentina en 21 Septiembre 2015, 01:31 AMSólo quiero destacar que saber codear en IL equivale a ASM en x86 o x86-64. Es imperativo en Ing. Inversa, saber cómo funciona IL si vas a atacar programas hechos en .NET. En este caso se podría reemplazar todo con código ya que no hay packer. Pero generalmente no es así.

Por supuesto compañero, sin duda es un buen consejo, yo lo único que pretendía decirle es que si no sabe IL mejor no lo intente por ese camino por que se meterá en un búcle Trial and Error sin salida, el aprendizaje le llevaría meses y esto parece ser un problema esporádico que se puede resolver de la otra forma ya mencionada, la cual, en teoría le costaría menos entendimiento y aprendizaje en comparación, pues parece desenvolverse bien utilizando la sintaxis de VB.Net.

Cita de: MCKSys Argentina en 21 Septiembre 2015, 01:31 AMEl ejecutable lo puedes bajar entrando aqui y haciendo click en el link de la opción 1.

Vaya, gracias por la info, ahora puedo testearlo a ver. :)




EDITO: Confirmo que con la solución que expuse antes parece funcionar correctamente, el mensaje de aviso trial desaparece y lo reconoce cómo registrado.



Aquí tienes la librería parcheada, prueba a ver:
http://www.mediafire.com/download/ip61tll45nt5sr2/PhotoBoothUploadLib.dll

[OFFTOPIC]
Recuerdo que hace tiempo me pidieron un trabajo freelance para controlar el comportamiento de esta app, uf, no la recordaba, ¡esta App tiene la UI más nefasta que he visto jamás!, realmente me asquea de principio a fin, empezando por el diseño.

Pero bueno, cómo se suele decir...



Qué disfrutes tu app gratuita  :laugh:.
[/OFFTOPIC]

Saludos!








adyctivo

Hola Eleкtro, he visto este post de 2015 y he intentado descargar la ddl de mediafire pero veo que no esta disponible.

Podrías volver a subirla?
Me pierdo dentro de reflector la verdad.


Gracias

Eleкtro

#14
Cita de: adyctivo en 31 Julio 2017, 20:18 PM
Hola Eleкtro, he visto este post de 2015 y he intentado descargar la ddl de mediafire pero veo que no esta disponible.

Podrías volver a subirla?

No, lo siento, no conservo la librería, pero puedes intentar contactar con el autor de este hilo a ver si él todavía la conserva, en su perfil de usuario hallarás su dirección e-mail...

Cita de: adyctivo en 31 Julio 2017, 20:18 PM
Me pierdo dentro de reflector la verdad.

Comprendo que utilizar algo "nuevo" siempre se hace dificil hasta que se adquiere cierta práctica, pero por otro lado considero que compartí unas instrucciones bien facilitas... solo debes usar el plugin Reflexil en el programa .NET Reflector de Redgate para reemplazar el código original por el que yo puse, y compilar con los cambios realizados :-/.

Saludos!








adyctivo

Ok, voy a probar y a intentar aprender a utilizarlo.

Gracias! ;-)