Lisans İşlemleri

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

pardon ya gözlerim kör oluyor...sanırım özür özür...
shadowmann
Üye
Mesajlar: 508
Kayıt: 30 Oca 2004 10:49

Mesaj gönderen shadowmann »

Hasp konusunda benim de eklemek istediklerim var. Hasp' ın emulatorleri var. Emulatorle önce hasp daki bilgi okunuyor sonra hasp emulatoru çalıştırıyorsunuz. Sanki hasp takılı zannediyor. Emuleden hasp diye arayınca epey program çıkıyor.
Her zaman bir vâmuk-i azra olur alem bu ya,
Nev-be-nev efsaneler peydâ olur alem bu ya,
Kabz u bast kıl tefekkür aleminde ey gönül,
Vakt-i sermânın sonu, vakt-i germân olur alem bu ya...
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

eski tip (aladdin) hasp lar mikrodenetleyici ve bunun epromuna yazılan veririn program içinden check edilmesine dayanıyordu, aynı paralel port donglelardaki mantık, bu yüzden kırılması kolay oldu. yeni hasp hl ler asic chipler henüz kırıldığını duymadım. nette şu an için haspin simulatörünü görmedim ama tabi jmp ile kıranlar var ama :D
.-.-.-.-.-.-.-. ^_^
shadowmann
Üye
Mesajlar: 508
Kayıt: 30 Oca 2004 10:49

Mesaj gönderen shadowmann »

mege yazdı:eski tip (aladdin) hasp lar mikrodenetleyici ve bunun epromuna yazılan veririn program içinden check edilmesine dayanıyordu, aynı paralel port donglelardaki mantık, bu yüzden kırılması kolay oldu. yeni hasp hl ler asic chipler henüz kırıldığını duymadım. nette şu an için haspin simulatörünü görmedim ama tabi jmp ile kıranlar var ama
Eski yeni nesil bilmiyorum ama burda var.
http://www........................htm
Kendilerini de lisans anlaşması ile güvenceye almışlar. :D
LICENSE AGREEMENT

HASP Emulator Professional Edition - it is intended ONLY for legal use, I.e. legal emulation HASP of keys of the protected programs according to the law about to protection of copyrights of the country in which you live or the international agreements.

Any use of the given program, breaking copyrights or international agreements, is not lawful.

ALL CIVIL And the criminal LIABILITY FOR ILLEGAL USE HASP Emulator Professional Edition LAYS ONLY ON the USER.

Authors of this program do not carry any responsibility for actions of users as - or breaking copyrights.

If you are not sure concerning your rights, please contact yours the local legal adviser.

HASP Emulator Professional Edition - it is distributed "AS IS", and also authors of the program do not carry what responsibility for failures in work of operational system or other failures of your computer or the software if they have taken place on fault of the emulator.

IF YOU USE HASP Emulator Professional Edition, WHAT OR IMAGE NOT APPROPRIATE to the GIVEN LICENSE AGREEMENT, ONLY AT OWN RISK.
:D
Her zaman bir vâmuk-i azra olur alem bu ya,
Nev-be-nev efsaneler peydâ olur alem bu ya,
Kabz u bast kıl tefekkür aleminde ey gönül,
Vakt-i sermânın sonu, vakt-i germân olur alem bu ya...
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

linki vermenize gerek yoktu, dediğim gibi hardlockların yok dedim :) hasplar eski modelleri. hatta bu programlara bile gerek yok eskilerinin bire bir kopyalarınıda yapabiliyorsunuz. 89xxx serisi bir mc ve bir seri e2prom var bu devreyi kurup mevcut epromu kopyalayarakta yapabiliyorsunuz :)

sonuçta ne kullanılırsa kullanılsın koruma sisteminin ayağa düşmesi 1-2 seneyi buluyor, paralel port dongle lar neredeyse 10 yıl piyasada kaldı, usbler birkaç yılda çöpe gitti :D sıra bunlarada gelecek. :evil:
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

peki sizin öneriniz ne mege hocam...
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

eğer net üzerinden bir onaylama yoksa hiçbiri tam işe yaramaz, hepsi kırılır. dongle ise uygulaması en kolay, biraz maliyetli ama şimdilik en güvenli yöntem.
kısaca :D
deveyi sağlam kazığa bağlayıp cenabı Allah’a tevekkül edeceğiz
:lol:
.-.-.-.-.-.-.-. ^_^
Akin_Delphi
Üye
Mesajlar: 163
Kayıt: 06 Nis 2006 12:22

Mesaj gönderen Akin_Delphi »

Merhaba,

Debugger olup olmadığını anlamak için, bir keresinde deneme olarak bir kanal kullanmıştım. Eğer debugger varsa, kanala abuk bir komut verip, hem debuggerı hem de programı patlatmak mümkün. Ancak tehlikeli tavsiye etmem. :shock:

Ancak Armadillo diye bir program var. Bu program shareware korumak için yapılmış. Donanım kilidi ve debugger blocker özellikleri var.

Bu programla şifrelenmiş / korunmuş olan programları debuggerla açmaya kalktığınızda, itiraz edip kapatıyor.

Gerçi açılışta nasıl tespit ettiğini anlayamadım. Ancak bunu threadlerle nasıl yaptığıma dair örneği saklamışım.
İki tane threadim var birisi hiç bir iş yapmıyor ancak yalnızca debugger varsa ona habire duraklamasını söylüyor.

Şöyle ki :

Kod: Tümünü seç

procedure TEncryptionThread.Execute;
begin
  { Place thread code here }
  While DevamEt do
  begin
  DebugBreak;
  end;
end;
Aslında bu kanalın adı şifreleme kanalı ancak tabi beceremediğim için denemenin ötesine geçemedi.

İkinci kanalım ise, debugger var mı diye kontrol ediyor:

Kod: Tümünü seç

procedure TDebuggerKiller.Execute;
var
i : integer;
EncryptionThread : TEncryptionThread;
begin
  { Place thread code here }
Devamet := True;
i := 0;
 While Devamet do
 begin
  If (IsDebuggerPresent > 0)
  or (CheckRemoteDebuggerPresent  > 0) then
  begin
  Inc(i);
Sleep(500);
    If i >= 5 then
    begin
    Devamet:= False;
      EncryptionThread := TEncryptionThread.Create(True);
      EncryptionThread.Priority := tpHighest;
      EncryptionThread.DevamEt := True;
      EncryptionThread.Resume;
        If not EncryptionThread.DevamEt then
        begin
        UygulamaKulpu := GetCurrentProcess;
        DebugActiveProcessStop(UygulamaKulpu); //bu komut delphi debuggerını şaşırtıyor.
       end;
   end;
  end;
 end;
 Terminate;
end;
Bir üye de açılışta debugger'ı nasıl tespit edeceğimizi söylerse belki bir şeyler yapılabilir. Hatta ASM'den anlayan birisi programın belki de işletim sisteminin bile çökmesini sağlayabilir. Ancak ne derece ahlaki olur o tartışmalı tabi ki.

Saygılar ve Başarılar.
Akin_Delphi
Üye
Mesajlar: 163
Kayıt: 06 Nis 2006 12:22

Mesaj gönderen Akin_Delphi »

Akin_Delphi yazdı: Bir üye de açılışta debugger'ı nasıl tespit edeceğimizi söylerse belki bir şeyler yapılabilir. Hatta ASM'den anlayan birisi programın belki de işletim sisteminin bile çökmesini sağlayabilir. Ancak ne derece ahlaki olur o tartışmalı tabi ki.

Saygılar ve Başarılar.
Arkadaşlar açılışta algılama işlemini de başardım :twisted: :twisted: :twisted:

Formlardan birisinde initialization bölümü oluşturup aşağıdaki kodu yazıyorsunuz:

Kod: Tümünü seç

  initialization
  Deger := IsDebuggerPresent;
  //Deger2 := CheckRemoteDebuggerPresent;
  {If (IsDebuggerPresent > 0)
  or (CheckRemoteDebuggerPresent  > 0) then }
  If (Deger > 0) or
  (Deger2 > 0) then
  begin
  ExitProcess(1000);
  end;
Bu kodu yazdığınızda bunu bir debuggerla açmaya çalıştığınızda hemen program kapanıyor.

Ancak iki fonksiyonu birden kullandığınızda program debugger olmadığında bile basitçe açılmıyor. Neden acaba?

Bu arada önceki mesajımda söylemeyi unuttum. Bu üç fonksiyon Windows unitinde tanımlı değil. Onu kendiniz tanımlamanız gerekiyor. Şöyle ki :

Kod: Tümünü seç

var
  Form1: TForm1;
  Deger, Deger2 : Integer;

  function IsDebuggerPresent:Integer;external'Kernel32';
  function CheckRemoteDebuggerPresent:Integer;external'Kernel32';  
  function DebugActiveProcessStop(dwProcessID:DWORD):Integer;external'Kernel32';
Saygılar
Kullanıcı avatarı
bluekid
Kıdemli Üye
Mesajlar: 541
Kayıt: 11 Haz 2004 10:45
İletişim:

Mesaj gönderen bluekid »

:D :D
debuggerlarında bu tip API ler için HideDebugger seçenekleri var
bu olmasada Debuggerla programı açıp ilgili apileri aratıp o kısımlara ufak bir yama yaparak halledilebiliyor
Şöyle bir laf vardır "Bir program çalışıyorsa kırılabilirde" yani sen eninde sonunda şifre kontrolünüde, debugger kontrolünüde, netten kontrolünüde kod olarak yapacaksın bu kodu şifrelesende sıkıştırsanda bu programın çalışması için yine ortaya çıkması lazım ve hazin son haa siz ne yapabilirsiniz adamların işini daha zorlaştırabilirsiniz. Programınızın değerine göre -ucuzdan pahalıya -
viewtopic.php?p=25222&highlight=#25222
yada
Sıkıştırma- koruma programları kullanabilirsiniz
(armadillo, asprotect, upx,...)
veya
megenin dediği gibi
dongle ise uygulaması en kolay, biraz maliyetli ama şimdilik en güvenli yöntem.
kısaca Very Happy
tabii son çıkan tiplerini tercih etmek lazım
kolay gelsin
turkcanfidan
Üye
Mesajlar: 380
Kayıt: 31 Eki 2005 03:26

Mesaj gönderen turkcanfidan »

Arkadaşlar ben korumayı şöyle yapıyorum;

windows dizinine bir INI dosyası ve Registry e bir anahtar koyuyorum. Burada Donanım bilgileri Anahtar kelime ile şifreli bir şekilde kayıtlı. Başka bir dosyada da EXE dosyanın son halinin hash kodu var. Exe ye virüs bulaşsa ya da exe nin bir byte ını bile değiştirsen hash kodu tutmadığı için aynı şekilde ini veya registry içinde bir tutarsızlık varsa program kendini siliyor. Debugger ile editlenebileceği için değişken isimleride delphi fonksiyonlarına benzer isimler ve bir tek jmp komutu ile kırılacak bir şey değil. if komutu ile değil, case ile 5-6 yerde farklı şekillerde kontrol ediyor ve birinden geçemezse birinde takılıyor. Bunu 3-4 yıldır kullanıyorum, henüz kırıldığını görmedim. Bir tek if ile sakın koruma yapmayın, case te de şaşırtıcı değerler ve atlamalar koyabilirsiniz. Masraflı işlere gerek yok, hepsinin de çözümü var.
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Mesaj gönderen White Rose »

s.a.

Arkadaşlar Exemod diye bir unit var, ve içinde birçok fonksiyon var
bu unit exe dosyalar üzerinde herşeyi yapıyor,
exe içine string, bilgi gömme, okuma, başka bit exe yi gömme, onu bu exe den çıkartma vss.
bu unit işinizi görür

kaynak : http://www.delphiturk.com
Cevapla