Board.KolibriOS.org

Official KolibriOS board
It is currently Sat Jun 06, 2020 5:46 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 103 posts ]  Go to page Previous 1 2 3 4 57 Next
Author Message
 Post subject:
PostPosted: Mon Feb 20, 2006 4:17 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Готова версия 1.0 для Windows, для Kolibri-версии немного подождите...
Основная модификация - добавлен алгоритм LZMA. Для справки: это основной алгоритм, используемый в архивах 7z.
Теперь пакует все лучше mxp*, в том числе free3d04 (для которого, кстати, нужен ключ /0) и docpak.
http://shade.msu.ru/~msu-se/mtappack.exe
http://shade.msu.ru/~msu-se/mtappack_src.rar


Top
   
 Post subject:
PostPosted: Mon Feb 20, 2006 4:53 pm 
Offline
Site Founder
User avatar

Joined: Sun Aug 08, 2004 8:55 am
Posts: 690
А как насчёт скорости распаковки? Ведь программы такого рода должны нен только хорошо запаковывать, но и быстро распаковывать.


Top
   
 Post subject:
PostPosted: Mon Feb 20, 2006 6:02 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
aPLib и LZMA (как и все LZ-based алгоритмы) характеризуются очень быстрой распаковкой.


Top
   
 Post subject:
PostPosted: Wed Feb 22, 2006 8:57 am 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Скачайте заново со ссылок выше Windows-версию - там есть пара небольших изменений.
Kolibri-версия:
http://shade.msu.ru/~msu-se/mtappack
http://shade.msu.ru/~msu-se/mtappack_kolibri_src.rar


Top
   
 Post subject:
PostPosted: Thu Feb 23, 2006 1:17 am 
diamond
Обнаружил такое ограничение - FASM упакованный MTAPPACK отказывается компилировать. На доске отладке пишет, что не хватает памяти.


Top
   
 Post subject:
PostPosted: Thu Feb 23, 2006 12:57 pm 
Offline

Joined: Wed May 25, 2005 8:52 am
Posts: 147
Вероятно, MTAPPACK выделяет распакованному FASM недостаточно памяти


Top
   
 Post subject:
PostPosted: Thu Feb 23, 2006 3:25 pm 
Offline
Site Founder
User avatar

Joined: Sun Aug 08, 2004 8:55 am
Posts: 690
А может дело в самом FASM'е?


Top
   
 Post subject:
PostPosted: Thu Feb 23, 2006 4:20 pm 
mike.dld
При упаковке MXP такой проблемы нету, по этому это глюк не фасм, а упаковщика.


Top
   
 Post subject:
PostPosted: Sun Feb 26, 2006 4:08 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Используйте ключ /0 Windows-версии, эквивалентный ключу -0 Kolibri-версии и флажку "force memory size increase".
Это увеличивает размер памяти, используемой приложением, но неинициализированные данные зануляются (без ключа в неинициализированных данных будет мусор). У других упаковщиков этого нет, поскольку они безусловно добавляют память.


Top
   
 Post subject:
PostPosted: Sun Feb 26, 2006 4:44 pm 
diamond
А несложно в Колибри версию добавить управляющих элементов для выбора параметров в графическом виде?


Top
   
 Post subject:
PostPosted: Sun Feb 26, 2006 6:04 pm 
Offline

Joined: Fri Nov 12, 2004 3:20 pm
Posts: 90
Да, действительно, после упаковки с помощью MXP программа требует примерно на 200-400 байт больше :)

Вот stub для MXP-LZO... У NRV почти такой же.
Code:
; ===========================================================================
;                      Menuet eXecutable Packer 0.10
; ===========================================================================
;    Coded by Ivan Poddubny
;    Based on picoLZO for C-- by Kai-Hong Chen
;
;    miniLZO -- mini subset of the LZO real-time data compression library
;
;    Markus F.X.J. Oberhumer
;    <markus@oberhumer.com>
;    http://www.oberhumer.com/opensource/lzo/
;
; ===========================================================================

; ===[ IDEA ]================================================================
;
; 1) copy [decompression routine + compressed program]
;      out of the original program memory area
; 2) decompress all the stuff RIGHT to the header (i.e. offset = 0x0)
; 3) set the new stack to [stack_ptr] from the restored header
; 4) free memory used by moved & compressed image, decompressor remains there
; 5) jump to [entry_point] from the decompressed header
;
; ===[ HEADER ]==============================================================

  use32
  org 0x0

  include "MACROS.INC"

                  db 'MENUET01'
  temp_value      dd 1
  entry_point     dd START
  file_size       dd 0     ; stub + compr
  memory_size     dd 0     ; stub + compr + oldmem + 0x1000
  stack_ptr       dd 0     ; stub + compr + oldmem + 0x1000
  param_area      dd 0     ; this stub doesn't use parameters
  tmp_area        dd 0     ; oldmem
  compr_size      dd 0


; ===[ CODE ]================================================================

START:
        xor     eax, eax

        mov     ecx, decompr_size
        mov     [eax], ecx
        add     ecx, [eax + compr_size]

        mov     esi, decompressor
        mov     edi, [eax + tmp_area]
        push    edi
        rep     movsb

        jmp     dword [esp]

decompressor:
        pop     esi
        add     esi, [eax]
        xor     edi, edi

        include "UNPACK.ASM"

        xor     eax, eax
        mov     esp, [eax + stack_ptr]

        mov     ecx, decompr_size
        add     ecx, [eax + memory_size]
        inc     eax                       ; eax equaled 0, now it contains  1
        xchg    eax, ebx                  ; ebx = 1
        mov     eax, 64                   ; eax = 64 - resize memory
        int     0x40

        ; 0x40 should return zero in eax
        jmp     [eax+entry_point]
decompr_size = $ - decompressor

compr_ptr:


Top
   
 Post subject:
PostPosted: Mon Feb 27, 2006 6:22 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Mario79
Каких параметров?
Иван Поддубный
Дополнительная память требуется не только для stub'а, но и для упакованных данных, а их обычно существенно больше, чем 200-400 байт


Top
   
 Post subject:
PostPosted: Mon Feb 27, 2006 7:11 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
[offtop]
Кстати о глюках fasm'a: Kolibri-версия при компиляции формата PE не записывает в файл MZ-заглушку (обнаружено при тестировании эмулятора на исходниках эмулятора)
[/offtop]


Top
   
 Post subject:
PostPosted: Mon Feb 27, 2006 7:14 pm 
diamond
А как ты думаешь - ведь неудобно запускать каждый раз из консоли твой упаковщик с параметром. Может быть, стоит для Колибри сделать выбор и в графическом виде.


Top
   
 Post subject:
PostPosted: Wed Mar 01, 2006 5:05 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Mario79
Так уже давно есть соответствующий флажок "force memory size increasing, zero uninit data"...


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 103 posts ]  Go to page Previous 1 2 3 4 57 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited