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


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi IDE'sine Eklenti Yapmak - 2 SimaWB 29 16.074 03-07-2022, Saat: 16:40
Son Yorum: enigma
  Delphi ile İşletim Sistemi Yazımı PROGRAMADOR35 13 4.904 26-09-2021, Saat: 21:29
Son Yorum: ekremkocak
Lightbulb [FMX] Android - Indy ile HTTPS linklerine erişirken OpenSSL kütüphanesi kullanımı mrmarman 7 3.179 23-09-2021, Saat: 11:56
Son Yorum: Bay_Y
  Delphi ile Scada Milenyumotomasyon 18 6.283 28-07-2021, Saat: 10:53
Son Yorum: mehkamaci
  Delphi ve Assembly PROGRAMADOR35 7 1.962 13-01-2021, Saat: 05:03
Son Yorum: PROGRAMADOR35



Konuyu Okuyanlar: 1 Ziyaretçi