Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Uygulama güvenliği - USB Dongle koruma ve diğerleri
#27
(04-11-2016, Saat: 12:47)QuAdR Adlı Kullanıcıdan Alıntı: Asprotect örnek verdim.Kendiniz bir şeyler yapmayı düşünmeyip hazır bir şeyler ile devam etmek isterseniz şu an piyasada en iyi koruma sağlayan koruma motoru oreansın geliştirdiği themida ve winlicense dır.
Kendiniz bir şeyler yapmak isterseniz SMC (Self modifying code) ve overlay(Out section) metodlarını kullanabilirsiniz.
SMC runtime code bloklarını yeniden düzenleme işlemidir.
Overlay ise exe dosyalar sectionlardan oluşur ve bu section boyutları dosya içerisinde belirtilir.
Siz belirtilen exe boyutu üzerine yani dosyanın devamına kod yazarak bu kodu runtime da okuyarak kontrollerinizi yapabilirsiniz.
Overlay metodu ile önce exeyi derleyip bir compress işlemi yaptıktan sonra exe üzerine tekrar yazdırırsanız.
Eğerki exe decompress yani unpack edilirse bu veriler tekrar yazılmaz ise exe bozuk bir dosya haline gelecektir.
Yine buraya yazacağınız veriyi runtime da code bloğu silik bir exe ye belirli method çağrımları ile yazdırıp işlem bitiminde tekrar
sildirtebilirsiniz.Böylelikle debug edilse bile boş code bloğu ile karşılaşılacaktır.
Başka bir method ise exe içerisinde exe.Birinci exenin loader mantığı ile hafıza kontrolü yapıp ikinci exeyi direk kendi içerisinden hafızaya
açarak çalıştırmasıdır.Owner exe ile child exe yede birbirlerini kontrol ettirebilirseniz herhangi birine müdahale durumunda biri diğerine sonlanma isteği gönderebilir.Yine bu mantığa smc ve overlay de eklerseniz sağlam bir koruma sağlamış olursunuz.

Fikir olsun diye basit bir smc örneği vereyim.
program SMC;

{$APPTYPE CONSOLE}

uses
 SysUtils;

var
 SMCFunc: function: Integer;
{$J+}
const
 Code: array[0..5] of Byte = (
   //eax a bir değer alıp geri dönderelim
   $B8, $00, $00, $00, $00, $C3);
var
 FByte: Byte;

begin

 @SMCFunc := @Code;
 WriteLn('Su anki deger = ' + IntToStr(SMCFunc));
 WriteLn('Bir sayi giriniz (0-255)');
 ReadLn(FByte);
 Code[1] := FByte;
 WriteLn('Son deger = ' + IntToStr(SMCFunc));
 ReadLn;
end.

Tam olarak anlayamadığım bir durum var.
Uygulamaya önce lisans kontrolü yaptırmamız gerekecek. Yani lisans kodu/dosyası geçerli mi değil mi? "Eğer lisans geçerli ise devat et" ile daha önce bozduğumuz EXE yapısını uygulama açılırken tamir edeceğiz ve uygulamamız başarıyla çalışacak. Kod yapısının "Eğer lisans geçerli değilse devam et" olarak değiştirilmemesini de korumamız gerekecek. Bunun korunmasını nasıl sağlayacağız?
Cevapla


Bu Konudaki Yorumlar
Uygulama güvenliği - USB Dongle koruma ve diğerleri - Yazar: engerex - 29-12-2016, Saat: 15:29
Uygulama güvenliği - Yazar: cinarbil - 19-09-2024, Saat: 16:02

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Modern Servis Uygulama İskeleti Tuğrul HELVACI 22 24.684 02-05-2025, Saat: 14:30
Son Yorum: bakyuz
Information Uygulama yönetici olarak mı çalışıyor? (runtime tespit etme) bakyuz 0 398 28-04-2025, Saat: 17:22
Son Yorum: bakyuz
  Bakanlıktan Bitki Koruma Ürünleri Stok Bilgisi Alınması bünyamin68 43 18.685 06-11-2024, Saat: 16:55
Son Yorum: bünyamin68
  Askıya alınan uygulama mcuyan 9 2.909 04-03-2024, Saat: 19:58
Son Yorum: mcuyan
  Çalışan uygulama açık ise uyarı versin. Bay_Y 4 2.338 30-12-2022, Saat: 16:28
Son Yorum: Bay_Y



Konuyu Okuyanlar: 1 Ziyaretçi