Çözüldü C# WinUI 3 ile Dynamic proje nasıl yapılır?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
26 Temmuz 2023
Mesajlar
4.558
Makaleler
25
Çözümler
169
Yer
Başkent
Daha fazla  
Sistem Özellikleri
HP Victus 16 S1035NT
Cinsiyet
Erkek
Meslek
Yazılımcı/Yayıncı
Bu gerçekten çok karmaşık bir iş. Bu birden fazla yöntemle mümkün olabileceğini gördüm ancak hangisini seçmeliyim ve nasıl yapabileceğim hakkında pek bir bilgim şu an yok. İni. JSON. Text dosyalarında XAML ve CS kodlarını tutup dinamik olarak .exe çalışırken kullanmasını buldum fakat ne kadar sağlıklı veya güvenli bilmiyorum, sadece doğru yöntem bu değilmiş gibi hissediyorum daha iyi ve profesyoneli varmış gibi. Kafamda ufak bir düşünce var:
Bir WinUI 3 uygulaması düşününün ve bu uygulamaya sonradan kullanıcı isteğine bağlı olarak bir page yüklenecek ama bu .exe'nin içinde gömülü olacak. Yani önceden .exe farklıydı sonra kullanıcı istediği xaml ve CS dosyaları eklendi ortaya yeni .exe çıktı bu mümkün mü? Yani bir tane. İni. JSON veya. Text dosyasının içindeki kodları dinamik olarak .exe sürekli çekmek yerine bir defa alacak ve tamamen artık .exenin içinde olacak bu mümkün mü? Kendi kendini derleme gibi bir şey olacak .dll dosyaları gömeceğiz yani.

Nasıl desem bilemedim, umarım anlatabilmişimdir.

(Ekleme)
Kodun düzgün bir şekilde programa eklenebilmesini istemekle birlikte, kodu bulundurduğumuz dosyanın içini açarak bütün kodun ifşalanmasını da istemiyorum. %100 güvenlikli olsun istemiyorum ama %100 de güvenliksiz olmasını da istemiyorum. Mecburen dış dosyadan dinamik olarak veri çekeceksek eğer.
 
Son düzenleyen: Moderatör:
Çözüm
O zaman sadece gereksiz eklentileri olduğu gibi .json dosyasından çekerim (C# ve XAML de olabilir. Veya öneriniz varsa söyleyebilirsiniz). Önemli olanları da projenin içinde varsayılan olarak getirtirim.
Şuan hatırlamıyorum ama derlenmiş XAML dosyalarını kullanabilirsin. İstersen araştır eğer runtime olarak kullanılabiliyorsa optimizasyon ve güvenlik açısından bir artı olur.

O zaman sadece gereksiz eklentileri olduğu gibi .json dosyasından çekerim
Zaten diğer uygulamalar bir dosyayı almak için farklı bir yöntem kullanmıyor eğer bir resim alacaksan illa resim şeklinde alacaksın başka yolu yok. Bahsettiğimiz şey sadece derlenen kod için geçerliydi. 3D objeler de dosya şeklinde olmak zorunda mesela.

Her şeyi hazırlar zip dosyası şeklinde sıkıştırırsın uzantısını da .wuzip şeklinde yaparsın . Yada
yine struct mantığını kullanarak dosyaları sıkıştıracak bir yöntem geliştirip kendi sıkıştırılmış dosyanla saklarsın ama yine "ufak çaplı" kategorisine girmez.

Aslında sonda oluşan zip dosyası üzerinde basit bir oynama yapıp kod içinde onu geri çekersen de kolay ve bir tık daha uğraştırıcı olur (görmek isteyen için)
C# açık kaynak koddan farksız. Güzel bir dil ama o açıdan zayıf.
Bildiğimden farklı bir şey duyarım da sevinirim sanmıştım. Maalesef ki böyle kodların çalınacağını duyunca üzülüyorum. Ama bir taraftan da koskoca şirketler engelleyemiyor ben nasıl engellerim diyorum. Bazıları tamamen açık kaynak. Ben yapsam başkası da kullanır benim diye geçinir falan. İnsan kafayı yemiyor değil

Peki madem kendi uzantısını yapabilir miyim? örneğin:
page.dnm -> deneme.exe çalıştırılabilir dosya ve page'in kodlarını cust mu eder ne yapar bilmiyorum ama alır ve kullanır.
Bu dediğim de tuzlamaktan ve kendime dert açmaktan başka bir şey değilmiş gibi. En sonunda hiç uğraşmayıp bütün kodu bir metin dosyasında kaydedip ordan mı çeksem acaba diyorum. Ya da Critical olaylarıyla ve Security olaylarıyla üzerine izin bassam ve ayarlar değişince mavi ekran verdirsem mi bu sefer de Safe Mode'dan çalınır.

Sizin düşünceniz neler? sizce nasıl bir adım mantıklı olur?
Bu yaptığı özellikleri kimse ekleyip silemesin mi diye de düşünüyorum bu sefer de Çok fazla boyutlu olacak diye korkuyorum.
 
Yapacak bir şey yok zaten bilgisayarda çalışan her şey çalınabilir sadece zorluğu artabilir o kadar.

Online oyunların Anti Cheat sistemi gibi çekirdek seviyesinde çalışacak bir driver yazsan bile geçilir. Gerekirse karşı olarak çekirdekteki mavi erkan veren metodu bile silebilirler zor değil.

Sizin düşünceniz neler? sizce nasıl bir adım mantıklı olur?
Bu yaptığı özellikleri kimse ekleyip silemesin mi diye de düşünüyorum bu sefer de Çok fazla boyutlu olacak diye korkuyorum.
Benim düşüncem, eğer eklentiler C# ile çok fazla iç içe geçmeyecekse kod kısmını C++ ile yazıp C#'tan çağırmak. Onun dışında diğer insanlar gibi tersine mühendislik olayını çok fazla kafaya takmadan sadece şifreleyen bir sistem yaparsın uzantıyı da istediğin bir şeyle değiştirirsin.
 
Cevapların için teşekkür ederim.
C# ile çok fazla iç içe geçmeyecekse
Değişebilir. Şuanlık emin değilim.

O zaman sadece gereksiz eklentileri olduğu gibi .json dosyasından çekerim (C# ve XAML de olabilir. Veya öneriniz varsa söyleyebilirsiniz). Önemli olanları da projenin içinde varsayılan olarak getirtirim.
 
O zaman sadece gereksiz eklentileri olduğu gibi .json dosyasından çekerim (C# ve XAML de olabilir. Veya öneriniz varsa söyleyebilirsiniz). Önemli olanları da projenin içinde varsayılan olarak getirtirim.
Şuan hatırlamıyorum ama derlenmiş XAML dosyalarını kullanabilirsin. İstersen araştır eğer runtime olarak kullanılabiliyorsa optimizasyon ve güvenlik açısından bir artı olur.

O zaman sadece gereksiz eklentileri olduğu gibi .json dosyasından çekerim
Zaten diğer uygulamalar bir dosyayı almak için farklı bir yöntem kullanmıyor eğer bir resim alacaksan illa resim şeklinde alacaksın başka yolu yok. Bahsettiğimiz şey sadece derlenen kod için geçerliydi. 3D objeler de dosya şeklinde olmak zorunda mesela.

Her şeyi hazırlar zip dosyası şeklinde sıkıştırırsın uzantısını da .wuzip şeklinde yaparsın . Yada
yine struct mantığını kullanarak dosyaları sıkıştıracak bir yöntem geliştirip kendi sıkıştırılmış dosyanla saklarsın ama yine "ufak çaplı" kategorisine girmez.

Aslında sonda oluşan zip dosyası üzerinde basit bir oynama yapıp kod içinde onu geri çekersen de kolay ve bir tık daha uğraştırıcı olur (görmek isteyen için)
 
Çözüm
Aslında sonda oluşan zip dosyası üzerinde basit bir oynama yapıp kod içinde onu geri çekersen de kolay ve bir tık daha uğraştırıcı olur (görmek isteyen için)
Bu çok mantıklı geldi. Teşekkür ederim. Ne çok uğraştırıcı ne de güvenliksiz. Sonuç olarak .zip'i de çözebilmesi için projeye tersine mühendislik yapmalı. Böylece o zip dosyasının projeden aman aman farkı olmayacak İyi sosyaller ve iyi günler dilerim.
 
Eğer birazcık uğraşmaktan zarar gelmez diyorsan zip dosyasının hiç bir şekilde açılamaması için çok kritik bir kaç bilgiyi değiştirebilirsin. Şunlara bak eğer karmaşık geldiyse boş ver. Çünkü onlar da C struct şekilnde

 
C struct'u öğrenmeye çalışacağım. Teşekkür ederim tavsiyeleriniz için
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…