Delphi Decompiler ile stringlerin gösterimi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 690
Kayıt: 28 Nis 2011 09:33
Konum: İstanbul

Delphi Decompiler ile stringlerin gösterimi

Mesaj gönderen greenegitim » 24 Kas 2011 10:07

S.a arkadaşlar ftp ye bağlanıp ufak bir dosya çeken program yaptım yalnız bunu de decompiler lite ile decompile etiğimde
ftp kullanıcı adı şifre v.s. görüyorum

Kod: Tümünü seç

 loc_00484B15: mov edx, 00484C0Ch ; 'ftp.siteadresim.com'
  loc_00484B1A: mov ecx, [eax]
  loc_00484B1C: call [ecx+00000088h]
  loc_00484B22: mov eax, var_04
  loc_00484B25: mov eax, [eax+0000030Ch]
  loc_00484B2B: add eax, 000000E0h
  loc_00484B30: mov edx, 00484C24h ; 'kullaniciadim'
  loc_00484B35: call 00404638h
  loc_00484B3A: mov eax, var_04
  loc_00484B3D: mov eax, [eax+0000030Ch]
  loc_00484B43: add eax, 000000D8h
  loc_00484B48: mov edx, 00484C34h ; 'ftpsifrem'
  loc_00484B4D: call 00404638h
  loc_00484B52: xor eax, eax
decompile etiğimde ftp adresim bağlantı için kullandığım kullanıcı adım ve şifrem bunların görünmemesi için napmalıyım showmessage ile ekrana yazdığım mesajlarıda aynen olduğu şekilde gösteriyor. korunmanın yolu nedir?
Mücadele güzelleştirir!

Kullanıcı avatarı
comfort
Üye
Mesajlar: 214
Kayıt: 28 Ara 2004 06:37
Konum: İzmir
İletişim:

Re: Delphi Decompiler ile stringlerin gösterimi

Mesaj gönderen comfort » 24 Kas 2011 12:54

bu tip stringleri run time esnasında bir hesaplama yoluyla elde edersen görünmesini engelleyebilirsin.
Örnek:

Kod: Tümünü seç

var
Sifre:string;
begin
Sifre:='C';
Sifre:=Sifre+'o';
Sifre:=Sifre+'m';
Sifre:=Sifre+'f';
Sifre:=Sifre+'o';
Sifre:=Sifre+'r';
Sifre:=Sifre+'t';
//Sifre=Comfort
end;
Ama bazı programlarla değişkenlerin değeri de görülebiliyormuş diye duydum. Ayrıca wireshark ile programını dinlerlerse de şifreleri ele geçirirler.

mkysoft
Kıdemli Üye
Mesajlar: 2869
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: Delphi Decompiler ile stringlerin gösterimi

Mesaj gönderen mkysoft » 24 Kas 2011 07:51

şifreleri program içine gömmeyin. sonuçta ftp protokolüne düşeceğinizden bulunabilirler. ftp yerine php/asp gibi sayfalardan veri çekin.

Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 690
Kayıt: 28 Nis 2011 09:33
Konum: İstanbul

Re: Delphi Decompiler ile stringlerin gösterimi

Mesaj gönderen greenegitim » 24 Kas 2011 11:02

Decompile olayını zorlaştırmanın bir yolu yokmu yaptığım program bir metin belgesi indiriyor ve metin belgesindeki bilgilere göre işlemler yapıp sonucu tekrar metin belgesine yazıp upload etmesi gerekiyor DeDe programı ile delphide yaptığım programı tekrar dpr yapıp mesela button click olayındaki delphi kodlarını değilde assembly kodlarını görüyorum burayı bozamazmıyız bu assemblyi her şey gün gibi açık :D @comfort deniyeceğim yöntemini.
Mücadele güzelleştirir!

emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 09:05
Konum: izmir
İletişim:

Re: Delphi Decompiler ile stringlerin gösterimi

Mesaj gönderen emin_as » 25 Kas 2011 03:00

Google'dan "exe packer" olarak arama yap.
Bazıları decompile işlemini önlüyor, bazıları sadece sıkıştırıp, küçültüyor.

http://upx.sourceforge.net/
http://pecompact.com/pecompact.php
http://www.webtoolmaster.com/packer.htm

cdmesut
Üye
Mesajlar: 29
Kayıt: 16 Mar 2008 02:40

Re: Delphi Decompiler ile stringlerin gösterimi

Mesaj gönderen cdmesut » 27 Kas 2011 10:22

PSD Delphi String Protect
diye program var googlede aratırsan bulursun. tüm stringleri şifreliyor

Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 690
Kayıt: 28 Nis 2011 09:33
Konum: İstanbul

Re: Delphi Decompiler ile stringlerin gösterimi

Mesaj gönderen greenegitim » 28 Kas 2011 09:21

cdmesut yazdı:PSD Delphi String Protect
diye program var googlede aratırsan bulursun. tüm stringleri şifreliyor
unitlerlerde ki stringleri şifreliyor küçük projeler için güzel ama orta çaplı projeler için pekte iyi değil geri dönüp baktığımda kendim ne yazmışım bilemeyeceğim :D exe oluşturduktan sonra şifrelese yada component olarak forma yerleştirildiğinde yapsa bu işi daha iyi olurdu..
Mücadele güzelleştirir!

Cevapla