mirror of
https://github.com/upx/upx.git
synced 2024-11-30 16:11:08 +00:00
0dda83cbbc
committer: mfx <mfx> 1090577037 +0000
126 lines
2.6 KiB
Plaintext
126 lines
2.6 KiB
Plaintext
UPX TODO list. Last updated 2004-07-20.
|
|
|
|
|
|
IMPORTANT PROBLEMS THAT SHOULD BE FIXED SOON:
|
|
|
|
- stub ctojr32 needs CPU 486 because of bswap
|
|
|
|
|
|
OTHER:
|
|
|
|
- rewrite linker.cpp to allow arbitrary length section names
|
|
|
|
- check all <const_cast> to make sure they are not invalid
|
|
|
|
- throwNotCompressible() is not a real error, so make the output nicer
|
|
(info: bla bla). Also ui.cpp (total_*).
|
|
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
|
|
IMPROVED COMPRESSION RATIO
|
|
==========================
|
|
|
|
- experiment with new filters
|
|
|
|
- implement filters for dos/exe
|
|
|
|
- filters: could we exploit a f->firstcall info field ?
|
|
|
|
- for small programs (e.g. < 64k), try an additional algorithm
|
|
to see if it gives better compression
|
|
|
|
|
|
ALL FORMATS
|
|
===========
|
|
|
|
- more thoroughly test the exe-header in canPack()
|
|
and throw exceptions when encountering bad values.
|
|
|
|
- implement `--cpu=486' option to use bswap on the 32-bit formats
|
|
(if cpu >= 486)
|
|
|
|
- consider removing "or ebp,-1" when not needed
|
|
|
|
|
|
FORMAT DJGPP2/COFF
|
|
==================
|
|
|
|
- handle overlays
|
|
|
|
- fix default file extension handling when the --coff option is set
|
|
|
|
|
|
FORMAT DOS/EXE
|
|
==============
|
|
|
|
- implement filters
|
|
|
|
- add a check so that we don't pack djgpp1 binaries
|
|
|
|
|
|
FORMAT LINUX/386
|
|
================
|
|
|
|
- don't mmap() the temporary output file - this seems to improve
|
|
file io speed
|
|
|
|
|
|
FORMAT TMT/ADAM
|
|
===============
|
|
|
|
- the decompressors are already aligned, no need for an
|
|
extra alignment
|
|
|
|
|
|
FORMAT WATCOM/LE
|
|
================
|
|
|
|
- handle files without relocations
|
|
|
|
- the decompressors are already aligned, no need for an
|
|
extra alignment
|
|
|
|
- fix default file extension handling when the --le option is set
|
|
|
|
- handle holes in the file
|
|
|
|
- implement compressWithFilters()
|
|
|
|
- add a call to verifyOverlappingDecompression()
|
|
|
|
|
|
FORMAT WIN16/NE
|
|
===============
|
|
|
|
- implement readFileHeader() to correctly identify a win16/ne
|
|
executable, so that the call for contribution will get thrown
|
|
|
|
|
|
FORMAT WIN32/PE
|
|
===============
|
|
|
|
- fix the section alignment with the Intel compiler
|
|
|
|
- decrease runtime memory overhead
|
|
|
|
2 - easy - mfx + ml) new switch(es) : do not compress resource types x,y,z
|
|
or resource names a,b,c
|
|
|
|
3 - medium - ml) rebuild exports
|
|
|
|
3 - difficult) don't compress the BSS section and other holes.
|
|
|
|
4 - medium - ml) fix when objectalign < 0x1000
|
|
|
|
4 - easy - ml) put the original offset of moved resources somewhere into
|
|
the res.dir. (if it's safe to do)
|
|
|
|
4 - ??? - ml) fix FIXMEs
|
|
|
|
5 - medium - ml) try to put the preprocessed imports & relocs back to their
|
|
original section if possible. this could save some virtual memory
|
|
address space.
|
|
|