Jump to page: 1 2
Thread overview
Kaynak kod'a dosya gömülebilir mi?
Jul 01, 2013
agora
Jul 01, 2013
kaaninel
Jul 02, 2013
agora
Jul 02, 2013
agora
Jul 02, 2013
agora
Jul 03, 2013
agora
Jul 04, 2013
shurzan
Jul 04, 2013
agora
Jul 04, 2013
shurzan
Jul 05, 2013
shurzan
July 01, 2013

Selamlar daha once C# ile calismis arkadaslar belki bilirler. Resources kismina dosya ekleriz ve mesela cagirim sekli

byte[] dosyaOneClick = Properties.Resources.OneClick;

buna benzer olur. Sonra ben gomdugum dosyayi calistirabiliyorum resources'daki dosyayi. Bunu D dili ile yapma sansim var mi?

Aslinda olay Java programidir. Java ile bi program yazdim. Bunun kolaylikla orjinal kodlara donduruldugunu ogrendim. Sonra C# ile bi program yazip bu program'in Resources kismina ekledim. Exe dosyasini acinca Program.jar dosyasi aciliyor. Onun haricinde paketlenmis gibiler gomulu sekilde yani.

Ama bunu da Deobfuscator ile geri cevirebiliyorlar. Ben bu Exe'yi de gommek istiyorum. C++ ya da D dili olabilir :) Dagitimli bi program olacak. Ayrica kendi bilgisayarimdaki programlar icin de bu guvenligi saglamak istiyorum. Ozet olarak

D dilinde kaynaga dosya gomulebilir mi? Ve bu dosya kaynaktan cagirilabilir mi? Benim icin grafik arayuzunun onemi yok :) sonucta D dili ile yazilan programa tiklayinca icerideki Exe halindeki dosya calisacak. O dosya da kendisine gomulen jar dosyasini calistiracak :)

Tesekkurler

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 01, 2013

Kodu denemedim fakat dosyayı string olarak veya herhangi bir array içinde saklayıp sonradan istediğin türde cast edebilirsin.

string OneClick_Data = "Buraya Gömülecek Dosya Verisi";
byte[] dosyaOneClick = cast(byte[])OneClick_Data;

Bunu otomatik yapması için bir d fonksiyonu geliştirebilirsiniz.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 01, 2013

Tam olarak kast ettiği şey o değil arkadaşın.

Öncelikle şunu belirteyim ne yaparsanız yapın gerçekten anlayan birisi bu sistemi hackleyebilir. Ama şu anki yapmak istediğiniz sistemi programı hafızaya yükleyip hafızadan çalıştırarak gerçekleştirebilirsiniz. AutoIT ile uğraştığım zamanlarda benim de ihtiyacım olmuştu. Ama bildiğim kadarıyla D dilinde şu an bunu yapabilecek bir işlev yok yani bunu kendiniz yazmanız gerekecektir.

Özetle programı aslında harddisk üzerinden değil direk RAM üzerinden başlatmanız gerekmekte ve sanırım Ali hocam da bunu kast etti.

Zekeriya

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 01, 2013

Hoşgeldin agora! :)

Yapılamaması için bir neden göremiyorum. Sistem dilleri programı belirli bir adrese atlatıp oradan devam ettirebilirler. Ayrıntılarını bilmiyorum.

Yine de bunun hiçbir zaman tam çözüm olmadığını hatırlatmak isterim. Çok isteniyorsa her programın tam işleyişi incelenebilir ve ne yaptığı görülebilir. Güvenlik konusunda uzman olmadığım için o konuda da yardımcı olamıyorum. :/

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 02, 2013

@acehreli

Hosbulduk :)

iste Ali hocam acaba bunun D ile yapilisi nasildir merak ediyorum. Hic bir zaman tam guvenlik olmadi ise bu cok kotu :(

@kaaninel bu sekilde resource'a gommus olunur degil mi dosya?

Normalde biz yazdigimiz programlarda kutuphaneleri de DLL, .PYC, .H, .A olarak ayri bi klasore atariz diyelim ben programi yazmayi bitince ayri bi klasorde olmayacak.

Program.exe tek calisacak kaynagindaki kodu calistiracak :)

@zekeriyadurmus hocam bunun icin ornek bi makale var mi? Bu islevi yazmak icin?

Pogramda 7-8 tane kontrol mekanizmasi var :) Ama guvenligin cok olusu her zaman iyidir.

Son olarak D ile bulundugumuz makinenin islemci, cpu, hdd, mac gibi bilgilerine erisme sansimiz var mi? cpuz gibi bi program dusunulebilir.

Ben ayrica packer da kullaniyorum :)

Bi egitim seti hazirladigimizi dusunelim :) İllegal olarak kullanilmasini istemiyoruz diyelim :)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 02, 2013

Bunun yapilisinin zor oldugunu gordum :)

std.process'i cagirarak

system("Program.exe Ac");

seklinde bi komut calistirdim. Bu komut Program.Exe'ye "Ac" gibi bi parametre yolluyor. Ve program aciliyor.

Program.exe'nin yani C# tarafli yazilan programin tek basina acilamamasi icin de args.Contains kontrolu yaptim eger Ac gibi bi parametre icermeden cagirilirsa program acilmayacak :)

Tabii bu sefer de konsol ekrani arkaplanda calisiyor. bunu da hemen su sekilde kapatiyorum.

system("taskkill /im DProjesi.exe");

Bu da D kodu ile olusturulan Exe'yi kapatiyor gorev yoneticisinden. Fakat diger program acik kaliyor yani istedigim gibi bise oluyor :)

C++ icin soyle bi kontrol vardi bunu D icin uygulama sansimiz var midir?

HWND hWnd = GetConsoleWindow();
ShowWindow( hWnd, SW_HIDE );

Bu kod acilan konsol penceresini sadece gizliyor.

Tesekkurler :)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 02, 2013

Ali Hocam oncelikle tesekkur ederim. Yabanci forumdaki cevabi anlamadim diye bise yazamadim :)

aslinda soyle bir sey dusunuyorum ama bu da kirilir mi bilgim yok.

Ben D ile bu donanim bilgilerini alayim. Bunlar bilindigi gibi Unique ID'ler tasiyorlar. Yani programi verdigim bilgisayarlara oncelikle "Bunu calistirin ben bilgileri otomatik alirim" gibi bi sart kosarim ve sonradan lisanslamayi o pc icin yapabilirim. Ayrica o program'in USB bellege kopyalanmasini engelleyebilirim. Dediginiz gibi sadece DVD ile calistirabilirim. Mesela o olay da soyle olabilir.

Registry'e bir deger atarim ve bir de windows servis yazarim. Bu program eger takili bi bellege gonderilmeye calisilirsa hata versin gibi. Upload islemlerini zaten engellemenin bi yolu yok. Ama belki en son guvenlik olayi cpuid vs. olabilir. Onu da soyle yapariz.

Ilk kullanimda "MEVCUT CPUID: 12915EF00F319. GEÇERSIZ CPUID" diyip programi aninda silmek icin komut turetebilirim bu da guvenlik anlaminda bi mantik saglayabilir mi?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 02, 2013

Alıntı (agora):

>

bunun D ile yapilisi nasildir merak ediyorum

İngilizce forumda gösterilen yöntemlerden birisi, alt programı diske yazmak ve oradan çalıştırmaktı. Teoride çok basit:

import std.stdio;

alias CmainİşlevTürü = int function();

void main()
{
   string altProgram = import("alt_program");

   auto c_main = cast(CmainİşlevTürü)altProgram.ptr;

   c_main();
}

Ama tabii program göçer çünkü c_main alt programın giriş noktasına değil, en başına işaret etmektedir. '(altProgram.ptr + bir_fark)' diye hesaplamak gerek ama ben o farkın nasıl bulunduğunu bilmiyorum.

Ayrıca belki Java programları için daha kolaydır ama alt_program derlenmiş bir program olsa gerek duyduğu çalışma ortamının (C runtime, C++ runtime, vs.) da ilklenmesi gerekir.

Sonuçta system() gibi çözümler çok daha kolay.

Alıntı:

>

Hic bir zaman tam guvenlik olmadi ise bu cok kotu :(

"Güvenlik" çok genel bir kelime ama anlaşılan sen kodlarını korumaya çalışıyorsun. Güvenliği kırmaya çalışan birisi olarak düşün ve ne kadar kolay veya zor olduğuna öyle karar ver.

Örneğin, alt programın kodları yukarıdaki programın içinde gömülü olarak duruyor.

Diğer öneri, alt_program'ı diske yazmak ve oradan system() vs. ile başlatmaktı. Eh o zaman da ana program göçse, durdurulsa, vs. alt_program'a erişilir.

Alıntı:

>

makinenin islemci, cpu, hdd, mac gibi bilgilerine erisme sansimiz var mi?

std.system ve core.cpuid modülleri kullanışlı olabilir:

http://dlang.org/phobos/std_system.html

http://dlang.org/phobos/core_cpuid.html

Ayrıca D programları C kütüphanelerini doğrudan kullanabiliyorlar. Belki kullanışlı bir C kütüphanesi de vardır...

Alıntı:

>

Bi egitim seti hazirladigimizi dusunelim :) İllegal olarak kullanilmasini istemiyoruz diyelim :)

Bunu kimse istemez. Tam kırılmazlık sağlayamazsın. Bir noktada yeterli olduğuna karar verip zamanını başka tarafa yönlendirmek daha yararlı olur. Ayrıca programın tek başına çalışmamasını sağlamak gibi yöntemler de düşünülebilir. Örneğin, program internet'e bağlanmayı şart koşabilir ve kendisini bir siteden denetleyebilir. Tabii bunlar da kırılır...

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 02, 2013

Mantıklı. shurzan C++ programı için benzer çözümler getirmişti. Özelden mesaj atayım; bakalım bu konuda eklemek istediği şeyler var mı.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 03, 2013

Hocam sagolun ozel mesaj bekliyorum eger attiysaniz goremiyorum da :)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

« First   ‹ Prev
1 2