понедельник, 9 ноября 2009 г.
Насколько сложно разобрать процесс работы программы имея практически все исходники программы? Под исходниками я имею ввиду не обфуцирование .net dllки с красиво, профессионально написанным кодом(естественно без комментариев), которые я без проблем открыл в .net reflectorе. Я с весь вечер убил чтобы разобраться с процессом лицензирования программы. С первого взгляда видно namespace VisualSVN.Core.Licensing. Но, как оказалось все это не так важно как скромная функция
public class Protector : IProtector
{
// Fields
private bool cachedIsRegistered;
private License cachedLicense;
private IDecoder decoder;
private bool licenseIsCached;
private ILicenseStorer privateStorer;
private ILicenseStorer publicStorer;
private RegistrationChangedEventHandler RegistrationChanged;
// Events
public event RegistrationChangedEventHandler RegistrationChanged;
// Methods
public Protector(ILicenseStorer privateStorer, ILicenseStorer publicStorer, IDecoder decoder);
private void CacheLicense(License license);
private void EnsureLicenseCached();
public License GetCurrentLicense();
public bool IsRegistered();
public bool IsValidKey(string key);
private License LoadLicense();
public License ParseKey(string key);
public bool RegisterKey(string key);
}
и вот она заветная
public bool IsRegistered()
{
this.EnsureLicenseCached();
return this.cachedIsRegistered;
}
изменив ее на банальное все работает норм, незачет создаиелям
public bool IsRegistered()
{
return true;
}
in msil
.method public hidebysig newslot virtual final instance bool IsRegistered() cil managed
{
.maxstack 8
L_0000: ldc.i4.1
L_0001: ret
}
Конечно же было интересно создать кейген, разобрав алгоритм проверки ключа, думаю в скором времени стоит попробовать.
0 коммент.:
Отправить комментарий