Nasıl bir koruma koyabilirim ?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
seci20

Nasıl bir koruma koyabilirim ?

Mesaj gönderen seci20 »

Ustalarım kolay gelsin programıma hwid koruması koymak istiyorum ama söyle bir sorunum var hangi foksiyonu kullanırsam kullanim işletim sistemi değiştiğinde hwid aynı kalmıyor. Söyle anlatayım örneğin harddisk seri numarası ile hwid alıyorum adam xp ye döndüğünde o numara değişiyor. Netteki çoğu foksiyonu denedim olmadı. Varmı önerebileceğiniz bir foksiyon yada yöntem şimdiden teşekkür ederim...
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Nasıl bir koruma koyabilirim ?

Mesaj gönderen ertank »

Merhaba,

Sabit disk için format seri numarası ve donanım seri numarası vardır. Eğer siz format seri numarası kullanıyor iseniz işletim sistemi değiştiği zaman yüksek olasılıkla formatlanarak yeni işletim sistemi yükleneceği için değişir. Öncelikle buna dikkat edin. Format seri numarası DOS komut isteminde DIR komutunu kullandığınız zaman ilk sıralarda yazar

Kod: Tümünü seç

C:\Users\Ertan>dir
 Volume in drive C has no label.
 Volume Serial Number is 26D9-2370

 Directory of C:\Users\Ertan

19/10/2017  16:50    <DIR>          .
19/10/2017  16:50    <DIR>          ..
Yukarıda "Volume Serial Number is" ifadesinden sonraki seri numarası her bir format sonrasında değişir.

Donanım seri numarasını ancak sabit diski bilgisayar içindeki yerinden çıkararak üzerindeki etikete bakarak tespit edebilirsiniz.

Her halukarda kullanıcı farklı bir disk üzerine işletim sistemi kurması halinde seri numarası değişmiş olacaktır. Bu durumda zaten sizin uygulamanız koruma çerçevesinde çalışmayarak ekrana sebebini belirtir bir mesaj vermesi gerekir.

Ayrıca, unutulmamalıdır ki günümüzde sanal işletim sistemi kurmak eskiden olduğundan çok daha kolaydır. Bu anlamda donanım üzerinden kurulmaya çalışılan bir koruma sanal işletim sistemi üzerinde anlamsız hale gelebilir.

Son olarak, administrator yetkisi gerekmeden farklı donanım bilgilerini okuyabilen aşağıdaki ücretsiz kütüphaneyi kullanabilirsiniz.
https://github.com/RRUZ/tsmbios

Örnek uygulamalar kullanımı konusunda yeterince açıklayıcı olmaktadır.
seci20

Re: Nasıl bir koruma koyabilirim ?

Mesaj gönderen seci20 »

hocam cevap verdiğiniz için çok teşekkür ederim. Etiketin üzerinde yazan seri numarası hd tune programı ile okunuyor o yüzden ondan örnek vermiştim. Birde hocam bu eklentide bir çok cihazın seri numarasını veriyor ama değişmiyen varmıdır bir bilginiz var ?
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Nasıl bir koruma koyabilirim ?

Mesaj gönderen ertank »

Detaylı test etmeniz gerekli. Ben "CPU Clock" değerinin değişebildiğini zor yoldan öğrenmiştim. Bu sebepten "şu sabittir" demek istemem.
seci20

Re: Nasıl bir koruma koyabilirim ?

Mesaj gönderen seci20 »

ertank yazdı: 24 Eki 2017 06:08 Detaylı test etmeniz gerekli. Ben "CPU Clock" değerinin değişebildiğini zor yoldan öğrenmiştim. Bu sebepten "şu sabittir" demek istemem.
teşekkür ederim hocam
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Nasıl bir koruma koyabilirim ?

Mesaj gönderen mkysoft »

Bu konuda daha önce de konuşulmuştu, arama yapabilirseniz daha farklı bilgiler edinmeniz mümkün olur.
Korumaya karşı temel görüşüm şöyle, yeterki kopyalayıp kullanmaya değer bir yazılım geliştirin. Yeterli kopyalansın, çoğalsın, yaygınlaşsın. Tam mikisoft mantığı. Korumaya harcayacağınızı zamanı, yazılımınızı daha iyi hale getirmeye çalışarak harcayın.
Uygulamanız içine rastsal zamanlarda hangi IP'de, kaç kullanıcı, hangi tanımlar ile çalıştığını bir yere email atan / gönderen bir kod ekleyebilirsiniz.
Kullanıcı avatarı
loaded
Üye
Mesajlar: 122
Kayıt: 12 Eki 2010 09:45
Konum: Konya
İletişim:

Re: Nasıl bir koruma koyabilirim ?

Mesaj gönderen loaded »

Program koruma ile ilgili olarak bir topic;
viewtopic.php?f=2&t=34264&p=185519#p185519
Gözlemlerine göre ;
- Windows işletim sistemi değişikliklerinde numara değişmiyor.
- Sanal bilgisayarlarda ise makine çoğaltmalarında yada disk kopyalamalarında numara değişiyor. Sanalla ilgili diğer bir husus, programın sanalda mı yoksa reel demi çalıştığını anlayabilen kodlar var.
Bence en stabil ve sorunsuz kullanılabilen fiziksel disk numarası.
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Nasıl bir koruma koyabilirim ?

Mesaj gönderen ertank »

loaded yazdı: 27 Eki 2017 09:20 Program koruma ile ilgili olarak bir topic;
viewtopic.php?f=2&t=34264&p=185519#p185519
Gözlemlerine göre ;
- Windows işletim sistemi değişikliklerinde numara değişmiyor.
- Sanal bilgisayarlarda ise makine çoğaltmalarında yada disk kopyalamalarında numara değişiyor. Sanalla ilgili diğer bir husus, programın sanalda mı yoksa reel demi çalıştığını anlayabilen kodlar var.
Bence en stabil ve sorunsuz kullanılabilen fiziksel disk numarası.
Merhaba,

Örnek kod Windwos WMI servisini kullanıyor. Eğer bu servis kapalı olur ise bilgilere erişmek mümkün olmayacaktır. Mümkün mertebe işletim sistemi servislerine bağlı kalınmadan öğrenilebilecek bilgiler lisanslama işleminin daha sağlıklı olmasını sağlayacaktır.

Sanal sistemler ile ilgili, yanlış bilmiyor isem sanal sistem işletim sistemini donanımdan tamamen koparıyor. Yani İşletim sistemi sanal sistem tarafından sağlanan donanım bilgileri ile çalışıyor. Bilgim dahilinde fiziki disk numarası da bunlardan birisi. Az önce test ettiğimde BIOS bilgilerinin dahil sanal ortamda değiştiğini gördüm.

Bu bilgiler ışığında şahsen bir lisanslama sisteminin günümüzde tek bir parametre üzerinden değil birçok farklı parametre üzerinden ve mümkün mertebe işletim sistemi servislerine bağımlı olmadan yapılması gerektiğine inanıyorum. Ek olarak internet erişimi olan uygulamalar için aynı kontrollerin yanına lisans sorgulama webservisi kullanılmasını ek güvenlik olarak önerebilirim.

Son olarak, kırılamayacak uygulama olmadığını bilip makul seviyelerde bir koruma elde edildiğine inanıldıktan sonra esas uygulamanın geliştirilmesinin şahsen çok daha faydalı olacağına inanıyorum.
seci20

Re: Nasıl bir koruma koyabilirim ?

Mesaj gönderen seci20 »

ertank yazdı: 27 Eki 2017 04:59
loaded yazdı: 27 Eki 2017 09:20 Program koruma ile ilgili olarak bir topic;
viewtopic.php?f=2&t=34264&p=185519#p185519
Gözlemlerine göre ;
- Windows işletim sistemi değişikliklerinde numara değişmiyor.
- Sanal bilgisayarlarda ise makine çoğaltmalarında yada disk kopyalamalarında numara değişiyor. Sanalla ilgili diğer bir husus, programın sanalda mı yoksa reel demi çalıştığını anlayabilen kodlar var.
Bence en stabil ve sorunsuz kullanılabilen fiziksel disk numarası.
Merhaba,

Örnek kod Windwos WMI servisini kullanıyor. Eğer bu servis kapalı olur ise bilgilere erişmek mümkün olmayacaktır. Mümkün mertebe işletim sistemi servislerine bağlı kalınmadan öğrenilebilecek bilgiler lisanslama işleminin daha sağlıklı olmasını sağlayacaktır.

Sanal sistemler ile ilgili, yanlış bilmiyor isem sanal sistem işletim sistemini donanımdan tamamen koparıyor. Yani İşletim sistemi sanal sistem tarafından sağlanan donanım bilgileri ile çalışıyor. Bilgim dahilinde fiziki disk numarası da bunlardan birisi. Az önce test ettiğimde BIOS bilgilerinin dahil sanal ortamda değiştiğini gördüm.

Bu bilgiler ışığında şahsen bir lisanslama sisteminin günümüzde tek bir parametre üzerinden değil birçok farklı parametre üzerinden ve mümkün mertebe işletim sistemi servislerine bağımlı olmadan yapılması gerektiğine inanıyorum. Ek olarak internet erişimi olan uygulamalar için aynı kontrollerin yanına lisans sorgulama webservisi kullanılmasını ek güvenlik olarak önerebilirim.

Son olarak, kırılamayacak uygulama olmadığını bilip makul seviyelerde bir koruma elde edildiğine inanıldıktan sonra esas uygulamanın geliştirilmesinin şahsen çok daha faydalı olacağına inanıyorum.
aynen öyle hocam dediğiniz gibi yapıcam. Programa ağırlık vericem...
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Nasıl bir koruma koyabilirim ?

Mesaj gönderen freeman35 »

ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Nasıl bir koruma koyabilirim ?

Mesaj gönderen sabanakman »

Eğer farklı donanım veya sistem bilgilerine de ihtiyaç doğarsa WMI sorgulamalarıyla bunları elde etmek mümkündür. WMI Delphi Code Creator projesi bu sorguları hazır oluşturan bir yapıya sahiptir. Mesela sistemde bulunan disklerin seri numaralarını listeleyen aşağıdaki kod bu paket tarafından oluşturuldu.

Kod: Tümünü seç

//-----------------------------------------------------------------------------------------------------
//     This code was generated by the Wmi Delphi Code Creator (WDCC) Version 1.9.9.350
//     http://code.google.com/p/wmi-delphi-code-creator/
//     Blog http://theroadtodelphi.wordpress.com/wmi-delphi-code-creator/
//     Author Rodrigo Ruz V. (RRUZ) Copyright (C) 2011-2015 
//----------------------------------------------------------------------------------------------------- 
//
//     LIABILITY DISCLAIMER
//     THIS GENERATED CODE IS DISTRIBUTED "AS IS". NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED.
//     YOU USE IT AT YOUR OWN RISK. THE AUTHOR NOT WILL BE LIABLE FOR DATA LOSS,
//     DAMAGES AND LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING OR MISUSING THIS CODE.
//
//----------------------------------------------------------------------------------------------------
program Project1;


{$APPTYPE CONSOLE}

uses
  SysUtils,
  ActiveX,
  ComObj,
  Variants;
  

    
// The Win32_ComputerSystemProduct class represents a product. This includes 
// software and hardware used on this computer system.

procedure  GetWin32_PhysicalMediaInfo;
const
  WbemUser            ='';
  WbemPassword        ='';
  WbemComputer        ='localhost';
  wbemFlagForwardOnly = $00000020;
var
  FSWbemLocator : OLEVariant;
  FWMIService   : OLEVariant;
  FWbemObjectSet: OLEVariant;
  FWbemObject   : OLEVariant;
  oEnum         : IEnumvariant;
  iValue        : LongWord;
begin;
  FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  FWMIService   := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword);
  FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_PhysicalMedia','WQL',wbemFlagForwardOnly);
  oEnum         := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
  while oEnum.Next(1, FWbemObject, iValue) = 0 do
  begin
    Writeln(Format('SerialNumber    %s',[VarToStr(FWbemObject.SerialNumber)]));// String
    Writeln(Format('Tag             %s',[VarToStr(FWbemObject.Tag)]));// String

    Writeln('');
    FWbemObject:=Unassigned;
  end;
end;


begin
 try
    CoInitialize(nil);
    try
      GetWin32_PhysicalMediaInfo;
    finally
      CoUninitialize;
    end;
 except
    on E:EOleException do
        Writeln(Format('EOleException %s %x', [E.Message,E.ErrorCode])); 
    on E:Exception do
        Writeln(E.Classname, ':', E.Message);
 end;
 Writeln('Press Enter to exit');
 Readln;      
end.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla