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 Regasm.exe (Derleme Kayıt Aracı)  '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...
WWW
Cevapla
#2
(27-09-2017, Saat: 14:26)yhackup Adlı Kullanıcıdan Alıntı: ...
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.
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.
YouTube Delphi Tips
"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" Peyami Safa
WWW
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.
WWW
Cevapla
#6
(27-09-2017, Saat: 15:13)uparlayan Adlı Kullanıcıdan Alıntı: 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.

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 Regasm.exe (Derleme Kayıt Aracı)  '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ı: 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.

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.

Bu Konuda Yardımcı olmaya çalışmıştınız ama ben bir sonuca varamadım.
WWW
Cevapla
#7
@yhackup , ekran görüntülerini yeniden yükleme şansınız var mı? Şu anda sanırım bir hosting sorunu yüzünden görüntülenemiyor.
Teşekkürler.
Cevapla
#8
(02-09-2022, Saat: 13:44)cemakkus Adlı Kullanıcıdan Alıntı: @yhackup , ekran görüntülerini yeniden yükleme şansınız var mı? Şu anda sanırım bir hosting sorunu yüzünden görüntülenemiyor.
Teşekkürler.

Yüklediğim site uçmuş. 5 yıl olmuş resimler bulunmuyor artık maalesef.
WWW
Cevapla
#9
Değerli @yhackup , web sitenizdeki https://blog.yakupulutas.com/net-ortamin...kullanmak/ adresinde tam istediğim şekilde makaleniz hala duruyor. Eğer kullanmak isteyen olursa diye paylaşayım dedim.
Sevgiler.
Cevapla
#10
(01-10-2022, Saat: 13:35)cemakkus Adlı Kullanıcıdan Alıntı: Değerli @yhackup , web sitenizdeki https://blog.yakupulutas.com/net-ortamin...kullanmak/ adresinde tam istediğim şekilde makaleniz hala duruyor. Eğer kullanmak isteyen olursa diye paylaşayım dedim.
Sevgiler.

Teşekkürler onlar da başka siteye host edilmiş, kendi hostingime alayım resimleri de bari onlar da gitmesin , teşekkürler bilgilendirme için. faydalı oldumsa ne mutlu.
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Kendinden İmzalı Dijital Sertifikalar ve Socket Uygulamalarında Kullanımı delphi.developer 15 2.514 31-10-2023, Saat: 23:30
Son Yorum: nguzeller
  Delphi ve Protocol Buffers SimaWB 10 6.903 10-12-2022, Saat: 15:04
Son Yorum: SimaWB
  Delphi AES 128 ECB PKCS5 Padding ile sorun aegean 1 835 28-11-2022, Saat: 13:07
Son Yorum: aegean
  Delphi IDE'sine Eklenti Yapmak - 2 SimaWB 29 21.989 03-07-2022, Saat: 16:40
Son Yorum: enigma
  Delphi ile İşletim Sistemi Yazımı PROGRAMADOR35 13 8.177 26-09-2021, Saat: 21:29
Son Yorum: ekremkocak



Konuyu Okuyanlar: 1 Ziyaretçi