InggrisPerancisSpanyol

favorit OnWorks

upx-ucl - Online di Cloud

Jalankan upx-ucl di penyedia hosting gratis OnWorks melalui Ubuntu Online, Fedora Online, emulator online Windows, atau emulator online MAC OS

Ini adalah perintah upx-ucl yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

PROGRAM:

NAMA


upx - kompres atau perluas file yang dapat dieksekusi

RINGKASAN


upx [ Command ] [ Pilihan ] nama file...

ABSTRAK


Paket Ultimate untuk eXecutable
Hak Cipta (c) 1996-2013 Markus Oberhumer, Laszlo Molnar & John Reiser
http://upx.sourceforge.net

UPX adalah executable packer portabel, dapat diperpanjang, berkinerja tinggi untuk beberapa jenis
format yang dapat dieksekusi. Ini mencapai rasio kompresi yang sangat baik dan menawarkan *sangat* cepat
dekompresi. Eksekusi Anda tidak mengalami kelebihan memori atau kekurangan lainnya untuk sebagian besar
format yang didukung, karena dekompresi di tempat.

Meskipun Anda dapat menggunakan UPX bebas untuk executable non-komersial dan komersial (untuk
detail lihat file /usr/share/doc/upx-ucl/copyright), kami akan sangat menghargai jika Anda
kredit UPX dan diri kita sendiri dalam dokumentasi, mungkin termasuk referensi ke UPX
halaman rumah. Terima kasih.

[ Menggunakan UPX dalam aplikasi non-OpenSource tanpa kredit yang tepat dianggap tidak
benar secara politis ;-)]

DISCLAIMER


UPX datang dengan BENAR-BENAR TIDAK ADA GARANSI; untuk detailnya lihat file
/usr/share/doc/upx-ucl/copyright.

Ini adalah rilis kualitas produksi pertama, dan kami berencana bahwa rilis 1.xx mendatang akan
kompatibel dengan versi ini.

Silakan laporkan semua masalah atau saran kepada penulis. Terima kasih.

DESKRIPSI


UPX adalah executable packer serbaguna dengan fitur berikut:

- rasio kompresi yang sangat baik: kompres lebih baik daripada zip/gzip,
gunakan UPX untuk mengurangi ukuran distribusi Anda!

- dekompresi sangat cepat: sekitar 10 MiB/detik pada Pentium 133 kuno,
sekitar 200 MiB/detik pada Athlon XP 2000+.

- tidak ada overhead memori untuk executable terkompresi Anda untuk sebagian besar
format yang didukung

- aman: Anda dapat membuat daftar, menguji, dan membongkar executable Anda
Juga, checksum dari file terkompresi dan tidak terkompresi adalah
dipertahankan secara internal.

- universal: UPX dapat mengemas sejumlah format yang dapat dieksekusi:
* atari/tos
* bvmlinuz/386 [kernel Linux yang dapat di-boot]
*djgpp2/coff
* dos/com
*dos/exe
* dos/sys
*linux/386
*linux/elf386
*linux/sh386
*ps1/exe
*rtm32/pe
*tmt/adam
* vmlinuz/386 [kernel Linux yang dapat di-boot]
*vmlinux/386
* watcom/le (mendukung DOS4G, PMODE/W, DOS32a dan CauseWay)
* win32/pe (exe dan dll)
* arm/pe (exe dan dll)
*linux/elfamd64
*linux/elfppc32
* mach/elfppc32

- portabel: UPX ditulis dalam C++ endian-netral portabel

- dapat diperpanjang: karena tata letak kelasnya sangat mudah untuk didukung
format baru yang dapat dieksekusi atau tambahkan algoritme kompresi baru

- gratis: UPX dapat didistribusikan dan digunakan secara bebas. Dan dari versi 0.99
kode sumber lengkap UPX dirilis di bawah GNU General Public
Lisensi (GPL) !

Anda mungkin mengerti sekarang mengapa kami menelepon UPX yang "terakhir" pengepak yang dapat dieksekusi.

PERINTAH


Kompres
Ini adalah operasi default, mis. upx file anda.exe akan memampatkan file yang ditentukan pada
baris perintah.

Dekompresi
Semua UPX format file yang didukung dapat dibongkar menggunakan -d beralih, mis. upx -d
file anda.exe akan membuka kompresi file yang baru saja Anda kompres.

uji
-t perintah menguji integritas data terkompresi dan tidak terkompresi, mis. upx -t
file anda.exe periksa apakah file Anda dapat didekompresi dengan aman. Perhatikan, bahwa perintah ini
tidak memeriksa seluruh file, hanya bagian yang akan dikompresi selama program
eksekusi. Ini berarti Anda tidak boleh menggunakan perintah ini sebagai ganti pemeriksa virus.

Daftar
-l perintah mencetak beberapa informasi tentang file terkompresi yang ditentukan pada
baris perintah sebagai parameter, misalnya upx -l file anda.exe menunjukkan terkompresi / tidak terkompresi
ukuran dan rasio kompresi file anda.exe.

PILIHAN


-q: diam, tekan peringatan

-q -q (Atau -qq): sangat tenang, menekan kesalahan

-q -q -q (Atau -qq): tidak menghasilkan output sama sekali

--membantu: mencetak bantuan

--Versi: kapan: cetak versi UPX

--akurat: saat mengompresi, perlu untuk bisa mendapatkan file byte-identik setelah
dekompresi dengan opsi -d. [CATATAN: ini sedang dalam proses dan tidak didukung untuk semua
format belum. Jika Anda peduli, sebagai solusinya, Anda dapat mengompres dan kemudian mendekompresi Anda
memprogram pertama kali - setiap langkah kompres-dekompresi lebih lanjut akan menghasilkan byte-
hasil yang identik dibandingkan dengan versi dekompresi pertama.]

[ ...akan ditulis... - ketik `upx --membantu' untuk sekarang ]

KOMPRESI TINGKAT & TUNING


UPX menawarkan sepuluh tingkat kompresi yang berbeda dari -1 untuk -9, dan --terbaik. Default
tingkat kompresi adalah -8 untuk file yang lebih kecil dari 512 KiB, dan -7 jika tidak.

· Tingkat kompresi 1, 2 dan 3 cukup cepat.

· Tingkat kompresi 4, 5 dan 6 mencapai kinerja waktu/rasio yang baik.

· Tingkat kompresi 7, 8 dan 9 mendukung rasio kompresi daripada kecepatan.

· Tingkat kompresi --terbaik mungkin memakan waktu lama.

Perhatikan bahwa tingkat kompresi --terbaik bisa agak lambat untuk file besar, tetapi Anda
pasti harus menggunakannya saat merilis versi final dari program Anda.

Info cepat untuk mencapai rasio kompresi terbaik:

· Mencoba upx --kasar file saya.exe atau bahkan upx --sangat kasar file saya.exe.

· Coba jika --hamparan=strip bekerja.

· Untuk program win32/pe ada --strip-relocs=0. Lihat catatan di bawah.

HAMPARAN PENANGANAN PILIHAN


Info: Sebuah "overlay" berarti data tambahan yang dilampirkan setelah akhir logis dari sebuah executable,
dan sering kali berisi data khusus aplikasi (ini adalah praktik umum untuk menghindari
file data tambahan, meskipun akan lebih baik menggunakan bagian sumber daya).

UPX menangani overlay seperti yang dilakukan oleh banyak packer yang dapat dieksekusi lainnya: itu hanya menyalin overlay
setelah gambar terkompresi. Ini berfungsi dengan beberapa file, tetapi tidak berfungsi dengan yang lain,
tergantung pada bagaimana aplikasi sebenarnya mengakses data overlay ini.

--overlay=copy Salin semua data tambahan yang dilampirkan ke file. [BAWAAN]

--overlay=strip Hapus overlay apa pun dari program alih-alih
menyalinnya. Berhati-hatilah, ini dapat membuat terkompresi
program macet atau tidak dapat digunakan.

--overlay=skip Menolak untuk mengompresi program apa pun yang memiliki overlay.

LINGKUNGAN


Variabel lingkungan UPX dapat menampung satu set opsi default untuk UPX. Pilihan ini adalah
ditafsirkan terlebih dahulu dan dapat ditimpa oleh parameter baris perintah eksplisit. Untuk
contoh:

untuk DOS/Windows: atur UPX=-9 --compress-icons#0
untuk sh/ksh/zsh: UPX="-9 --compress-icons=0"; ekspor UPX
untuk csh/tcsh: setenv UPX "-9 --compress-icons=0"

Di bawah DOS/Windows Anda harus menggunakan '#' daripada '=' saat mengatur variabel lingkungan
karena batasan COMMAND.COM.

Tidak semua opsi valid dalam variabel lingkungan - UPX akan memberitahumu.

Anda dapat secara eksplisit menggunakan --tidak-env pilihan untuk mengabaikan variabel lingkungan.

CATATAN UNTUK THE DIDUKUNG DAPAT DILAKSANAKAN FORMAT


CATATAN UNTUK ATARI/TOS
Ini adalah format yang dapat dieksekusi yang digunakan oleh Atari ST/TT, personal berbasis Motorola 68000
komputer yang populer di akhir tahun 80-an. Dukungan format ini hanya karena
perasaan nostalgia salah satu penulis dan tidak memiliki tujuan praktis :-). Lihat
http://www.freemint.de untuk info lebih lanjut.

Program yang dikemas akan menjadi byte-identik dengan aslinya setelah tidak dikompresi. Semua debug
informasi akan dilucuti, meskipun.

Opsi tambahan tersedia untuk format yang dapat dieksekusi ini:

--all-methods Kompres program beberapa kali, menggunakan semua
metode kompresi yang tersedia. Ini dapat meningkatkan
rasio kompresi dalam beberapa kasus, tetapi biasanya
metode default tetap memberikan hasil terbaik.

CATATAN UNTUK BVMLINUZ/I386
Sama seperti vmlinuz/i386.

CATATAN UNTUK DOS/COM
Tentunya UPX tidak akan bekerja dengan executable yang ingin membaca data dari diri mereka sendiri (seperti
beberapa utilitas baris perintah yang dikirimkan bersama Win95/98/ME).

Program terkompresi hanya berfungsi pada 286+.

Program yang dikemas akan menjadi byte-identik dengan aslinya setelah tidak dikompresi.

Ukuran maksimum yang tidak dikompresi: ~65100 byte.

Opsi tambahan tersedia untuk format yang dapat dieksekusi ini:

--8086 Buat executable yang bekerja pada CPU 8086 apa pun.

--all-methods Kompres program beberapa kali, menggunakan semua
metode kompresi yang tersedia. Ini dapat meningkatkan
rasio kompresi dalam beberapa kasus, tetapi biasanya
metode default tetap memberikan hasil terbaik.

--all-filters Kompres program beberapa kali, menggunakan all
filter pra-pemrosesan yang tersedia. Ini dapat meningkatkan
rasio kompresi dalam beberapa kasus, tetapi biasanya
filter default tetap memberikan hasil terbaik.

CATATAN UNTUK DOS/EXE
dos/exe adalah singkatan dari semua executable DOS 16-bit "normal".

Tentunya UPX tidak akan bekerja dengan executable yang ingin membaca data dari diri mereka sendiri (seperti
beberapa utilitas baris perintah yang dikirimkan bersama Win95/98/ME).

Program terkompresi hanya berfungsi pada 286+.

Opsi tambahan tersedia untuk format yang dapat dieksekusi ini:

--8086 Buat executable yang bekerja pada CPU 8086 apa pun.

--no-reloc Jangan gunakan catatan relokasi di header exe.

--all-methods Kompres program beberapa kali, menggunakan semua
metode kompresi yang tersedia. Ini dapat meningkatkan
rasio kompresi dalam beberapa kasus, tetapi biasanya
metode default tetap memberikan hasil terbaik.

CATATAN UNTUK DOS/SYS
Program terkompresi hanya berfungsi pada 286+.

Program yang dikemas akan menjadi byte-identik dengan aslinya setelah tidak dikompresi.

Ukuran maksimum yang tidak dikompresi: ~65350 byte.

Opsi tambahan tersedia untuk format yang dapat dieksekusi ini:

--8086 Buat executable yang bekerja pada CPU 8086 apa pun.

--all-methods Kompres program beberapa kali, menggunakan semua
metode kompresi yang tersedia. Ini dapat meningkatkan
rasio kompresi dalam beberapa kasus, tetapi biasanya
metode default tetap memberikan hasil terbaik.

--all-filters Kompres program beberapa kali, menggunakan all
filter pra-pemrosesan yang tersedia. Ini dapat meningkatkan
rasio kompresi dalam beberapa kasus, tetapi biasanya
filter default tetap memberikan hasil terbaik.

CATATAN UNTUK DJGPP2/COFF
Pertama-tama, disarankan untuk menggunakan UPX *dari pada menelanjangi. strip memiliki yang sangat buruk
kebiasaan mengganti rintisan Anda dengan versinya sendiri (ketinggalan zaman). Selain itu UPX mengoreksi
bug/fitur di strip v2.8.x: itu akan memperbaiki penyelarasan rintisan 4 KiB.

UPX termasuk fungsionalitas penuh stubify. Ini berarti secara otomatis akan stubify
file COFF Anda. Gunakan opsi --peti mati untuk menonaktifkan fungsi ini (lihat di bawah).

UPX secara otomatis menangani file paket Allegro.

Format DLM (ekstensi perpustakaan bersama yang agak eksotis) tidak didukung.

Program yang dikemas akan menjadi byte-identik dengan aslinya setelah tidak dikompresi. Semua debug
informasi dan sampah yang tertinggal akan dilucuti.

Opsi tambahan tersedia untuk format yang dapat dieksekusi ini:

--coff Menghasilkan output COFF sebagai ganti EXE. Secara default
UPX menyimpan rintisan Anda saat ini.

--all-methods Kompres program beberapa kali, menggunakan semua
metode kompresi yang tersedia. Ini dapat meningkatkan
rasio kompresi dalam beberapa kasus, tetapi biasanya
metode default tetap memberikan hasil terbaik.

--all-filters Kompres program beberapa kali, menggunakan all
filter pra-pemrosesan yang tersedia. Ini dapat meningkatkan
rasio kompresi dalam beberapa kasus, tetapi biasanya
filter default tetap memberikan hasil terbaik.

CATATAN UNTUK LINUX [umum]
Pengantar

Dukungan Linux/386 di UPX terdiri dari 3 format executable yang berbeda,
satu dioptimalkan untuk executable ELF ("linux/elf386"), satu dioptimalkan
untuk skrip shell ("linux/sh386"), dan satu format umum
("linux/386").

Kami akan mulai dengan diskusi umum terlebih dahulu, tapi tolong
baca juga dokumen yang relevan untuk masing-masing format individual.

Juga, ada dukungan khusus untuk kernel yang dapat di-boot - lihat
deskripsi format vmlinuz/386.

Ikhtisar pengguna umum

Menjalankan program terkompresi yang dapat dieksekusi memperdagangkan lebih sedikit ruang pada a
Media penyimpanan ``permanen'' (seperti hard disk, floppy disk,
CD-ROM, memori flash, EPROM, dll.) untuk lebih banyak ruang dalam satu atau lebih
Media penyimpanan ``sementara'' (seperti RAM, ruang swap, / Tmp, Dll).
Menjalankan executable terkompresi juga memerlukan beberapa CPU tambahan
siklus untuk menghasilkan executable terkompresi di tempat pertama,
dan untuk dekompresi pada setiap doa.

Berapa banyak ruang yang diperdagangkan? Itu tergantung pada yang dapat dieksekusi, tetapi banyak
program menghemat 30% hingga 50% dari ruang disk permanen. Berapa banyak CPU
overhead ada? Sekali lagi, itu tergantung pada yang dapat dieksekusi, tapi
kecepatan dekompresi umumnya setidaknya banyak megabyte per detik,
dan seringkali dibatasi oleh kecepatan disk yang mendasarinya
atau I/O jaringan.

Tergantung pada statistik penggunaan dan akses, dan kerabat
kecepatan CPU, RAM, ruang swap, / Tmp, dan penyimpanan sistem file, lalu
menjalankan dan menjalankan executable terkompresi bisa lebih cepat daripada
langsung menjalankan program terkompresi yang sesuai.
Sistem operasi mungkin melakukan operasi I/O yang lebih murah
untuk memanggil program terkompresi. Paging ke atau dari ruang swap
or / Tmp mungkin lebih cepat daripada paging dari sistem file umum.
``Program berukuran sedang'' yang mengakses sekitar 1/3 hingga 1/2 darinya
byte program yang tersimpan dapat bekerja dengan sangat baik dengan kompresi.
Program-program kecil cenderung tidak memberikan manfaat yang sebesar-besarnya karena mutlak
tabungan lebih sedikit. Program besar cenderung tidak menguntungkan secara proporsional
karena setiap pemanggilan hanya dapat menggunakan sebagian kecil dari program,
namun UPX mendekompresi seluruh program sebelum menjalankannya.
Namun dalam lingkungan di mana penyimpanan disk atau memori flash terbatas,
maka kompresi mungkin menang.

Saat ini, executable yang dikompresi oleh UPX tidak berbagi RAM saat runtime
seperti yang dilakukan oleh executable yang dipetakan dari sistem file. Sebagai
hasil, jika program yang sama dijalankan secara bersamaan oleh lebih dari satu
proses, maka menggunakan versi terkompresi akan membutuhkan lebih banyak RAM dan/atau
bertukar ruang. Jadi, program shell (bash, csh, dll.) dan ``make''
mungkin bukan kandidat yang baik untuk kompresi.

UPX mengenali tiga format yang dapat dieksekusi untuk Linux: Linux/elf386,
Linux/sh386, dan Linux/386. Linux/386 adalah format paling umum;
itu mengakomodasi file apa pun yang dapat dieksekusi. Saat runtime, UPX
rintisan dekompresi dibuat kembali di / Tmp salinan dari file asli,
dan kemudian salinannya (kembali) dieksekusi dengan argumen yang sama.
Eksekusi biner ELF lebih menyukai format Linux/elf386 secara default,
karena UPX mendekompresnya langsung ke RAM, hanya menggunakan satu
exec, tidak menggunakan ruang di / Tmp, dan tidak menggunakan /proc.
Skrip shell di mana shell yang mendasarinya menerima argumen ``-c''
dapat menggunakan format Linux/sh386. UPX mendekompresi skrip shell
ke memori rendah, lalu memetakan shell dan melewati seluruh teks dari
skrip sebagai argumen dengan awalan ``-c''.

Manfaat umum:

- UPX dapat mengompres semua executable, baik itu AOUT, ELF, libc4, libc5,
libc6, skrip Shell/Perl/Python/..., Java mandiri .class
binari, atau apa pun ...
Semua skrip dan program akan bekerja seperti sebelumnya.

- Program terkompresi sepenuhnya mandiri. Tidak perlu untuk
setiap program eksternal.

- UPX membuat program asli Anda tidak tersentuh. Ini berarti bahwa
setelah dekompresi Anda akan memiliki versi byte-identik,
dan Anda dapat menggunakan UPX sebagai kompresor file seperti gzip.
[Perhatikan bahwa UPX memelihara checksum file secara internal,
jadi ini memang alternatif yang dapat diandalkan. ]

- Karena rintisan hanya menggunakan syscalls dan tidak ditautkan ke libc, itu
harus dijalankan di bawah konfigurasi Linux apa pun yang dapat menjalankan ELF
biner.

- Untuk alasan yang sama, executable terkompresi harus dijalankan di bawah
FreeBSD dan sistem lain yang dapat menjalankan binari Linux.
[Silakan kirim umpan balik tentang topik ini]

Kekurangan umum:

- Tidak disarankan untuk mengompres program yang biasanya memiliki banyak
instance berjalan (seperti `sh' atau `make') karena segmen umum dari
program terkompresi tidak akan dibagikan lagi di antara yang berbeda
proses.

- `ldd' dan `size' tidak akan menampilkan sesuatu yang berguna karena semuanya
lihat adalah rintisan yang terhubung secara statis. Sejak versi 0.82 bagian
header dilucuti dari rintisan UPX dan `ukuran' tidak merata
mengenali format file. File patch/patch-elfcode.h memiliki:
patch untuk memperbaiki bug ini dalam `size' dan program lain yang menggunakan GNU BFD.

Catatan umum:

- Karena UPX membiarkan program asli Anda tidak tersentuh, itu menguntungkan
untuk melepaskannya sebelum kompresi.

- Jika Anda mengompresi skrip, Anda akan kehilangan independensi platform -
ini bisa menjadi masalah jika Anda menggunakan disk yang dipasang NFS.

- Kompresi program suid, guid, dan sticky-bit ditolak
karena kemungkinan implikasi keamanan.

- Untuk alasan yang sama, tidak ada gunanya membuat kompresi apa pun
perintah program.

- Jelas UPX tidak akan bekerja dengan executable yang ingin membaca data
dari diri mereka sendiri. Misalnya, ini mungkin menjadi masalah untuk skrip Perl
yang mengakses baris __DATA__ mereka.

- Jika terjadi kesalahan internal, rintisan akan dibatalkan dengan kode keluar 127.
Alasan umum untuk hal ini terjadi adalah bahwa program tersebut entah bagaimana
telah dimodifikasi setelah kompresi.
Menjalankan `strace -o strace.log compress_file' akan memberi tahu Anda lebih banyak.

CATATAN UNTUK LINUX/ELF386
Silakan baca deskripsi umum Linux terlebih dahulu.

Format linux/elf386 didekompresi langsung ke RAM, hanya menggunakan satu exec, tidak menggunakan
ruang dalam / Tmp, dan tidak menggunakan /proc.

Linux/elf386 dipilih secara otomatis untuk executable ELF Linux.

Program yang dikemas akan menjadi byte-identik dengan aslinya setelah tidak dikompresi.

Bagaimana itu bekerja:

Untuk executable ELF, UPX dekompresi langsung ke memori, simulasi
pemetaan yang digunakan kernel sistem operasi selama exec(),
termasuk penerjemah program PT_INTERP (jika ada).
brk() diatur oleh segmen PT_LOAD khusus dalam file terkompresi
dapat dieksekusi itu sendiri. UPX kemudian membersihkan tumpukan kecuali untuk
argumen, variabel lingkungan, dan entri Elf_auxv (ini adalah
diperlukan oleh bug dalam kode startup /lib/ld-linux.so mulai
Mei 2000), dan mentransfer kontrol ke program interpreter atau
alamat e_entry dari executable asli.

Rintisan UPX panjangnya sekitar 1700 byte, sebagian ditulis dalam assembler
dan hanya menggunakan syscalls kernel. Itu tidak terkait dengan libc mana pun.

Kekurangan spesifik:

- Untuk format linux/elf386 dan linux/sh386, Anda akan mengandalkan
RAM dan ruang swap untuk menampung semua program yang didekompresi selama
seumur hidup proses. Jika Anda sudah menggunakan sebagian besar swap Anda
ruang, maka Anda mungkin kehabisan. Sebuah sistem yang "kehabisan memori"
bisa menjadi rapuh. Banyak program tidak bereaksi dengan baik ketika
malloc() mengembalikan 0. Dengan kernel Linux yang lebih baru, kernel
mungkin memutuskan untuk mematikan beberapa proses untuk mendapatkan kembali memori, dan Anda
mungkin tidak menyukai pilihan kernel yang akan dimatikan. Berlari
/usr/bin/atas adalah salah satu cara untuk memeriksa penggunaan ruang swap.

Opsi tambahan tersedia untuk format yang dapat dieksekusi ini:

(Tidak ada)

CATATAN UNTUK LINUX/SH386
Silakan baca deskripsi umum Linux terlebih dahulu.

Skrip shell di mana shell bawahan menerima argumen ``-c'' dapat menggunakan Linux/sh386
Format. UPX mendekompresi skrip shell ke memori rendah, lalu memetakan shell dan meneruskan
seluruh teks skrip sebagai argumen dengan awalan ``-c''. Itu tidak menggunakan ruang
in / Tmp, dan tidak menggunakan /proc.

Linux/sh386 dipilih secara otomatis untuk skrip shell yang menggunakan shell yang dikenal.

Program yang dikemas akan menjadi byte-identik dengan aslinya setelah tidak dikompresi.

Bagaimana itu bekerja:

Untuk executable skrip shell (file yang dimulai dengan "#!/" atau "#! /")
di mana shell diketahui menerima "-c ", UPX mendekompres
file ke memori rendah, lalu petakan shell (dan PT_INTERP-nya),
dan meneruskan kontrol ke shell dengan seluruh file yang didekompresi
sebagai argumen setelah "-c". Kerang yang dikenal adalah sh, ash, bash, bsh, csh,
ksh, tcsh, pdksh. Batasan: UPX tidak dapat menggunakan metode ini
untuk skrip shell yang menggunakan satu argumen string opsional setelahnya
nama shell dalam skrip (contoh: "#! / Bin / sh opsi3\n".)

Rintisan UPX panjangnya sekitar 1700 byte, sebagian ditulis dalam assembler
dan hanya menggunakan syscalls kernel. Itu tidak terkait dengan libc mana pun.

Kekurangan spesifik:

- Untuk format linux/elf386 dan linux/sh386, Anda akan mengandalkan
RAM dan ruang swap untuk menampung semua program yang didekompresi selama
seumur hidup proses. Jika Anda sudah menggunakan sebagian besar swap Anda
ruang, maka Anda mungkin kehabisan. Sebuah sistem yang "kehabisan memori"
bisa menjadi rapuh. Banyak program tidak bereaksi dengan baik ketika
malloc() mengembalikan 0. Dengan kernel Linux yang lebih baru, kernel
mungkin memutuskan untuk mematikan beberapa proses untuk mendapatkan kembali memori, dan Anda
mungkin tidak menyukai pilihan kernel yang akan dimatikan. Berlari
/usr/bin/atas adalah salah satu cara untuk memeriksa penggunaan ruang swap.

Opsi tambahan tersedia untuk format yang dapat dieksekusi ini:

(Tidak ada)

CATATAN UNTUK LINUX/386
Silakan baca deskripsi umum Linux terlebih dahulu.

Format umum linux/386 didekompresi menjadi / Tmp dan kebutuhan / proc dukungan sistem file. Dia
memulai program yang didekompresi melalui eksekutif() panggilan sistem.

Linux/386 hanya dipilih jika linux/elf386 dan linux/sh386 khusus tidak akan mengenali
file.

Program yang dikemas akan menjadi byte-identik dengan aslinya setelah tidak dikompresi.

Bagaimana itu bekerja:

Untuk file yang bukan ELF dan bukan skrip untuk shell "-c" yang dikenal,
UPX menggunakan kernel execve(), yang pertama-tama membutuhkan dekompresi ke a
file sementara dalam sistem file. Menariknya -
karena manajemen memori yang baik dari kernel Linux - ini
seringkali tidak menimbulkan penundaan yang nyata, dan sebenarnya ada
tidak akan ada akses disk sama sekali jika Anda memiliki cukup memori bebas sebagai
seluruh proses berlangsung di dalam buffer sistem file.

Eksekusi terkompresi terdiri dari rintisan UPX dan overlay
yang berisi program asli dalam bentuk terkompresi.

Rintisan UPX adalah ELF yang terhubung secara statis yang dapat dieksekusi dan tidak
berikut ini saat memulai program:

1) dekompresi overlay ke lokasi sementara di / Tmp
2) buka file sementara untuk dibaca
3) coba hapus file sementara dan mulai (execve)
program tidak terkompresi di / Tmp menggunakan /proc//fd/X sebagai
dicapai dengan langkah 2)
4) jika gagal, potong subproses untuk membersihkan dan
memulai program di / Tmp sementara itu

Rintisan UPX panjangnya sekitar 1700 byte, sebagian ditulis dalam assembler
dan hanya menggunakan syscalls kernel. Itu tidak terkait dengan libc mana pun.

Kekurangan spesifik:

- Anda memerlukan ruang disk kosong tambahan untuk program yang tidak terkompresi
di Anda / Tmp direktori. Program ini dihapus segera setelah
dekompresi, tetapi Anda masih membutuhkannya untuk waktu eksekusi penuh
dari program ini.

- Anda harus memiliki / proc dukungan sistem file saat rintisan ingin dibuka
/proc//exe dan kebutuhan /proc//fd/X. Ini juga berarti bahwa Anda
tidak dapat mengompresi program yang digunakan selama urutan boot
sebelum / proc sudah terpasang.

- Utilitas seperti `top' akan menampilkan nilai numerik dalam proses
bidang nama. Ini karena Linux menghitung nama proses dari
argumen pertama dari syscall execve terakhir (yang biasanya
sesuatu seperti /proc//fd/3).

- Karena dekompresi sementara ke disk, kecepatan dekompresi
tidak secepat format executable lainnya. Tetap saja, aku bisa melihat
tidak ada penundaan yang nyata saat memulai program seperti ~3 MiB emacs saya (yang
kurang dari 1 MiB saat dikompres :-).

Opsi tambahan tersedia untuk format yang dapat dieksekusi ini:

--force-execve Memaksa penggunaan "execve" linux/386 generik
format, yaitu jangan coba linux/elf386 dan
format linux/sh386.

CATATAN UNTUK PS1/EXE
Ini adalah format yang dapat dieksekusi yang digunakan oleh Sony PlayStation (PSone), berbasis Mips R3000
konsol game yang populer sejak akhir 90-an. Dukungan format ini sangat
mirip dengan yang Atari, karena perasaan nostalgia salah satu penulis.

Program yang dikemas akan menjadi byte-identik dengan aslinya setelah tidak dikompresi, hingga selanjutnya
melihat.

Ukuran maksimum yang tidak dikompresi: ~1.89 / ~7.60 MiB.

Catatan:

- UPX membuat sebagai default executable yang cocok untuk CD-Mastering
dan transfer konsol. Untuk executable utama CD-Master, Anda juga dapat mencoba
opsi khusus "--boot-only" seperti yang dijelaskan di bawah ini.
Telah dilaporkan bahwa executable yang dikemas upx sepenuhnya kompatibel dengan
Sony PlayStation 2 (PS2, PStwo) dan Sony PlayStation Portable (PSP) di
Mode emulasi Sony PlayStation (PSone).

- Biasanya file yang dikemas menggunakan area memori yang sama seperti yang tidak terkompresi
versi, sehingga mereka tidak akan menimpa area memori lain saat membongkar.
Jika ini tidak memungkinkan, UPX akan dibatalkan dengan menampilkan 'data yang dikemas tumpang tindih'
kesalahan. Dengan opsi "--force" UPX akan memindahkan alamat pemuatan
untuk file yang dikemas, tetapi ini bukan masalah nyata jika itu adalah satu atau
utama yang dapat dieksekusi.

Opsi tambahan tersedia untuk format yang dapat dieksekusi ini:

--all-methods Kompres program beberapa kali, menggunakan semua
metode kompresi yang tersedia. Ini dapat meningkatkan
rasio kompresi dalam beberapa kasus, tetapi biasanya
metode default tetap memberikan hasil terbaik.

-8-bit Menggunakan kompresi ukuran 8 bit [default: 32 bit]

-8mib-ram PSone memiliki ram 8 MiB yang tersedia [default: 2 MiB]

--boot-only Format ini hanya untuk exe utama dan CD-Mastering !
Ini mungkin sedikit meningkatkan rasio kompresi,
rutinitas dekompresi lebih cepat daripada yang default.
Tapi itu tidak bisa digunakan untuk transfer konsol!

--no-align Opsi ini menonaktifkan format sektor data mode CD 2
penyelarasan. Mungkin sedikit meningkatkan rasio kompresi,
tetapi executable terkompresi tidak akan boot dari CD.
Gunakan hanya untuk transfer konsol!

CATATAN UNTUK RTM32/PE dan LENGAN/PE
Sama seperti win32/pe.

CATATAN UNTUK TMT/ADAM
Format ini digunakan oleh kompiler TMT Pascal - lihat http://www.tmt.com/ .

Opsi tambahan tersedia untuk format yang dapat dieksekusi ini:

--all-methods Kompres program beberapa kali, menggunakan semua
metode kompresi yang tersedia. Ini dapat meningkatkan
rasio kompresi dalam beberapa kasus, tetapi biasanya
metode default tetap memberikan hasil terbaik.

--all-filters Kompres program beberapa kali, menggunakan all
filter pra-pemrosesan yang tersedia. Ini dapat meningkatkan
rasio kompresi dalam beberapa kasus, tetapi biasanya
filter default tetap memberikan hasil terbaik.

CATATAN UNTUK VMLINUZ/386
Format vmlinuz/386 dan bvmlinuz/386 menggunakan kernel Linux yang dapat di-boot dengan kompresi gzip
image ("vmlinuz", "zImage", "bzImage"), dekompresi gzip dan kompres ulang dengan UPX
metode kompresi.

vmlinuz/386 sama sekali tidak terkait dengan format executable Linux lainnya, dan itu tidak
berbagi kekurangan mereka.

Catatan:

- Pastikan "vmlinuz/386" atau "bvmlinuz/386" ditampilkan
selama kompresi - jika tidak, format yang dapat dieksekusi salah
mungkin telah digunakan, dan kernel tidak mau boot.

Manfaat:

- Kompresi yang lebih baik (tetapi perhatikan bahwa kernel sudah dikompresi,
sehingga peningkatannya tidak sebesar dengan format lain).
Namun, byte yang disimpan mungkin penting untuk kebutuhan khusus seperti
disk boot.

Sebagai contoh, inilah yang saya dapatkan untuk kernel 2.2.16 saya:
1589708 vmlinux
641073 bzGambar [asli]
560755 bzImage.upx [dikompresi oleh "upx -9"]

- Dekompresi jauh lebih cepat pada waktu boot kernel (tetapi kernel
kecepatan dekompresi tidak benar-benar menjadi masalah akhir-akhir ini).

Kekurangan:

(Tidak ada)

Opsi tambahan tersedia untuk format yang dapat dieksekusi ini:

--all-methods Kompres program beberapa kali, menggunakan semua
metode kompresi yang tersedia. Ini dapat meningkatkan
rasio kompresi dalam beberapa kasus, tetapi biasanya
metode default tetap memberikan hasil terbaik.

--all-filters Kompres program beberapa kali, menggunakan all
filter pra-pemrosesan yang tersedia. Ini dapat meningkatkan
rasio kompresi dalam beberapa kasus, tetapi biasanya
filter default tetap memberikan hasil terbaik.

CATATAN UNTUK WATCOM/LE
UPX telah berhasil diuji dengan ekstender berikut:
DOS4G, DOS4GW, PMODE/W, DOS32a, CauseWay.
Extender WDOS/X didukung sebagian (untuk detailnya
lihat file bug BUGS).

DLL dan format LX tidak didukung.

Opsi tambahan tersedia untuk format yang dapat dieksekusi ini:

--le Menghasilkan output LE yang tidak terikat alih-alih
menjaga rintisan saat ini.

CATATAN UNTUK MENANG32/PE
Dukungan PE di UPX cukup stabil sekarang, tapi mungkin masih ada beberapa
tidak kompatibel dengan beberapa file.

Karena jalannya UPX (dan pengemas lain untuk format ini) berfungsi, Anda dapat melihat peningkatan
penggunaan memori file terkompresi Anda karena seluruh program dimuat ke dalam memori di
rintisan. Jika Anda memulai beberapa contoh program terkompresi besar, Anda membuang-buang memori
karena segmen umum dari program tidak akan dibagikan ke seluruh instance. pada
sisi lain jika Anda hanya mengompresi program yang lebih kecil, atau hanya menjalankan satu instance dari
program yang lebih besar, maka hukuman ini lebih kecil, tetapi masih ada.

Jika Anda menjalankan executable dari jaringan, maka program terkompresi akan memuat lebih cepat, dan
membutuhkan lebih sedikit bandwidth selama eksekusi.

DLL didukung. Tetapi DLL terkompresi UPX tidak dapat berbagi data dan kode umum ketika mereka
digunakan oleh banyak aplikasi. Jadi mengompresi msvcrt.dll adalah pemborosan memori, tapi
mengompresi plugin dll dari aplikasi tertentu mungkin merupakan ide yang lebih baik.

Screensaver didukung, dengan batasan bahwa nama file harus diakhiri dengan ".scr"
(karena screensaver ditangani sedikit berbeda dari file exe normal).

File PE terkompresi UPX memiliki beberapa overhead memori kecil (biasanya dalam kisaran 10 - 30 KiB)
yang dapat dilihat dengan menentukan sakelar baris perintah "-i" selama kompresi.

Opsi tambahan tersedia untuk format yang dapat dieksekusi ini:

--compress-exports=0 Jangan kompres bagian ekspor.
Gunakan ini jika Anda berencana untuk menjalankan kompresi
program di bawah Wine.
--compress-exports=1 Kompres bagian ekspor. [BAWAAN]
Kompresi bagian ekspor dapat meningkatkan
rasio kompresi cukup sedikit tetapi mungkin tidak berfungsi
dengan semua program (seperti winword.exe).
UPX tidak pernah memampatkan bagian ekspor DLL
terlepas dari opsi ini.

--compress-icons=0 Jangan kompres ikon apa pun.
--compress-icons=1 Kompres semua kecuali ikon pertama.
--compress-icons=2 Kompres semua ikon yang tidak ada di
direktori ikon pertama. [BAWAAN]
--compress-icons=3 Kompres semua ikon.

--compress-resources=0 Jangan kompres sumber daya sama sekali.

--keep-resource=list Jangan kompres sumber daya yang ditentukan oleh daftar.
Anggota daftar dipisahkan dengan koma.
Anggota daftar memiliki format berikut: I .
Saya adalah jenis sumber daya. Tipe standar
harus ditentukan sebagai angka desimal, tipe pengguna dapat berupa
ditentukan oleh ID atau string desimal. Saya adalah
pengenal sumber daya. Itu bisa berupa angka desimal
atau seutas tali. Sebagai contoh:

--keep-resource=2/MYBITMAP,5,6/12345

UPX tidak akan memampatkan sumber daya bitmap bernama "MYBITMAP",
itu membuat setiap dialog (5) sumber daya tidak terkompresi, dan
itu tidak akan menyentuh sumber daya tabel string dengan pengidentifikasi
12345.

--force Memaksakan kompresi bahkan ketika ada
nilai tak terduga di bidang header.
Gunakan dengan hati-hati.

--strip-relocs=0 Jangan hapus catatan relokasi.
--strip-relocs=1 Strip relokasi catatan. [BAWAAN]
Opsi ini hanya berfungsi pada executable dengan basis
alamat lebih besar atau sama dengan 0x400000. Biasanya
file terkompresi menjadi lebih kecil, tetapi beberapa file
mungkin menjadi lebih besar. Perhatikan bahwa file yang dihasilkan akan
tidak bekerja di bawah Windows 3.x (Win32s).
UPX tidak pernah menghapus relokasi dari DLL
terlepas dari opsi ini.

--all-methods Kompres program beberapa kali, menggunakan semua
metode kompresi yang tersedia. Ini dapat meningkatkan
rasio kompresi dalam beberapa kasus, tetapi biasanya
metode default tetap memberikan hasil terbaik.

--all-filters Kompres program beberapa kali, menggunakan all
filter pra-pemrosesan yang tersedia. Ini dapat meningkatkan
rasio kompresi dalam beberapa kasus, tetapi biasanya
filter default tetap memberikan hasil terbaik.

DIAGNOSTIK


Status keluar biasanya 0; jika terjadi kesalahan, status keluar adalah 1. Jika terjadi peringatan, keluar
statusnya adalah 2.

UPXDiagnostik 's dimaksudkan untuk menjadi cukup jelas.

Gunakan upx-ucl online menggunakan layanan onworks.net


Server & Workstation Gratis

Unduh aplikasi Windows & Linux

Perintah Linux

Ad