Amazon Best VPN GoSearch

Favicon OnWorks

upx-ucl - Dalam talian di Awan

Jalankan upx-ucl dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah arahan upx-ucl yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.

JADUAL:

NAMA


upx - memampatkan atau mengembangkan fail boleh laku

SINOPSIS


oops [ arahan ] [ pilihan ] nama fail...

ABSTRAK


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

UPX ialah pembungkus boleh laksana mudah alih, boleh dipanjangkan, berprestasi tinggi untuk beberapa jenis yang berbeza
format boleh laku. Ia mencapai nisbah mampatan dan tawaran yang sangat baik *sangat* cepat
penyahmampatan. Boleh laku anda tidak mengalami overhed memori atau kelemahan lain untuk kebanyakannya
format yang disokong, kerana penyahmampatan di tempat.

Walaupun anda boleh menggunakan UPX secara bebas untuk kedua-dua boleh laku bukan komersial dan komersial (untuk
butiran lihat fail /usr/share/doc/upx-ucl/copyright), kami amat menghargai jika anda
kredit UPX dan diri kita sendiri dalam dokumentasi, mungkin termasuk rujukan kepada UPX
halaman rumah. terima kasih.

[ Menggunakan UPX dalam aplikasi bukan OpenSource tanpa kredit yang sepatutnya dianggap tidak
betul dari segi politik ;-) ]

PENAFIAN


UPX datang dengan SAMA SEKALI TIADA WARANTI; untuk butiran lihat fail
/usr/share/doc/upx-ucl/copyright.

Ini adalah keluaran kualiti pengeluaran pertama, dan kami merancang bahawa keluaran 1.xx akan datang akan
serasi ke belakang dengan versi ini.

Sila laporkan semua masalah atau cadangan kepada penulis. terima kasih.

DESCRIPTION


UPX ialah pembungkus boleh laku serba boleh dengan ciri-ciri berikut:

- nisbah mampatan yang sangat baik: memampatkan lebih baik daripada zip/gzip,
gunakan UPX untuk mengurangkan saiz pengedaran anda !

- penyahmampatan yang sangat pantas: kira-kira 10 MiB/saat pada Pentium 133 purba,
kira-kira 200 MiB/saat pada Athlon XP 2000+.

- tiada overhed memori untuk boleh laku termampat anda untuk kebanyakan
format yang disokong

- selamat: anda boleh menyenaraikan, menguji dan membongkar boleh laku anda
Juga, jumlah semak bagi kedua-dua fail termampat dan tidak dimampatkan ialah
diselenggara secara dalaman.

- universal: UPX boleh membungkus beberapa format boleh laku:
* atari/tos
* bvmlinuz/386 [kernel Linux boleh 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 boleh boot]
* vmlinux/386
* watcom/le (menyokong DOS4G, PMODE/W, DOS32a dan CauseWay)
* win32/pe (exe dan dll)
* lengan/pe (exe dan dll)
* linux/elfamd64
* linux/elfppc32
* mach/elfppc32

- mudah alih: UPX ditulis dalam mudah alih endian-neutral C++

- boleh dipanjangkan: kerana susun atur kelas ia sangat mudah untuk disokong
format boleh laku baharu atau tambah algoritma pemampatan baharu

- percuma: UPX boleh diedarkan dan digunakan secara bebas. Dan dari versi 0.99
kod sumber penuh UPX dikeluarkan di bawah GNU General Public
Lesen (GPL) !

Anda mungkin faham sekarang mengapa kami menelefon UPX yang "muktamad" pembungkus boleh laku.

PERINTAH


Compress
Ini ialah operasi lalai, mis. oops yourfile.exe akan memampatkan fail yang ditentukan pada
baris arahan.

Decompress
Semua UPX format fail yang disokong boleh dibongkar menggunakan -d suis, cth. oops -d
yourfile.exe akan menyahmampat fail yang baru anda mampatkan.

ujian
. -t arahan menguji integriti data yang dimampatkan dan tidak dimampatkan, cth. oops -t
yourfile.exe semak sama ada fail anda boleh dinyahmampat dengan selamat. Perhatikan, bahawa arahan ini
tidak menyemak keseluruhan fail, hanya bahagian yang tidak akan dimampatkan semasa program
perlaksanaan. Ini bermakna anda tidak seharusnya menggunakan arahan ini dan bukannya penyemak virus.

senarai
. -l arahan mencetak beberapa maklumat tentang fail termampat yang dinyatakan pada
baris arahan sebagai parameter, cth oops -l yourfile.exe menunjukkan yang dimampatkan / tidak dimampatkan
saiz dan nisbah mampatan bagi yourfile.exe.

PILIHAN


-q: diam, sekat amaran

-q -q (Atau -qq): sangat senyap, sekat kesilapan

-q -q -q (Atau -qqq): tidak menghasilkan keluaran sama sekali

- membantu: mencetak bantuan

--versi: mencetak versi UPX

--tepat: apabila memampatkan, memerlukan untuk mendapatkan fail yang serupa bait selepas
penyahmampatan dengan pilihan -d. [NOTA: ini sedang dalam proses dan tidak disokong untuk semua
format lagi. Jika anda mengambil berat, sebagai penyelesaian anda boleh memampatkan dan kemudian menyahmampatkan anda
atur cara buat kali pertama - sebarang langkah mampat-nyahmampat selanjutnya akan menghasilkan byte-
keputusan yang sama berbanding dengan versi dinyahmampat pertama.]

[ ...untuk ditulis... - taip `oops - membantu' untuk sekarang ]

KOMPRESI TAHAP & TUNING


UPX menawarkan sepuluh tahap mampatan berbeza daripada -1 kepada -9, dan --terbaik. Lalai
tahap mampatan ialah -8 untuk fail yang lebih kecil daripada 512 KiB, dan -7 sebaliknya.

· Tahap mampatan 1, 2 dan 3 agak pantas.

· Tahap mampatan 4, 5 dan 6 mencapai prestasi masa/nisbah yang baik.

· Tahap mampatan 7, 8 dan 9 memihak kepada nisbah mampatan berbanding kelajuan.

· Tahap mampatan --terbaik mungkin mengambil masa yang lama.

Perhatikan bahawa tahap mampatan --terbaik boleh menjadi agak perlahan untuk fail besar, tetapi anda
pastinya harus menggunakannya apabila mengeluarkan versi akhir program anda.

Maklumat pantas untuk mencapai nisbah mampatan terbaik:

· Cuba oops --kasar myfile.exe atau oops --ultra-biadab myfile.exe.

· Cuba jika --tindih=jalur kerja.

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

Overlay PENGENDALIAN PILIHAN


Maklumat: "tindanan" bermaksud data tambahan yang dilampirkan selepas penghujung logik sesuatu boleh laku,
dan ia selalunya mengandungi data khusus aplikasi (ini adalah amalan biasa untuk mengelakkan an
fail data tambahan, walaupun lebih baik menggunakan bahagian sumber).

UPX mengendalikan tindanan seperti kebanyakan pembungkus boleh laku yang lain lakukan: ia hanya menyalin tindanan
selepas imej yang dimampatkan. Ini berfungsi dengan beberapa fail, tetapi tidak berfungsi dengan yang lain,
bergantung pada cara aplikasi sebenarnya mengakses data bertindih ini.

--overlay=copy Salin sebarang data tambahan yang dilampirkan pada fail. [LAILAI]

--overlay=jalur Keluarkan sebarang tindanan daripada program dan bukannya
menyalinnya. Berhati-hati, ini boleh membuat mampat
ranap program atau sebaliknya tidak boleh digunakan.

--overlay=skip Enggan memampatkan sebarang program yang mempunyai tindanan.

PERSEKITARAN


Pembolehubah persekitaran UPX boleh memegang satu set pilihan lalai untuk UPX. Pilihan ini adalah
ditafsirkan dahulu dan boleh ditimpa oleh parameter baris arahan yang jelas. Untuk
contoh:

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

Di bawah DOS/Windows anda mesti menggunakan '#' dan bukannya '=' apabila menetapkan pembolehubah persekitaran
kerana had COMMAND.COM.

Tidak semua pilihan adalah sah dalam pembolehubah persekitaran - UPX akan memberitahu anda.

Anda boleh menggunakan secara eksplisit --no-env pilihan untuk mengabaikan pembolehubah persekitaran.

NOTA UNTUK THE DISOKONG BOLEH DILAKSANAKAN FORMATS


NOTA UNTUK ATARI/TOS
Ini ialah format boleh laku yang digunakan oleh Atari ST/TT, sebuah peranti peribadi berasaskan Motorola 68000
komputer yang popular pada akhir 80-an. Sokongan format ini hanya kerana
perasaan nostalgia salah seorang penulis dan tidak mempunyai tujuan praktikal :-). Lihat
http://www.freemint.de untuk maklumat lanjut.

Program yang dibungkus akan menjadi bait-sama dengan yang asal selepas penyahmampatan. Semua nyahpepijat
maklumat akan dilucutkan, walaupun.

Pilihan tambahan tersedia untuk format boleh laku ini:

--all-methods Mampatkan program beberapa kali, menggunakan semua
kaedah mampatan yang tersedia. Ini mungkin bertambah baik
nisbah mampatan dalam beberapa kes, tetapi biasanya
kaedah lalai memberikan hasil yang terbaik pula.

NOTA UNTUK BVMLINUZ/I386
Sama seperti vmlinuz/i386.

NOTA UNTUK DOS/COM
Jelas sekali UPX tidak akan berfungsi dengan boleh laku yang ingin membaca data daripada mereka sendiri (seperti
beberapa utiliti baris perintah yang dihantar dengan Win95/98/ME).

Program mampat hanya berfungsi pada 286+.

Program yang dibungkus akan menjadi bait-sama dengan yang asal selepas penyahmampatan.

Saiz maksimum tidak dimampatkan: ~65100 bait.

Pilihan tambahan tersedia untuk format boleh laku ini:

--8086 Cipta boleh laku yang berfungsi pada mana-mana CPU 8086.

--all-methods Mampatkan program beberapa kali, menggunakan semua
kaedah mampatan yang tersedia. Ini mungkin bertambah baik
nisbah mampatan dalam beberapa kes, tetapi biasanya
kaedah lalai memberikan hasil yang terbaik pula.

--all-filters Mampatkan program beberapa kali, menggunakan semua
penapis prapemprosesan yang tersedia. Ini mungkin bertambah baik
nisbah mampatan dalam beberapa kes, tetapi biasanya
penapis lalai memberikan hasil yang terbaik.

NOTA UNTUK DOS/EXE
dos/exe bermaksud semua "biasa" 16-bit DOS boleh laku.

Jelas sekali UPX tidak akan berfungsi dengan boleh laku yang ingin membaca data daripada mereka sendiri (seperti
beberapa utiliti baris arahan yang dihantar dengan Win95/98/ME).

Program mampat hanya berfungsi pada 286+.

Pilihan tambahan tersedia untuk format boleh laku ini:

--8086 Cipta boleh laku yang berfungsi pada mana-mana CPU 8086.

--no-reloc Gunakan tiada rekod penempatan semula dalam pengepala exe.

--all-methods Mampatkan program beberapa kali, menggunakan semua
kaedah mampatan yang tersedia. Ini mungkin bertambah baik
nisbah mampatan dalam beberapa kes, tetapi biasanya
kaedah lalai memberikan hasil yang terbaik pula.

NOTA UNTUK DOS/SYS
Program mampat hanya berfungsi pada 286+.

Program yang dibungkus akan menjadi bait-sama dengan yang asal selepas penyahmampatan.

Saiz maksimum tidak dimampatkan: ~65350 bait.

Pilihan tambahan tersedia untuk format boleh laku ini:

--8086 Cipta boleh laku yang berfungsi pada mana-mana CPU 8086.

--all-methods Mampatkan program beberapa kali, menggunakan semua
kaedah mampatan yang tersedia. Ini mungkin bertambah baik
nisbah mampatan dalam beberapa kes, tetapi biasanya
kaedah lalai memberikan hasil yang terbaik pula.

--all-filters Mampatkan program beberapa kali, menggunakan semua
penapis prapemprosesan yang tersedia. Ini mungkin bertambah baik
nisbah mampatan dalam beberapa kes, tetapi biasanya
penapis lalai memberikan hasil yang terbaik.

NOTA UNTUK DJGPP2/COFF
Pertama sekali, disyorkan untuk digunakan UPX *sebaliknya* daripada jalur. jalur mempunyai yang sangat buruk
tabiat menggantikan stub anda dengan versinya sendiri (lapuk). Selain itu UPX membetulkan a
pepijat/ciri dalam jalur v2.8.x: ia akan membetulkan penjajaran 4 KiB pada rintisan.

UPX termasuk fungsi penuh stubify. Ini bermakna ia secara automatik akan stubify
fail COFF anda. Gunakan pilihan --coff untuk melumpuhkan fungsi ini (lihat di bawah).

UPX mengendalikan fail pek Allegro secara automatik.

Format DLM (sambungan perpustakaan kongsi yang agak eksotik) tidak disokong.

Program yang dibungkus akan menjadi bait-sama dengan yang asal selepas penyahmampatan. Semua nyahpepijat
maklumat dan sampah mengekori akan dilucutkan, walaupun.

Pilihan tambahan tersedia untuk format boleh laku ini:

--coff Menghasilkan output COFF dan bukannya EXE. Secara lalai
UPX menyimpan stub semasa anda.

--all-methods Mampatkan program beberapa kali, menggunakan semua
kaedah mampatan yang tersedia. Ini mungkin bertambah baik
nisbah mampatan dalam beberapa kes, tetapi biasanya
kaedah lalai memberikan hasil yang terbaik pula.

--all-filters Mampatkan program beberapa kali, menggunakan semua
penapis prapemprosesan yang tersedia. Ini mungkin bertambah baik
nisbah mampatan dalam beberapa kes, tetapi biasanya
penapis lalai memberikan hasil yang terbaik.

NOTA UNTUK LINUX [umum]
Pengenalan

Sokongan Linux/386 dalam UPX terdiri daripada 3 format boleh laku yang berbeza,
satu dioptimumkan untuk boleh laku ELF ("linux/elf386"), satu dioptimumkan
untuk skrip shell ("linux/sh386"), dan satu format generik
("linux/386").

Kami akan mulakan dengan perbincangan umum dahulu, tetapi tolong
baca juga dokumen yang berkaitan untuk setiap format individu.

Juga, terdapat sokongan khas untuk kernel boleh boot - lihat bahagian
penerangan tentang format vmlinuz/386.

Gambaran umum pengguna

Menjalankan program boleh laku termampat memperdagangkan lebih sedikit ruang pada a
Medium storan ``kekal'' (seperti cakera keras, cakera liut,
CD-ROM, memori denyar, EPROM, dsb.) untuk lebih banyak ruang dalam satu atau lebih
Media storan ``sementara' (seperti RAM, ruang swap, / tmp, dan lain-lain.).
Menjalankan boleh laku termampat juga memerlukan beberapa CPU tambahan
kitaran untuk menjana boleh laku termampat di tempat pertama,
dan untuk menyahmampatkannya pada setiap seruan.

Berapa banyak ruang yang didagangkan? Ia bergantung pada boleh laku, tetapi banyak
program menjimatkan 30% hingga 50% ruang cakera kekal. Berapa banyak CPU
overhead ada? Sekali lagi, ia bergantung pada boleh laku, tetapi
kelajuan penyahmampatan biasanya sekurang-kurangnya banyak megabait sesaat,
dan selalunya dihadkan oleh kelajuan cakera asas
atau rangkaian I/O.

Bergantung pada statistik penggunaan dan akses, dan relatif
kelajuan CPU, RAM, ruang swap, / tmp, dan storan sistem fail, kemudian
memanggil dan menjalankan boleh laku termampat boleh menjadi lebih cepat daripada
terus menjalankan program tidak dimampatkan yang sepadan.
Sistem pengendalian mungkin melakukan operasi I/O yang lebih murah
untuk menggunakan program termampat. Paging ke atau dari ruang swap
or / tmp mungkin lebih pantas daripada halaman dari sistem fail umum.
Program ``bersaiz sederhana'' yang mengakses kira-kira 1/3 hingga 1/2 daripadanya
bait program yang disimpan boleh berfungsi dengan baik dengan pemampatan.
Program-program kecil cenderung tidak mendapat manfaat yang banyak kerana mutlak
simpanan pun kurang. Program besar cenderung tidak mendapat manfaat secara berkadar
kerana setiap doa boleh menggunakan hanya sebahagian kecil daripada program,
namun UPX menyahmampat keseluruhan program sebelum menggunakannya.
Tetapi dalam persekitaran di mana storan cakera atau memori kilat adalah terhad,
maka pemampatan mungkin menang pula.

Pada masa ini, boleh laku yang dimampatkan oleh UPX tidak berkongsi RAM pada masa jalan
dengan cara yang boleh laku dipetakan daripada sistem fail lakukan. Sebagai
keputusan, jika program yang sama dijalankan serentak oleh lebih daripada satu
proses, kemudian menggunakan versi termampat akan memerlukan lebih banyak RAM dan/atau
tukar ruang. Jadi, program shell (bash, csh, dll.) dan ``make''
mungkin bukan calon yang baik untuk pemampatan.

UPX mengiktiraf tiga format boleh laku untuk Linux: Linux/elf386,
Linux/sh386 dan Linux/386. Linux/386 ialah format paling generik;
ia menampung mana-mana fail yang boleh dilaksanakan. Pada masa tayangan, UPX
stub penyahmampatan tercipta semula / tmp salinan fail asal,
dan kemudian salinannya (semula) dilaksanakan dengan hujah yang sama.
Boleh laku binari ELF lebih suka format Linux/elf386 secara lalai,
kerana UPX menyahmampatnya terus ke dalam RAM, hanya menggunakan satu
exec, tidak menggunakan ruang masuk / tmp, dan tidak menggunakan /proc.
Skrip Shell di mana shell asas menerima hujah ``-c''
boleh menggunakan format Linux/sh386. UPX menyahmampat skrip shell
ke dalam ingatan rendah, kemudian petakan cangkerang dan hantar keseluruhan teks
skrip sebagai hujah dengan ``-c'' terkemuka.

Faedah am:

- UPX boleh memampatkan semua boleh laku, sama ada AOUT, ELF, libc4, libc5,
libc6, Shell/Perl/Python/... skrip, Java .class yang tersendiri
binari, atau apa sahaja...
Semua skrip dan program akan berfungsi seperti sebelumnya.

- Program mampat adalah serba lengkap. Tidak perlu
sebarang program luar.

- UPX memastikan program asal anda tidak disentuh. Ini bermakna bahawa
selepas penyahmampatan anda akan mempunyai versi yang sama bait,
dan anda boleh menggunakan UPX sebagai pemampat fail seperti gzip.
[ Ambil perhatian bahawa UPX mengekalkan jumlah semak fail secara dalaman,
jadi ia sememangnya alternatif yang boleh dipercayai. ]

- Memandangkan stub hanya menggunakan syscalls dan tidak dipautkan dengan libc itu
harus dijalankan di bawah mana-mana konfigurasi Linux yang boleh menjalankan ELF
binari.

- Atas sebab yang sama, boleh laku termampat harus dijalankan di bawah
FreeBSD dan sistem lain yang boleh menjalankan binari Linux.
[Sila hantar maklum balas tentang topik ini]

Kelemahan umum:

- Tidak digalakkan untuk memampatkan program yang biasanya mempunyai banyak
kejadian berjalan (seperti `sh' atau `make') kerana segmen biasa bagi
atur cara dimampatkan tidak akan dikongsi lagi antara yang berbeza
proses.

- `ldd' dan `saiz' tidak akan menunjukkan apa-apa yang berguna kerana semuanya
lihat ialah rintisan yang dipautkan secara statik. Sejak versi 0.82 bahagian
pengepala dilucutkan daripada stub UPX dan `saiz' tidak sama
mengenali format fail. Fail patch/patch-elfcode.h mempunyai a
tampal untuk membetulkan pepijat ini dalam `saiz' dan atur cara lain yang menggunakan GNU BFD.

Nota umum:

- Memandangkan UPX membiarkan program asal anda tidak disentuh, ia adalah berfaedah
untuk menanggalkannya sebelum dimampatkan.

- Jika anda memampatkan skrip anda akan kehilangan kebebasan platform -
ini boleh menjadi masalah jika anda menggunakan cakera yang dipasang NFS.

- Pemampatan program suid, guid dan sticky-bit ditolak
kerana kemungkinan implikasi keselamatan.

- Atas sebab yang sama tidak ada gunanya membuat apa-apa mampat
program suis.

- Jelas sekali UPX tidak akan berfungsi dengan boleh laku yang ingin membaca data
daripada diri mereka sendiri. Contohnya, ini mungkin menjadi masalah untuk skrip Perl
yang mengakses talian __DATA__ mereka.

- Sekiranya berlaku ralat dalaman, stub akan dibatalkan dengan kod keluar 127.
Sebab biasa perkara ini berlaku ialah program itu entah bagaimana
telah diubah suai selepas pemampatan.
Menjalankan `strace -o strace.log compressed_file' akan memberitahu anda lebih lanjut.

NOTA UNTUK LINUX/ELF386
Sila baca penerangan umum Linux dahulu.

Format linux/elf386 menyahmampat terus ke dalam RAM, menggunakan hanya satu exec, tidak digunakan
ruang dalam / tmp, dan tidak menggunakan /proc.

Linux/elf386 dipilih secara automatik untuk boleh laku Linux ELF.

Program yang dibungkus akan menjadi bait-sama dengan yang asal selepas penyahmampatan.

Bagaimana ia berfungsi:

Untuk boleh laku ELF, UPX menyahmampat terus ke memori, meniru
pemetaan yang digunakan kernel sistem pengendalian semasa exec(),
termasuk jurubahasa program PT_INTERP (jika ada).
Brk() ditetapkan oleh segmen PT_LOAD khas dalam dimampatkan
boleh dilaksanakan sendiri. UPX kemudian mengelap tindanan sehingga bersih kecuali untuk
argumen, pembolehubah persekitaran dan entri Elf_auxv (ini ialah
diperlukan oleh pepijat dalam kod permulaan /lib/ld-linux.so sejak
Mei 2000), dan memindahkan kawalan kepada jurubahasa program atau
alamat e_entry bagi boleh laku asal.

Stub UPX adalah kira-kira 1700 bait panjang, sebahagiannya ditulis dalam penghimpun
dan hanya menggunakan kernel syscalls. Ia tidak dikaitkan dengan mana-mana libc.

Kelemahan khusus:

- Untuk format linux/elf386 dan linux/sh386, anda akan bergantung pada
RAM dan ruang swap untuk menahan semua program yang dinyahmampat semasa
sepanjang hayat proses. Jika anda sudah menggunakan kebanyakan swap anda
ruang, maka anda mungkin kehabisan. Sistem yang "kehabisan ingatan"
boleh menjadi rapuh. Banyak program tidak bertindak balas dengan anggun apabila
malloc() mengembalikan 0. Dengan kernel Linux yang lebih baharu, kernel
mungkin memutuskan untuk membunuh beberapa proses untuk mendapatkan semula ingatan, dan anda
mungkin tidak menyukai pilihan kernel yang hendak dibunuh. Berlari
/usr/bin/top adalah salah satu cara untuk menyemak penggunaan ruang swap.

Pilihan tambahan tersedia untuk format boleh laku ini:

(Tiada)

NOTA UNTUK LINUX/SH386
Sila baca penerangan umum Linux dahulu.

Skrip shell di mana shell bawah menerima hujah ``-c'' boleh menggunakan Linux/sh386
format. UPX menyahmampat skrip shell ke dalam memori rendah, kemudian memetakan shell dan pas
keseluruhan teks skrip sebagai hujah dengan ``-c'' terkemuka. Ia tidak menggunakan ruang
in / tmp, dan tidak menggunakan /proc.

Linux/sh386 dipilih secara automatik untuk skrip shell yang menggunakan shell yang diketahui.

Program yang dibungkus akan menjadi bait-sama dengan yang asal selepas penyahmampatan.

Bagaimana ia berfungsi:

Untuk skrip shell boleh laku (fail bermula dengan "#!/" atau "#! /")
di mana cangkerang diketahui menerima "-c ", UPX nyahmampat
fail ke dalam memori rendah, kemudian petakan shell (dan PT_INTERPnya),
dan memberikan kawalan kepada shell dengan keseluruhan fail dinyahmampat
sebagai hujah selepas "-c". Cangkang yang dikenali ialah sh, ash, bash, bsh, csh,
ksh, tcsh, pdksh. Sekatan: UPX tidak boleh menggunakan kaedah ini
untuk skrip shell yang menggunakan satu hujah rentetan pilihan selepas
nama shell dalam skrip (contoh: "#! / Bin / sh pilihan3\n".)

Stub UPX adalah kira-kira 1700 bait panjang, sebahagiannya ditulis dalam penghimpun
dan hanya menggunakan kernel syscalls. Ia tidak dikaitkan dengan mana-mana libc.

Kelemahan khusus:

- Untuk format linux/elf386 dan linux/sh386, anda akan bergantung pada
RAM dan ruang swap untuk menahan semua program yang dinyahmampat semasa
sepanjang hayat proses. Jika anda sudah menggunakan kebanyakan swap anda
ruang, maka anda mungkin kehabisan. Sistem yang "kehabisan ingatan"
boleh menjadi rapuh. Banyak program tidak bertindak balas dengan anggun apabila
malloc() mengembalikan 0. Dengan kernel Linux yang lebih baharu, kernel
mungkin memutuskan untuk membunuh beberapa proses untuk mendapatkan semula ingatan, dan anda
mungkin tidak menyukai pilihan kernel yang hendak dibunuh. Berlari
/usr/bin/top adalah salah satu cara untuk menyemak penggunaan ruang swap.

Pilihan tambahan tersedia untuk format boleh laku ini:

(Tiada)

NOTA UNTUK LINUX/386
Sila baca penerangan umum Linux dahulu.

Format linux/386 generik menyahmampat kepada / tmp dan keperluan / proc sokongan sistem fail. Ia
memulakan program nyahmampat melalui execve() syscall.

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

Program yang dibungkus akan menjadi bait-sama dengan yang asal selepas penyahmampatan.

Bagaimana ia berfungsi:

Untuk fail yang bukan ELF dan bukan skrip untuk shell "-c" yang diketahui,
UPX menggunakan kernel execve(), yang mula-mula memerlukan penyahmampatan ke a
fail sementara dalam sistem fail. Menariknya -
kerana pengurusan memori yang baik bagi kernel Linux - ini
selalunya tidak memperkenalkan kelewatan yang ketara, dan sebenarnya ada
tidak akan menjadi akses cakera sama sekali jika anda mempunyai memori kosong yang mencukupi sebagai
keseluruhan proses berlaku dalam penimbal sistem fail.

Boleh laku termampat terdiri daripada stub UPX dan tindanan
yang mengandungi atur cara asal dalam bentuk termampat.

Rintisan UPX ialah ELF yang dipautkan secara statik boleh laku dan boleh
yang berikut pada permulaan program:

1) nyahmampat tindanan ke lokasi sementara di / tmp
2) buka fail sementara untuk dibaca
3) cuba padam fail sementara dan mulakan (execve)
program yang tidak dimampatkan dalam / tmp menggunakan /proc//fd/X sebagai
dicapai dengan langkah 2)
4) jika itu gagal, hentikan subproses untuk membersihkan dan
mulakan program dalam / tmp dalam masa yang sama

Stub UPX adalah kira-kira 1700 bait panjang, sebahagiannya ditulis dalam penghimpun
dan hanya menggunakan kernel syscalls. Ia tidak dikaitkan dengan mana-mana libc.

Kelemahan khusus:

- Anda memerlukan ruang cakera kosong tambahan untuk program yang tidak dimampatkan
dalam anda / tmp direktori. Program ini dipadamkan serta-merta selepas itu
penyahmampatan, tetapi anda masih memerlukannya untuk masa pelaksanaan penuh
program.

- Awak mesti ada / proc sokongan sistem fail semasa stub ingin dibuka
/proc//exe dan keperluan /proc//fd/X. Ini juga bermakna anda
tidak boleh memampatkan atur cara yang digunakan semasa jujukan but
sebelum / proc dipasang.

- Utiliti seperti `top' akan memaparkan nilai berangka dalam proses
medan nama. Ini kerana Linux mengira nama proses daripada
hujah pertama syscall execve terakhir (yang biasanya
sesuatu seperti /proc//fd/3).

- Kerana penyahmampatan sementara ke cakera kelajuan penyahmampatan
tidak sepantas dengan format boleh laku yang lain. Namun, saya boleh melihat
tiada kelewatan yang ketara apabila memulakan program seperti ~3 MiB emacs saya (yang
adalah kurang daripada 1 MiB apabila dimampatkan :-).

Pilihan tambahan tersedia untuk format boleh laku ini:

--force-execve Paksa penggunaan linux generik/386 "execve"
format, iaitu jangan cuba linux/elf386 dan
format linux/sh386.

NOTA UNTUK PS1/EXE
Ini ialah format boleh laku yang digunakan oleh Sony PlayStation (PSone), berasaskan Mips R3000
konsol permainan yang popular sejak akhir 90-an. Sokongan format ini sangat
serupa dengan Atari, kerana perasaan nostalgia salah seorang penulis.

Program yang dibungkus akan menjadi bait-sama dengan yang asal selepas penyahmampatan, sehingga seterusnya
notis.

Saiz maksimum tidak dimampatkan: ~1.89 / ~7.60 MiB.

Nota:

- UPX mencipta sebagai lalai boleh laku yang sesuai untuk Penguasaan CD
dan pemindahan konsol. Untuk boleh laku utama CD-Master anda juga boleh mencuba
pilihan khas "--boot-only" seperti yang diterangkan di bawah.
Telah dilaporkan bahawa boleh laku yang dibungkus upx serasi sepenuhnya dengan
Sony PlayStation 2 (PS2, PStwo) dan Sony PlayStation Portable (PSP) dalam
Mod emulasi Sony PlayStation (PSone).

- Biasanya fail yang dibungkus menggunakan kawasan memori yang sama seperti yang tidak dimampatkan
versi, jadi mereka tidak akan mengatasi kawasan memori lain semasa membongkar.
Jika ini tidak mungkin UPX akan membatalkan menunjukkan 'bertindih data yang dibungkus'
ralat. Dengan pilihan "--force" UPX akan menempatkan semula alamat pemuatan
untuk fail yang dibungkus, tetapi ini bukan masalah sebenar jika ia adalah satu atau
boleh laku utama.

Pilihan tambahan tersedia untuk format boleh laku ini:

--all-methods Mampatkan program beberapa kali, menggunakan semua
kaedah mampatan yang tersedia. Ini mungkin bertambah baik
nisbah mampatan dalam beberapa kes, tetapi biasanya
kaedah lalai memberikan hasil yang terbaik pula.

--8-bit Menggunakan pemampatan saiz 8 bit [lalai: 32 bit]

--8mib-ram PSone mempunyai 8 MiB ram tersedia [lalai: 2 MiB]

--boot-only Format ini adalah untuk bekas utama dan CD-Mastering sahaja!
Ia mungkin meningkatkan sedikit nisbah mampatan,
rutin penyahmampatan adalah lebih pantas daripada rutin lalai.
Tetapi ia tidak boleh digunakan untuk pemindahan konsol!

--no-align Pilihan ini melumpuhkan mod CD 2 format sektor data
penjajaran. Boleh meningkatkan sedikit nisbah mampatan,
tetapi boleh laku yang dimampatkan tidak akan boot daripada CD.
Gunakannya untuk pemindahan konsol sahaja!

NOTA UNTUK RTM32/PE and LENGAN/PE
Sama seperti win32/pe.

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

Pilihan tambahan tersedia untuk format boleh laku ini:

--all-methods Mampatkan program beberapa kali, menggunakan semua
kaedah mampatan yang tersedia. Ini mungkin bertambah baik
nisbah mampatan dalam beberapa kes, tetapi biasanya
kaedah lalai memberikan hasil yang terbaik pula.

--all-filters Mampatkan program beberapa kali, menggunakan semua
penapis prapemprosesan yang tersedia. Ini mungkin bertambah baik
nisbah mampatan dalam beberapa kes, tetapi biasanya
penapis lalai memberikan hasil yang terbaik.

NOTA UNTUK VMLINUZ/386
Format vmlinuz/386 dan bvmlinuz/386 mengambil kernel Linux boleh boot yang dimampatkan gzip
imej ("vmlinuz", "zImage", "bzImage"), gzip-nyahmampatkannya dan mampatkannya semula dengan UPX
kaedah mampatan.

vmlinuz/386 sama sekali tidak berkaitan dengan format boleh laku Linux yang lain, dan ia tidak
berkongsi apa-apa kelemahan mereka.

Nota:

- Pastikan "vmlinuz/386" atau "bvmlinuz/386" dipaparkan
semasa pemampatan - sebaliknya format boleh laku yang salah
mungkin telah digunakan, dan kernel tidak akan boot.

Kebaikan:

- Mampatan yang lebih baik (tetapi ambil perhatian bahawa kernel telah dimampatkan,
jadi peningkatan tidak sebesar format lain).
Namun, bait yang disimpan mungkin penting untuk keperluan khas seperti
cakera but.

Sebagai contoh, inilah yang saya dapat untuk kernel 2.2.16 saya:
1589708 vmlinux
641073 bzImej [asal]
560755 bzImage.upx [dimampatkan oleh "upx -9"]

- Penyahmampatan yang lebih cepat pada masa but kernel (tetapi kernel
kelajuan penyahmampatan sebenarnya tidak menjadi isu hari ini).

Kelemahan:

(Tiada)

Pilihan tambahan tersedia untuk format boleh laku ini:

--all-methods Mampatkan program beberapa kali, menggunakan semua
kaedah mampatan yang tersedia. Ini mungkin bertambah baik
nisbah mampatan dalam beberapa kes, tetapi biasanya
kaedah lalai memberikan hasil yang terbaik pula.

--all-filters Mampatkan program beberapa kali, menggunakan semua
penapis prapemprosesan yang tersedia. Ini mungkin bertambah baik
nisbah mampatan dalam beberapa kes, tetapi biasanya
penapis lalai memberikan hasil yang terbaik.

NOTA UNTUK WATCOM/LE
UPX telah berjaya diuji dengan pemanjang berikut:
DOS4G, DOS4GW, PMODE/W, DOS32a, CauseWay.
Pemanjang WDOS/X disokong sebahagiannya (untuk butiran
lihat fail pepijat BUGS).

DLL dan format LX tidak disokong.

Pilihan tambahan tersedia untuk format boleh laku ini:

--le Menghasilkan output LE tidak terikat dan bukannya
mengekalkan rintisan semasa.

NOTA UNTUK WIN32/PE
Sokongan PE dalam UPX agak stabil sekarang, tetapi mungkin masih ada
ketidakserasian dengan beberapa fail.

Kerana cara UPX (dan pembungkus lain untuk format ini) berfungsi, anda boleh melihat peningkatan
penggunaan memori fail termampat anda kerana keseluruhan program dimuatkan ke dalam memori di
memulakan. Jika anda memulakan beberapa contoh program termampat yang besar, anda akan membazirkan ingatan
kerana segmen biasa program tidak akan dikongsi merentas kejadian. Pada
sebaliknya jika anda hanya memampatkan program yang lebih kecil, atau menjalankan hanya satu contoh
program yang lebih besar, maka penalti ini lebih kecil, tetapi ia masih ada.

Jika anda menjalankan boleh laku daripada rangkaian, maka program yang dimampatkan akan dimuatkan dengan lebih cepat dan
memerlukan kurang lebar jalur semasa pelaksanaan.

DLL disokong. Tetapi DLL termampat UPX tidak boleh berkongsi data dan kod biasa apabila ia
telah digunakan oleh pelbagai aplikasi. Jadi memampatkan msvcrt.dll adalah satu pembaziran memori, tetapi
memampatkan pemalam dll bagi aplikasi tertentu mungkin idea yang lebih baik.

Screensaver disokong, dengan sekatan bahawa nama fail mesti berakhir dengan ".scr"
(kerana penyelamat skrin dikendalikan sedikit berbeza daripada fail exe biasa).

Fail PE termampat UPX mempunyai beberapa overhed memori kecil (biasanya dalam julat 10 - 30 KiB)
yang boleh dilihat dengan menentukan suis baris arahan "-i" semasa pemampatan.

Pilihan tambahan tersedia untuk format boleh laku ini:

--compress-exports=0 Jangan mampatkan bahagian eksport.
Gunakan ini jika anda bercadang untuk menjalankan termampat
program di bawah Wine.
--compress-exports=1 Mampatkan bahagian eksport. [LAILAI]
Pemampatan bahagian eksport boleh menambah baik
nisbah mampatan agak sedikit tetapi mungkin tidak berfungsi
dengan semua program (seperti winword.exe).
UPX tidak pernah memampatkan bahagian eksport DLL
tanpa mengira pilihan ini.

--compress-icons=0 Jangan mampatkan sebarang ikon.
--compress-icons=1 Mampatkan semua kecuali ikon pertama.
--compress-icons=2 Mampatkan semua ikon yang tiada dalam
direktori ikon pertama. [LAILAI]
--compress-icons=3 Mampatkan semua ikon.

--compress-resources=0 Jangan mampatkan sebarang sumber sama sekali.

--keep-resource=list Jangan mampatkan sumber yang ditentukan oleh senarai.
Ahli senarai dipisahkan dengan koma.
Seorang ahli senarai mempunyai format berikut: I .
saya ialah jenis sumber. Jenis standard
mesti dinyatakan sebagai nombor perpuluhan, jenis pengguna boleh
ditentukan oleh ID perpuluhan atau rentetan. saya adalah
pengecam sumber. Ia boleh menjadi nombor perpuluhan
atau rentetan. Sebagai contoh:

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

UPX tidak akan memampatkan sumber bitmap bernama "MYBITMAP",
ia meninggalkan setiap dialog (5) sumber tidak dimampatkan, dan
ia tidak akan menyentuh sumber jadual rentetan dengan pengecam
12345.

--paksa Paksa mampatan walaupun ada
nilai yang tidak dijangka dalam medan pengepala.
Gunakan dengan berhati-hati.

--strip-relocs=0 Jangan tanggalkan rekod penempatan semula.
--strip-relocs=1 Keluarkan rekod penempatan semula. [LAILAI]
Pilihan ini hanya berfungsi pada boleh laku dengan asas
alamat lebih besar atau sama dengan 0x400000. Biasanya yang
fail yang dimampatkan menjadi lebih kecil, tetapi beberapa fail
mungkin menjadi lebih besar. Ambil perhatian bahawa fail yang terhasil akan
tidak berfungsi di bawah Windows 3.x (Win32s).
UPX tidak pernah menanggalkan penempatan semula daripada DLL
tanpa mengira pilihan ini.

--all-methods Mampatkan program beberapa kali, menggunakan semua
kaedah mampatan yang tersedia. Ini mungkin bertambah baik
nisbah mampatan dalam beberapa kes, tetapi biasanya
kaedah lalai memberikan hasil yang terbaik pula.

--all-filters Mampatkan program beberapa kali, menggunakan semua
penapis prapemprosesan yang tersedia. Ini mungkin bertambah baik
nisbah mampatan dalam beberapa kes, tetapi biasanya
penapis lalai memberikan hasil yang terbaik.

DIAGNOSTIK


Status keluar biasanya 0; jika ralat berlaku, status keluar ialah 1. Jika amaran berlaku, keluar
status ialah 2.

UPXDiagnostik adalah bertujuan untuk menjelaskan sendiri.

Gunakan upx-ucl dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

Arahan Linux

Ad




×
Pengiklanan
❤ ️Beli, tempah atau beli di sini — tanpa kos, membantu memastikan perkhidmatan percuma.