Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi ile .Net Ortamında geliştirilen dll içerisindeki fonksiyon kullanımı
#1
Bir Kredi kartı güvenliği için Şifreleme işlemleri yapmam icap etti , Açıkcası Delphi tarafında zorlandım.
Baktım .Net tarafında daha kolay. Bir dl hazırlayıp Dephi tarafında bu dll içerisindeki fonksiyonu kullandım.

Oldukça Basit bir dil ile adım adım nasıl kullanılır bunu göstereceğim.

Öncelikle Visual Studio 'da yeni bir Class Library projesi oluşturuyoruz.
V3L58y.png

Proje Oluştuktan Sonra, "Solution Explorer"  >  "Properties"  > "AssemblyInfo.cs"  Açıp, içerisinde, ComVisible 'ı true yapıp ClassInterface(ClassInterfaceType.AutoDual)] Ekliyoruz.
[assembly: ComVisible(true)]
[assembly: ClassInterface(ClassInterfaceType.AutoDual)]

V3L5Ry.png

Daha Sonra Project > uygulamaadi Properties > Application > Assembly Information Adımlarındaki "Make assembly COM-Visible" tikini işaretliyoruz.

GykQgV.png

Daha Sonra Build Sekmesine geçip, "Register for COM interop" tikini işaretliyoruz

kXg3Qv.png


Sonrasında metodlarınızı/fonksiyonlarınızı yazıyoruz.

d72zgZ.png

dll'imizi build ettiğimizde, dizinimize aşağıdaki uzantılarda 3 dosya oluşuyor. Eğer bu 3 dosyada  bir eksik var ise Properties adımlarınızı tekrar gözden geçirmelisiniz.

0GkjoD.png

Artık Visual Studio ortamında işimiz kalmadı. Geçiyoruz Delphi tarafına, Yeni bir proje açıyoruz.

6yk7zW.png



Sonra Dll'lerimizi uygulamamız ile aynı dizine koyup, Component > Import Component >Import a Type Library adımlarına giderek , aşağıdaki adımlarla Dll'imi import ediyoruz.

o6ZPvm.png


Va bize Nurtopu gibi bir Unit oluşturuyor. Ve fonksiyonumuzu ekliyor.

GykQdZ.png

Ve Dll'imizi Kullanabiliyoruz.

By0mqp.png

Tabi free etmeyi unutmuyoruz Smile

Dip Not: Bu dll projesini kullanacağımız bilgisayarda, dll'imizi hangi Framework'te yazıyor isek, Kuracağımız bilgisayarda aynı .NET Framework sürümü kurulu olmalı. Ve Dll Registry edilmeli.

DLL'leri register etmek için Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol  'nı kullanıyoruz.

cmd'yi "Yönetici olarak çalıştır" 'rarak,
Kaydetmek için,
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\regasm.exe  "C:\*********\Debug\yhackup.dll"
Silmek için,
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\regasm.exe /u "C:\*********\Debug\yhackup.dll"

Komutunu kullanıyoruz.

bL2Qp8.png


Olabildiğince basit bir makale olmuştur umarım.
Saygılarımla...
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#2
(27-09-2017, Saat: 14:26)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol...
Oldukça Basit bir dil ile adım adım nasıl kullanılır bunu göstereceğim.
...

En iyi anladığımız dil (İnsan diline daha yakın olan): basit ve sade olanıdır. Smile
Paylaşım için teşekkürler.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#3
Tebrikler, kolay anlaşılır bir anlatım olmuş.

Bu noktada şu sorular aklıma geliyor, bu adımları da yazınıza veya devamına ekleyebilirseniz tam bir kaynak olmuş olur.

Müşterinin bilgisayarına bu DLL'leri kurarken hangi adımlar izlenmeli? Yani bu DLL'lerin derlenen Delphi EXE'sinin yanında olması yeterli mi? Değilse bu DLL'leri register etmek için ne yapmak gerekir? .NET Framework kurulmalı mı? Kurulacaksa hangi versiyon olacağı nasıl tespit edilebilir?

Bu bilgileri de bizimle paylaşırmısınız.
Peyami Safa: "Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır". 
Cevapla
#4
Teşekkürler sade, basit anlaşılır bir anlatım olmuş.
Cevapla
#5
ILSpy veya dnSpy yardımı ile yazdığın DLL içersindeki şifreleme methodu  çok rahat bir şekilde, görülebilir ve mantığı çözülebilir.
Delphi gibi .net ve java'ya göre decompile edilmesi daha zor olan bir dili kullanıp, güvenlik işini .net diline yaptırmak doğru mu ?
Genelde güvenlik ve performans için tam tersi yapılır.
My name is nobody.
WWW
Cevapla
#6
(27-09-2017, Saat: 15:13)uparlayan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlTebrikler, kolay anlaşılır bir anlatım olmuş.

Bu noktada şu sorular aklıma geliyor, bu adımları da yazınıza veya devamına ekleyebilirseniz tam bir kaynak olmuş olur.

Müşterinin bilgisayarına bu DLL'leri kurarken hangi adımlar izlenmeli? Yani bu DLL'lerin derlenen Delphi EXE'sinin yanında olması yeterli mi? Değilse bu DLL'leri register etmek için ne yapmak gerekir? .NET Framework kurulmalı mı? Kurulacaksa hangi versiyon olacağı nasıl tespit edilebilir?

Bu bilgileri de bizimle paylaşırmısınız.

Beklediğim soru geldi.
Müşteri bilgisayarında,  Dll'imizi hangi Framework'te yazıyor isek, Kuracağımız bilgisayarda aynı .NET Framework sürümü kurulu olmalı.

DLL'leri register etmek için Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol  'nı kullanıyoruz.

cmd'yi "Yönetici olarak çalıştır" 'rarak,
Kaydetmek için,
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\regasm.exe  "C:\*********\Debug\yhackup.dll"
Silmek için,
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\regasm.exe /u "C:\*********\Debug\yhackup.dll"

Komutunu kullanıyoruz.

bL2Qp8.png

(27-09-2017, Saat: 16:27)ismailkocacan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlILSpy veya dnSpy yardımı ile yazdığın DLL içersindeki şifreleme methodu  çok rahat bir şekilde, görülebilir ve mantığı çözülebilir.
Delphi gibi .net ve java'ya göre decompile edilmesi daha zor olan bir dili kullanıp, güvenlik işini .net diline yaptırmak doğru mu ?
Genelde güvenlik ve performans için tam tersi yapılır.

Bir kaç deneme yaptım ama karşıki firmanın java'da yaptığı şifreleme metodunu, delphi de yapamadım açıkcası, ve ben tarafta çok önem arz etmediği için kafa yormadım.

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol Yardımcı olmaya çalışmıştınız ama ben bir sonuca varamadım.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi'de Dökümantasyon Nasıl Yapılır uparlayan 21 398 17-07-2018, Saat: 16:54
Son Yorum: uparlayan
  Kitap İnceleme ( Algoritma ve Delphi 2005 ) #1 boreas 0 89 02-06-2018, Saat: 15:39
Son Yorum: boreas
Thumbs Up Inline Fonksiyon,Procedure narkotik 7 301 19-05-2018, Saat: 10:42
Son Yorum: sabanakman
  Delphi'de Indy SMTP ile e-mail gönderme. (GMail, Yandex, Yahoo vb.) csunguray 6 614 09-04-2018, Saat: 02:34
Son Yorum: dkadir
  SQL Server : Tablo Değişkeni Kullanımı (Running Total, Yürüyen Bakiye Örneği) uparlayan 5 429 22-03-2018, Saat: 12:28
Son Yorum: hi_selamlar



Konuyu Okuyanlar: 1 Ziyaretçi