Se 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:
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
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
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