Yerel ödülleri exe ile birleştir


1

Birden fazla yerli ödevi bir exe'de birleştirmek mümkün mü?

Evet, .NET / Mono / Managed ödevleri ile kolayca yapılabileceğini biliyorum, ancak aynısını yerli olanlarla da yapabilir miyim? UPX'i buldum , ancak göründüğü gibi, dosyaları birleştirmek için değil, sadece paketleyebilir.

Yanıtlar:


1

Dinamik Bağlantı Kütüphaneleri harici olarak kullanılmak üzere tasarlanmıştır. Teorik olarak içerdikleri fonksiyonları yeniden paketlemek mümkün olsa da, gerçekçi bir şekilde yapabileceğiniz en iyi şey, her şeyi çalıştırılabilir ve DLL'lerini geçici bir klasöre çıkaracak, sonra çalıştırılabilir dosyayı çalıştıracak kendiliğinden açılan bir arşive paketlemektir.

Kaynak kodunu elde ederseniz, muhtemelen DLL'lerin harici olması yerine, DLL'leri gerektiren programla bağlantılı olabilecek statik bir kütüphaneye (.lib) yapılan en az değişiklikle derleyebilirsiniz.


2

Bir DLL dosyasından statik olarak içe aktarılabilen bir çalıştırılabilir dosyaınız olduğunu varsayarsak , "-impinj" komut satırı seçeneğini kullanarak pefrmdllembed aracını kullanabilirsiniz . İçe aktarma işlemlerini çözerken yerel DLL dosyalarını (aynı mimarideki) yerel EXE dosyalarına birleştirebilir.

Örnek: pefrmdllembed.exe -impinj myapp.exe ogg.dll myapp_injected.exe

Çoğu DLL ile çalışacaktır. Statik TLS gibi özel NT yükleyici özellikleri konusunda dikkatli olun; 64bit altında desteklenmiyor ve 32bit altında iyi sonuçlar üretmiyor olabilir.


Uygulama için teşekkür ederiz. Projem için harika çalışıyor. Maalesef UPX ile uyumlu değil. Ne de önce sıkıştırma, ne de dosyaları tek bir çalıştırılabilir dosyaya yerleştirdikten sonra sıkıştırma.
Julo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.