Bir tek makineye kurulum

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
xegelix
Üye
Mesajlar: 21
Kayıt: 22 Kas 2005 12:04

Bir tek makineye kurulum

Mesaj gönderen xegelix »

Merhabalar arkadaşlar;
Sizden bir konuda yardım istiyorumm bir program hazırladım herşey bitti ben bu programın sadece bir maikeneye kurulmasını istiyorum yani programı bir makineye kuracas sonra istense bile başka bir makineye program kurulsa bile çalışmayacak. bunu nasıl yapabilirim bu konuda görüşlerinize ve bilgilerinize ihtiyacım var şimdiden tşk ederim iyi çalışmalar herkese
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Donanımsal tedbir al bi tane Dungle Lock at makinanın ardına veya Network kartından MACID'yi al ve sadece O MACID ile çalışmasını sağla (Harcode) olarak programına göm.

Sadece tek makiğnada çalışır o zaman :)

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
xegelix
Üye
Mesajlar: 21
Kayıt: 22 Kas 2005 12:04

Mesaj gönderen xegelix »

tşk ederim yardımlarınız için
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Sadece MAC_ID ile olmaz çünkü yazılımsal olarak değiştirilebilir. En sağlam yöntem şimdilik dungle kullanmak. Takılı değilse ve içinde istediğin bilgiler yoksa çalışmaması. Unutmamak lazım ki bunların bile aşılabildiği söyleniyor :? Kredi kartlarını okuyan/kopyalayan kore meşeli cihazlar gibi :(
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

Kopyalamaya bile gerek yok. HASPEMU isimli bir program tüm cihazları emule edebiliyor. Programınıza basit bir koruma ekleyin (MAC adresi ve işlemci seri numarası gibi). Boşuna dongle için ücret ödeyip uğraşmayın. Çünkü kırmak isteyen illa ki kıracaktır. Forumda ararsanız bu konuda daha önce bol bol konuştuk.
iqprog

Mesaj gönderen iqprog »

dungle'lar da baya gelişti. öyle kolay da kırılamıyor. emule etmek de fayda etmiyor bazı modellerde. dungle kullanabilir bence arkadaş.
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

Başlıkta gereksiz yere uzayacak ama bir dongle'ın fiyatı nedir? Kırılmayan dongle'ı kullanan örnek bir program var mıdır?
xegelix
Üye
Mesajlar: 21
Kayıt: 22 Kas 2005 12:04

Mesaj gönderen xegelix »

ya afedersiniz ama mantığı kesinlikle kuramıyorum sizlerin söledikleri size mantıklı biliyorum ama ben kuramıyorum mantığı bu konu ile ilgili açılan başlıları okudum tamam onguardı kullanım diyelim makinenin hdd numarasın alıpğ key oluşturduk. ilk makineye kuruldu sorunsuz. ama elimizde ikinci bir maikne var aynı kurulumu yaptığımızda bu sefer de o makinenin hdd numarasını alacak kurulacak ve gene çalışacak sanırım ben mantığı kuramıyorum. :( hadi kurulumda bir dosya oluşturduk ve bilgileri buna gömdük diyelim aynı dosyayı diğer bir makineye kurarkende oluşturacak vede gene çalışacak. Lütfen mazur görün çok çalıştım ve kafam almıyor sanırım bunun kısa yoldan bir çözümü varmı acaba?
iqprog

Mesaj gönderen iqprog »

mkysoft yazdı:Başlıkta gereksiz yere uzayacak ama bir dongle'ın fiyatı nedir? Kırılmayan dongle'ı kullanan örnek bir program var mıdır?
burada kimse kırılamayan bir dungledan bahsetmedi, dostum. bu cümlenin anlamını ve kimse söylediğini açsan iyi olur.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Merak edenlere başlangıç seviyesi basit bir lisans fonksiyonu yazayım. Kullanımı basittir.

- Sistem mantığını kurabilmeniz için basit anlatım amaçlıdır. :idea:

- Program klasörüne, program ile aynı isimde ama uzantısı XXX olan bir dosya koyun. İçeriği önemli değil.

- Projeniz; aynı kılasördeki XXX uzantılı dosyayı görürse anlar ki, kurulum modundasınız. Bu durumda bilgisayarın sabit disk volume seri nosunu okuyarak registry'e kaydeder ve bu XXX uzantılı dosyayı imha eder. Böylece bir anlamda program o HDD'ye mühürlenmiş olur. :wink:

- Not : GetPCCode fonksiyonu biraz geliştirilmiş bir fonksiyondur. Network sürücüsünden proje çalışsa dahi, çalışan değil çalıştırma yapılan PC'nin volume seri nosunu alır. :!:

- Not 2 : Aynı bağlamda; Network altında bağlı bilgisayarların her birinin registry kaydına ayrı ayrı kayıt düşülebilmesi için, her seferinde ana makinedeki silinen XXX dosyasının yeni kopyası oluşturularak, aynı işlem diğer bağlı bilgisayarda çalıştırmak sureti ile aynı projenin iki ve daha fazla bilgisayara lisansı sağlanabilir. Her seferinde XXX dosyası otomatik silinecektir. Yani her silme işlemi ilgili bilgisayara kurulum yapılması demektir.

- Geriye kalan işlem ise, registry'den bu kaydın aranmasıdır. Aranan bilgi eğer güncel okunan HDD VolumeID ile uyumlu ise program çalışır, aksi halde uyarı mesajı verip sonlanır.

Kod: Tümünü seç

program Project1;

uses
  Forms,
  Windows, SysUtils, Registry, Dialogs,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

// Uses'a Eklenecekler :
//      Windows, SysUtils, Registry, Dialogs
function ProgramCalissin():Boolean;
  function GetPCCode: string;
  var
    VolumeSerialNumber     : DWORD;
    MaximumComponentLength : DWORD;
    Flags                  : DWORD;
    Dir, Buf               : array [0..MAX_PATH] of Char;
    FileSystem             : array [0..15] of Char;
    ErrorMode, i           : Cardinal;
  begin
    Result    := '00000000';
    ErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS);
    GetWindowsDirectory(Dir, SizeOf(Dir));
    i := 0;
    while (Dir[i] <> '\') and (i < MAX_PATH) do inc(i);
    if i < MAX_PATH then inc(i);
    Dir[i] := #0;
    try
      if GetVolumeInformation(Dir, Buf, SizeOf(Buf), @VolumeSerialNumber,
        MaximumComponentLength, Flags, FileSystem, SizeOf(FileSystem)) then
      begin
        Result := IntToHex(VolumeSerialNumber, 8);
      end;
    finally
      SetErrorMode(ErrorMode);
    end;
  end;
var
  PCCode : String;
  Reg    : TRegistry;
begin
  PCCode := GetPCCode();
  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_LOCAL_MACHINE;
  If FileExists( ChangeFileExt(Application.Exename, '.xxx') ) then begin
    // 'Program Adı.xxx' dosyası varsa kurulum modundayız.
    If Reg.OpenKey( '\SOFTWARE\xegelix', True ) then Reg.WriteString( 'PCCode', PCCode );
    // Gerekli bilgi registry'ye kaydedilince bu dosyayı imha ediyoruz.
    DeleteFile( ChangeFileExt(Application.Exename, '.xxx') );
  end;
  Result := Reg.OpenKey( '\SOFTWARE\xegelix', False ) AND (Reg.ReadString('PCCode') = PCCode);
  Reg.CloseKey;
  Reg.Free;
end;

begin
  If ProgramCalissin then begin
    Application.Initialize;
    Application.CreateForm(TForm1, Form1);
    Application.Run;
  end else begin
    ShowMessage('Program Kopyalanmış. Çalışamaz....');
    Application.Terminate;
  end;
end.
- Buraya kadar olan işlemleri kavradıktan sonra bu registry'ye kaydedilen veriyi CPU-ID, BIOS bilgileri vb. bilgilerle zenginleştirerek MD5 gibi bir algoritma ile encrypt ederek korumaya alabilirsiniz.

- Bir kaç adımlı tuzak başka işlem de eklerseniz, programınızı kopyalayan insanlara sıkıcı vakit geçirterek caydırma yoluna gidebilirsiniz.

- Mesela ben kendi projelerimin kırılmasına izin veriyor iken bir kaç adımla lisans verisi ile bunların teyidine bakıyorum.

- Eğer tutarsızlık varsa kullanıcı verilerinin yedekli birer kopyasını bulundurmak kaydı ile yavaş yavaş geriye dönük olarak eski bilgileri silmesini sağlıyorum.

- Bir süre sonra da bu silinen verilerini farkeden kullanıcı benimle temas kurmak veya soğuk su içmek zorunda kalıyor.

- Habersiz uyarısız yapılan bu işlemlerin tespiti imkansız diyebilirim. Program bug sanılabilen türden bir sonuç oluyor çünkü... :lol: :lol: :lol:
Resim
Resim ....Resim
xegelix
Üye
Mesajlar: 21
Kayıt: 22 Kas 2005 12:04

Mesaj gönderen xegelix »

ne deyebilirimki üstat gerçekten çok ama çok tşk ederim bu şekilde açıklamalı bir anlatım beklemiyordum tekrar tekrar tşk eder çalışmalarınzda başarılar dilerim.
Saygılarımla
xegelix
Üye
Mesajlar: 21
Kayıt: 22 Kas 2005 12:04

Mesaj gönderen xegelix »

üstat sölediklerini çok güsel bir şekilde uyguladım çalışıyor yanlız anlamadığım bişiy var. Şimdi setup cdmiz var bunu karşı tarafa verdik program bir malkikneye kuruldu dediğiniz gibi .xxx uzantılı bir dosya var bu kurulumda nese kurıuluyor ilk çalıştığında regedite kayıt yapılıyor ve dosya siliniyor bunu anladım. Ancak karşı tarafın elinde başka bir makine vede setup cdsi ve bunun içinde de xxx uzantılı dosya var başka bir makineye bu kurulum yapıldığında gene o dosya var kurulum yapılıp çalışrıtıldığında gene o makinenin regeditine key atar ve o makienede de çalışır yoksa yanılıyormuyum bu konuda aydınlatabilirmisiniz beni ?Şimdiden tşk ederim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Hocam boşuna "sihir beyinde" demiyoruz :o

Opsiyonların

1. XXX dosyasını şartlı ve arka fonda gizli olarak internetten indirtme yoluna gidebilirsin.

2. Kurulumu şahsen sen gidip kendin yapabilirsin

3. Bir tane de Disket verebilir, işlemden sonra format çektirebilirsin. Format başarılı olursa registry ayarı yaparsın ki, tersi durumda futboldaki gibi offside duruma düşmezsin :lol:

4. CD'den kurulum yapıldığında cd'nin seri nosunu da işin içine katarak XXX dosyasını unutup bunun yerine interneteteki bir PHP ile haberleşir, onay kontrollü kuruluma izin verdirebilirsin.

5. aklıma basit anlamda şimdilik yukardakiler geldi.

- Daha önce söylediğim gibi, halka açık olarak sunduğum bir metoddur, kavramsal olarak temel teşkil edebilir ama tek başına kullanılması direkt çözüm olarak bir şey ifade etmez... :wink:
Resim
Resim ....Resim
xegelix
Üye
Mesajlar: 21
Kayıt: 22 Kas 2005 12:04

Mesaj gönderen xegelix »

yardımlarınız için tşk ederim hocam kusura bakmayın sizide uğraştırdım çalışmlarınızda başarılar dilerim
hbulus
Üye
Mesajlar: 163
Kayıt: 14 Tem 2003 11:30
İletişim:

Re: Bir tek makineye kurulum

Mesaj gönderen hbulus »

S.a.
Hocam aradan baya bi Zaman geçmiş ama bana yeni lazım oldu. Uygulama çok güzel oldu fakat XP'deçalışmasına rağmen Win8'de olmadı. .xxx dosyayı siliyor ama registry kaydı olmuyor. Çözüm için yardımcı olabilir misiniz?
Erbab-ı kemâli çekemez nakıs olan, rencide olur Dide-i Huffaş ziyadan....
Cevapla