Jump to content
ankar84

UPX

Recommended Posts

29 минут назад, Dorik1972 сказал:

бинарник 2.0.15 в "уменьшенном" размере ....

dnscrypt-proxy2

Как уменьшали, если не секрет?

Share this post


Link to post
Share on other sites
19 минут назад, ankar84 сказал:

Как уменьшали, если не секрет?

"Ручками" :)

upx --lzma dnscrypt-proxy 

 

Share this post


Link to post
Share on other sites
17 минут назад, ankar84 сказал:

. Именно так поступает, насколько я понял,

 

 

В доке это более чем детально описано - https://github.com/jedisct1/dnscrypt-proxy/wiki/Load-Balancing-Options

+ для mipsel-"дохликов"

## On non-Intel CPUs such as MIPS routers and ARM systems (Android, Raspberry Pi...),                                                                   
## the following suite improves performance.                                                                                                            
## This may also help on Intel CPUs running 32-bit operating systems.                                                                                                                                                                                                                          
tls_cipher_suite = [52392, 49199] 

 

Edited by Dorik1972
  • Thanks 1

Share this post


Link to post
Share on other sites
4 минуты назад, ankar84 сказал:

@zyxmon @Александр Рыжов может быть имеет смысл добавить сжатие сразу в пакет?

Да не .. если быть более точным - то добавить пакет upx-ucl - https://github.com/upx/upx/tree/master/src , чтоб можно было сжимать любые бинарники "под себя" , на dnscrypt-proxy свет клином не сошелся ....

  • Upvote 1

Share this post


Link to post
Share on other sites
20 минут назад, ankar84 сказал:

Как уменьшали, если не секрет?

Вопрос что сам файл или рабочий размер

переименовал в ...-mini

620 root      649m S    dnscrypt-proxy2-mini -config /opt/etc/dnscrypt-proxy.toml

/proc/620 # cd /opt/sbin
/opt/sbin # ls -l | grep mini
-rwxr-xr-x    1 root     root       1740880 Jun  9 09:38 dnscrypt-proxy2-mini
/opt/sbin # 
/proc/620 # cat status
Name:   dnscrypt-proxy2
State:  S (sleeping)
Tgid:   620
Pid:    620
PPid:   1
TracerPid:      0
Uid:    0       0       0       0
Gid:    0       0       0       0
FDSize: 32
Groups: 
VmPeak:   664936 kB
VmSize:   664936 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:      9156 kB
VmRSS:      8964 kB
VmData:   664800 kB
VmStk:       136 kB
VmExe:      1700 kB
VmLib:  4294965596 kB
VmPTE:        28 kB
VmSwap:        0 kB
Threads:        9
...
Cpus_allowed:   3
Cpus_allowed_list:      0-1
voluntary_ctxt_switches:        17
nonvoluntary_ctxt_switches:     3231
/proc/620 # 

и тот который 2014

 581 root      650m S    dnscrypt-proxy -config /opt/etc/dnscrypt-proxy.toml

/proc/581 # cat status
Name:   dnscrypt-proxy
State:  S (sleeping)
Tgid:   581
Pid:    581
PPid:   1
TracerPid:      0
Uid:    0       0       0       0
Gid:    0       0       0       0
FDSize: 32
Groups: 
VmPeak:   665708 kB
VmSize:   665708 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:     10276 kB
VmRSS:      7352 kB
VmData:   658204 kB
VmStk:       136 kB
VmExe:      4232 kB
VmLib:         0 kB
VmPTE:        36 kB
VmSwap:        0 kB
Threads:        9
...
Cpus_allowed:   3
Cpus_allowed_list:      0-1
voluntary_ctxt_switches:        20
nonvoluntary_ctxt_switches:     327
/proc/581 # 

 

Share this post


Link to post
Share on other sites
8 минут назад, ankar84 сказал:

@zyxmon @Александр Рыжов может быть имеет смысл добавить сжатие сразу в пакет?

Вопрос по времени запуска сразу плюсом раза в ДВА по отношению к обычному 2014

Share this post


Link to post
Share on other sites
5 минут назад, vasek00 сказал:

Вопрос по времени запуска сразу плюсом раза в ДВА по отношению к обычному 2014

Тогда, видимо, лучше оставить все как есть. А кто желает, пусть сжимает самостоятельно.

Share this post


Link to post
Share on other sites
8 минут назад, vasek00 сказал:

Вопрос по времени запуска сразу плюсом раза в ДВА по отношению к обычному 2014

Какого времени ?... К чему те "выкладки" в предыдущем посте ? Я , например, читаю доку , а она по upx пишет следующее

Цитата


Programs and libraries compressed by UPX are completely self-contained
and run exactly as before, with no runtime or memory penalty for most
of the supported formats.

Переведете сами? "Сжатый" размер бинарника позволяет в разы экономить место , если система у вас на флешке ....

Share this post


Link to post
Share on other sites
21 минуту назад, ankar84 сказал:

@zyxmon @Александр Рыжов может быть имеет смысл добавить сжатие сразу в пакет?

Иногда upx ломает бинарники. А выполнять для GO-бинарников strip очень не рекомендуется.

  • Upvote 1

Share this post


Link to post
Share on other sites
3 минуты назад, Dorik1972 сказал:

Переведете сами? "Сжатый" размер бинарника позволяет в разы экономить место , если система у вас на флешке ....

Во флеше и так всё сжато squashfs. Кроме выкидывания ненужный секций кода ничего дополнительно сжимать не надо.

Share this post


Link to post
Share on other sites
Только что, Dorik1972 сказал:

Какого времени ?... К чему те "выкладки" в предыдущем посте ? Я , например, читаю доку , а она по upx пишет следующее

Переведете сами? "Сжатый" размер бинарника позволяет в разы экономить место , если система у вас на флешке ....

Какие вкладки - запустите один и другой с секундомером если хотите и проверьте время на запуск.

Скрытый текст

/ # cd /opt/sbin
/opt/sbin # ls -l | grep dnscrypt
-rwxr-xr-x    1 root     root       7640448 Jun  1 10:08 dnscrypt-proxy
-rwxr-xr-x    1 root     root       6663520 Jan 30 18:48 dnscrypt-proxy-2
-rwxr-xr-x    1 root     root       7126368 Mar 22 22:48 dnscrypt-proxy2
-rwxr-xr-x    1 root     root       1740880 Jun  9 09:38 dnscrypt-proxy2-mini
/opt/sbin # ./dnscrypt-proxy2-mini -version
2.0.15
/opt/sbin # ./dnscrypt-proxy -version
2.0.14
/opt/sbin #

Про место понятно экономить, вопрос только зачем если тольео не запихнкть это все в роутер.

Share this post


Link to post
Share on other sites
2 минуты назад, Александр Рыжов сказал:

Иногда upx ломает бинарники. А выполнять для GO-бинарников strip очень не рекомендуется.

А иногда не "ломает" ... :) и ? А кто сказал что upx надо только чтоб "давить" бинарники на GO? ... Речь же было о ВОЗМОЖНОСТИ добавить upx в список доступных к установке пакетов ... или ?

Share this post


Link to post
Share on other sites
5 минут назад, Dorik1972 сказал:

К чему те "выкладки" в предыдущем посте ?

Как то не внимательно смотрите или просто выборочно

2015

VmPeak:   664936 kB
VmSize:   664936 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:      9156 kB
VmRSS:      8964 kB
VmData:   664800 kB
VmStk:       136 kB
VmExe:      1700 kB
VmLib:  4294965596 kB
VmPTE:        28 kB
VmSwap:        0 kB
Threads:        9

2014

VmPeak:   665708 kB
VmSize:   665708 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:     10276 kB
VmRSS:      7352 kB
VmData:   658204 kB
VmStk:       136 kB
VmExe:      4232 kB
VmLib:         0 kB
VmPTE:        36 kB
VmSwap:        0 kB
Threads:        9

Share this post


Link to post
Share on other sites
3 минуты назад, vasek00 сказал:

Какие вкладки - запустите один и другой с секундомером если хотите и проверьте время на запуск.

  Показать содержимое

/ # cd /opt/sbin
/opt/sbin # ls -l | grep dnscrypt
-rwxr-xr-x    1 root     root       7640448 Jun  1 10:08 dnscrypt-proxy
-rwxr-xr-x    1 root     root       6663520 Jan 30 18:48 dnscrypt-proxy-2
-rwxr-xr-x    1 root     root       7126368 Mar 22 22:48 dnscrypt-proxy2
-rwxr-xr-x    1 root     root       1740880 Jun  9 09:38 dnscrypt-proxy2-mini
/opt/sbin # ./dnscrypt-proxy2-mini -version
2.0.15
/opt/sbin # ./dnscrypt-proxy -version
2.0.14
/opt/sbin #

 

Лично у меня сей бинарник ОДИН раз стартует , при старте роутера .... а сие бывает раз в неделю после обновления драфта .. не чаще .... Вот ... А с СЕКУНДОМЕРОМ , Вы разницу 100% не выловите .... и не вкладки , а - ВЫКЛАДКИ - о "mini" и "тот который 2014"? В чем информативность поста того?

 

Share this post


Link to post
Share on other sites
12 минуты назад, Александр Рыжов сказал:

Во флеше и так всё сжато squashfs. Кроме выкидывания ненужный секций кода ничего дополнительно сжимать не надо.

Та я об USB-флешке :)

Share this post


Link to post
Share on other sites
19 минут назад, Dorik1972 сказал:

Лично у меня сей бинарник ОДИН раз стартует , при старте роутера .... а сие бывает раз в неделю после обновления драфта .. не чаще .... Вот ... А с СЕКУНДОМЕРОМ , Вы разницу 100% не выловите .... и не вкладки , а - ВЫКЛАДКИ - о "mini" и "тот который 2014"? В чем информативность поста того?

Тогда ВООБЩЕ смысл в чем - если в памяти ОДНО и то же место. При использовании USB flash вообще смешно, пример стоит старенькая USB2 с 1GB в настоящие время 4GB стоят "копейки". Разницу увидел без СЕКУНДОМЕРА если бы не видел то не писал бы.

Информативность того поста видимо наверное тогда не для вас уж извините, возможно поможет другим.

Share this post


Link to post
Share on other sites
1 час назад, Dorik1972 сказал:

Речь же было о ВОЗМОЖНОСТИ добавить upx в список доступных к установке пакетов

Это лучше сделать вот тут через Package Request

Share this post


Link to post
Share on other sites
3 часа назад, Dorik1972 сказал:

Речь же было о ВОЗМОЖНОСТИ добавить upx в список доступных к установке пакетов

Можно дать upx второй шанс, с новым окружением. Прежний был выкинут из репозитория по указанной причине.

Share this post


Link to post
Share on other sites
Скрытый текст

 


~ # upx.out -h
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2017
UPX 3.94        Markus Oberhumer, Laszlo Molnar & John Reiser   May 12th 2017

Usage: upx.out [-123456789dlthVL] [-qvfk] [-o file] file..

Commands:
  -1     compress faster                   -9    compress better
  --best compress best (can be slow for big files)
  -d     decompress                        -l    list compressed file
  -t     test compressed file              -V    display version number
  -h     give this help                    -L    display software license

Options:
  -q     be quiet                          -v    be verbose
  -oFILE write output to 'FILE'
  -f     force compression of suspicious files
  --no-color, --mono, --color, --no-progress   change look

Compression tuning options:
  --brute             try all available compression methods & filters [slow]
  --ultra-brute       try even more compression variants [very slow]

Backup options:
  -k, --backup        keep backup files
  --no-backup         no backup files [default]

Overlay options:
  --overlay=copy      copy any extra data attached to the file [default]
  --overlay=strip     strip any extra data attached to the file [DANGEROUS]
  --overlay=skip      don't compress a file with an overlay

Options for djgpp2/coff:
  --coff              produce COFF output [default: EXE]

Options for dos/com:
  --8086              make compressed com work on any 8086

Options for dos/exe:
  --8086              make compressed exe work on any 8086
  --no-reloc          put no relocations in to the exe header

Options for dos/sys:
  --8086              make compressed sys work on any 8086

Options for ps1/exe:
  --8-bit             uses 8 bit size compression [default: 32 bit]
  --8mib-ram          8 megabyte memory limit [default: 2 MiB]
  --boot-only         disables client/host transfer compatibility
  --no-align          don't align to 2048 bytes [enables: --console-run]

Options for watcom/le:
  --le                produce LE output [default: EXE]

Options for win32/pe, win64/pe, rtm32/pe & arm/pe:
  --compress-exports=0    do not compress the export section
  --compress-exports=1    compress the export section [default]
  --compress-icons=0      do not compress any icons
  --compress-icons=1      compress all but the first icon
  --compress-icons=2      compress all but the first icon directory [default]
  --compress-icons=3      compress all icons
  --compress-resources=0  do not compress any resources at all
  --keep-resource=list    do not compress resources specified by list
  --strip-relocs=0        do not strip relocations
  --strip-relocs=1        strip relocations [default]

Options for linux/elf:
  --preserve-build-id     copy .gnu.note.build-id to compressed output

file..   executables to (de)compress

This version supports:
    amd64-darwin.macho                   macho/amd64
    amd64-linux.elf                      linux/amd64
    amd64-linux.kernel.vmlinux           vmlinux/amd64
    amd64-win64.pe                       win64/pe
    arm-darwin.macho                     macho/arm
    arm-linux.elf                        linux/arm
    arm-linux.kernel.vmlinux             vmlinux/arm
    arm-linux.kernel.vmlinuz             vmlinuz/arm
    arm-wince.pe                         arm/pe
    arm64-linux.elf                      linux/arm64
    armeb-linux.elf                      linux/armeb
    armeb-linux.kernel.vmlinux           vmlinux/armeb
    fat-darwin.macho                     macho/fat
    i086-dos16.com                       dos/com
    i086-dos16.exe                       dos/exe
    i086-dos16.sys                       dos/sys
    i386-bsd.elf.execve                  bsd.exec/i386
    i386-darwin.macho                    macho/i386
    i386-dos32.djgpp2.coff               djgpp2/coff
    i386-dos32.tmt.adam                  tmt/adam
    i386-dos32.watcom.le                 watcom/le
    i386-freebsd.elf                     freebsd/i386
    i386-linux.elf                       linux/i386
    i386-linux.elf.execve                linux.exec/i386
    i386-linux.elf.shell                 linux.sh/i386
    i386-linux.kernel.bvmlinuz           bvmlinuz/i386
    i386-linux.kernel.vmlinux            vmlinux/i386
    i386-linux.kernel.vmlinuz            vmlinuz/i386
    i386-netbsd.elf                      netbsd/i386
    i386-openbsd.elf                     openbsd/i386
    i386-win32.pe                        win32/pe
    m68k-atari.tos                       atari/tos
    mips-linux.elf                       linux/mips
    mipsel-linux.elf                     linux/mipsel
    mipsel.r3000-ps1                     ps1/exe
    powerpc-darwin.macho                 macho/ppc32
    powerpc-linux.elf                    linux/ppc32
    powerpc-linux.kernel.vmlinux         vmlinux/ppc32
    powerpc64le-darwin.macho             macho/ppc64le
    powerpc64le-linux.elf                linux/ppc64le
    powerpc64le-linux.kernel.vmlinux     vmlinux/ppc64le

UPX comes with ABSOLUTELY NO WARRANTY; for details visit https://upx.github.io

~ # 
~ # upx.out -9 -o /opt/bin/busybox-upx /opt/bin/busybox 
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2017
UPX 3.94        Markus Oberhumer, Laszlo Molnar & John Reiser   May 12th 2017

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
    605484 ->    340092   56.17%  linux/mipsel   busybox-upx                   

Packed 1 file.
~ # 
~ # ls -al /opt/bin/busy*
-rwxr-xr-x    1 admin    admin       605484 May 13 17:20 /opt/bin/busybox
-rwxr-xr-x    1 admin    admin       340092 May 13 17:20 /opt/bin/busybox-upx
~ # 

пробуйте-тестируйте )))

upx_3.94-1_mipsel-3.4.ipk

  • Upvote 2

Share this post


Link to post
Share on other sites
46 минут назад, TheBB сказал:
  Показать содержимое

 



~ # upx.out -h
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2017
UPX 3.94        Markus Oberhumer, Laszlo Molnar & John Reiser   May 12th 2017

Usage: upx.out [-123456789dlthVL] [-qvfk] [-o file] file..

Commands:
  -1     compress faster                   -9    compress better
  --best compress best (can be slow for big files)
  -d     decompress                        -l    list compressed file
  -t     test compressed file              -V    display version number
  -h     give this help                    -L    display software license

Options:
  -q     be quiet                          -v    be verbose
  -oFILE write output to 'FILE'
  -f     force compression of suspicious files
  --no-color, --mono, --color, --no-progress   change look

Compression tuning options:
  --brute             try all available compression methods & filters [slow]
  --ultra-brute       try even more compression variants [very slow]

Backup options:
  -k, --backup        keep backup files
  --no-backup         no backup files [default]

Overlay options:
  --overlay=copy      copy any extra data attached to the file [default]
  --overlay=strip     strip any extra data attached to the file [DANGEROUS]
  --overlay=skip      don't compress a file with an overlay

Options for djgpp2/coff:
  --coff              produce COFF output [default: EXE]

Options for dos/com:
  --8086              make compressed com work on any 8086

Options for dos/exe:
  --8086              make compressed exe work on any 8086
  --no-reloc          put no relocations in to the exe header

Options for dos/sys:
  --8086              make compressed sys work on any 8086

Options for ps1/exe:
  --8-bit             uses 8 bit size compression [default: 32 bit]
  --8mib-ram          8 megabyte memory limit [default: 2 MiB]
  --boot-only         disables client/host transfer compatibility
  --no-align          don't align to 2048 bytes [enables: --console-run]

Options for watcom/le:
  --le                produce LE output [default: EXE]

Options for win32/pe, win64/pe, rtm32/pe & arm/pe:
  --compress-exports=0    do not compress the export section
  --compress-exports=1    compress the export section [default]
  --compress-icons=0      do not compress any icons
  --compress-icons=1      compress all but the first icon
  --compress-icons=2      compress all but the first icon directory [default]
  --compress-icons=3      compress all icons
  --compress-resources=0  do not compress any resources at all
  --keep-resource=list    do not compress resources specified by list
  --strip-relocs=0        do not strip relocations
  --strip-relocs=1        strip relocations [default]

Options for linux/elf:
  --preserve-build-id     copy .gnu.note.build-id to compressed output

file..   executables to (de)compress

This version supports:
    amd64-darwin.macho                   macho/amd64
    amd64-linux.elf                      linux/amd64
    amd64-linux.kernel.vmlinux           vmlinux/amd64
    amd64-win64.pe                       win64/pe
    arm-darwin.macho                     macho/arm
    arm-linux.elf                        linux/arm
    arm-linux.kernel.vmlinux             vmlinux/arm
    arm-linux.kernel.vmlinuz             vmlinuz/arm
    arm-wince.pe                         arm/pe
    arm64-linux.elf                      linux/arm64
    armeb-linux.elf                      linux/armeb
    armeb-linux.kernel.vmlinux           vmlinux/armeb
    fat-darwin.macho                     macho/fat
    i086-dos16.com                       dos/com
    i086-dos16.exe                       dos/exe
    i086-dos16.sys                       dos/sys
    i386-bsd.elf.execve                  bsd.exec/i386
    i386-darwin.macho                    macho/i386
    i386-dos32.djgpp2.coff               djgpp2/coff
    i386-dos32.tmt.adam                  tmt/adam
    i386-dos32.watcom.le                 watcom/le
    i386-freebsd.elf                     freebsd/i386
    i386-linux.elf                       linux/i386
    i386-linux.elf.execve                linux.exec/i386
    i386-linux.elf.shell                 linux.sh/i386
    i386-linux.kernel.bvmlinuz           bvmlinuz/i386
    i386-linux.kernel.vmlinux            vmlinux/i386
    i386-linux.kernel.vmlinuz            vmlinuz/i386
    i386-netbsd.elf                      netbsd/i386
    i386-openbsd.elf                     openbsd/i386
    i386-win32.pe                        win32/pe
    m68k-atari.tos                       atari/tos
    mips-linux.elf                       linux/mips
    mipsel-linux.elf                     linux/mipsel
    mipsel.r3000-ps1                     ps1/exe
    powerpc-darwin.macho                 macho/ppc32
    powerpc-linux.elf                    linux/ppc32
    powerpc-linux.kernel.vmlinux         vmlinux/ppc32
    powerpc64le-darwin.macho             macho/ppc64le
    powerpc64le-linux.elf                linux/ppc64le
    powerpc64le-linux.kernel.vmlinux     vmlinux/ppc64le

UPX comes with ABSOLUTELY NO WARRANTY; for details visit https://upx.github.io

~ # 

пробуйте-тестируйте )))

upx_3.94-1_mipsel-3.4.ipk

СПАСИБО !

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...