Hola a todos.
Este es mi primer post y quisiera decir que hace varios días que me intento iniciar en el mundo de la ingeniería inversa. Ya me he leído varios tutos y solucionado varios crackmes (casi todos ellos en delphi y unos pocos en vb), pero ahora tengo un problema y es que no se sacar el serial de uno de ellos que está escrito en c#.
Tengo ya localizado el punto donde hace la comprobación del serial y permite activar el botón de registrar, lo que pasa es que no sé mucho c# y no se sacarlo (veo que estudiar la carrera de informática no me ha servido de mucho jeje).
Aquí pongo el código de la función licenseInfoChanged, que es la que hace la comprobación del serial introducido:
y aquí el Data al que debe ser igual:Código:private void licenseInfoChanged(object sender, EventArgs e) { try { string input = this.licenseKey.Text.Trim(); if (!Regex.IsMatch(input, @"[A-Za-z0-9\/\+]{4}-[A-Za-z0-9\/\+]{5}-[A-Za-z0-9\/\+]{4}-[A-Za-z0-9\/\+]{5}-[A-Za-z0-9\/\+]{4}")) { this.ok.Enabled = false; } else { byte[] buffer2; FileEncryption.ExtractKey(FileEncryption.RecoverPrivateKey(input.Replace("-", ""), this.fullname.Text, this.email.Text), out this._ExpireDate, out buffer2); buffer2 = Encryption.Encrypt(buffer2, FileEncryption.FriendlyBase64(Convert.ToBase64String(buffer2))); if (buffer2.Length != Data.Length) { this.ok.Enabled = false; } else { for (int i = 0; i < Data.Length; i++) { if (Data[i] != buffer2[i]) { this.ok.Enabled = false; return; } } this.ok.Enabled = true; } } } catch { this.ok.Enabled = false; } }
Espero que me puedan echar alguna ayudilla, ya que estoy más perdido que una aguja en un pajar XD.Código:static RegistrationDialog() { Data = new byte[] { 0xa9, 0x24, 0x2e, 0xa5, 14, 0xcb, 50, 0xbc, 0x40, 0xf9, 0x8d, 0xab, 0x68, 0xa4, 0x3e, 0xfc }; RegData = new byte[] { 13, 0xc4, 0xb1, 6, 0xd6, 0xf9, 0x6f, 0x77, 0x93, 0x63, 0x4b, 0x30, 0x4f, 0x63, 0x2e, 0xc6, 0x19, 0x44, 0xad, 0x62, 0x69, 40, 0xac, 0x95, 210, 0xa3, 0x43, 0x4d, 13, 0x6f, 0xb1, 0xc2, 0xe8, 0x7b, 150, 0x63, 0xf4, 0xa5, 0xa2, 0xc3, 0x9a, 0x99, 0xce, 0xfd, 0x27, 0x38, 0xed, 0x9d, 0x48, 0x5d, 200, 0xa1, 10, 0x74, 0xd4, 0x20, 0xa4, 0x3b, 0x72, 0x2f, 0x4d, 0xcd, 0xba, 0xc4, 20, 0x84, 0x5f, 0x31, 11, 0xe2, 0xf5, 210, 0xf1, 200, 0x67, 0x4c, 4, 0xcb, 0x2b, 0x45, 0xe7, 0xf1, 0x25, 0x11, 0x8b, 0x97, 0x4d, 0x3e, 0xf8, 0x17, 0xec, 0xf1, 0x4e, 0x13, 0x16, 0x6a }; RenewData = new byte[] { 13, 0xc4, 0xb1, 6, 0xd6, 0xf9, 0x6f, 0x77, 0x93, 0x63, 0x4b, 0x30, 0x4f, 0x63, 0x2e, 0xc6, 0x19, 0x44, 0xad, 0x62, 0x69, 40, 0xac, 0x95, 210, 0xa3, 0x43, 0x4d, 13, 0x6f, 0xb1, 0xc2, 0xe8, 0x7b, 150, 0x63, 0xf4, 0xa5, 0xa2, 0xc3, 0x9a, 0x99, 0xce, 0xfd, 0x27, 0x38, 0xed, 0x9d, 0x48, 0x5d, 200, 0xa1, 10, 0x74, 0xd4, 0x20, 0xa4, 0x3b, 0x72, 0x2f, 0x4d, 0xcd, 0xba, 0xc4, 0xf6, 0xb7, 0xec, 0x58, 250, 0x12, 0x8f, 30, 0x1d, 0xc4, 190, 0x6f, 0xb7, 0x5b, 0x9d, 0xa1, 60, 0x2e, 0xae, 0x26, 0xc7, 0xd1, 0xce, 9, 0x7e, 0x4d, 0x74, 0xa3, 0x81, 0xee, 0xc6, 0x17 }; }
Gracias de antemano.
Marcadores