Tom's Guide | Tom's Hardware | Tom's Games
![]() |
![]() |
![]() |
Name: Leo the 28C (by Sulfurik)
Hello everyone! :D
I want to know if there's a program like UPX (Ultimate Packer for eXecutables) for .NET executables? I mean, something to make them smaller? I added a picture to a 48MB EXE and it went to 60MB when the picture was only 15.2KB...
Thanks! ;)http://www.boredsource.com/sulfurik/
http://tsfc.ath.cx
ftp://tsfc.ath.cx
hotline://tsfc.ath.cxGiving out blank CD's in my FTP server! :D

===============================================================
A Windows executable is a Windows executable. That has not changed since the advent of Windows x-exe format with Windows 3.01. What makes Windows apps differ from each other are the libraries that support them. Unless they decided to do something different with the .NET framework (which I have heard nothing about) then you are still dealing with just another Windows executable.John W. Borelli
IT Specialist
Hawkeye Security
borelli35

No, .NET is different, it's "intermediate" code or something like that... it's not just a standard Windows executable... :P
Thanks! ;)http://www.boredsource.com/sulfurik/
http://tsfc.ath.cx
ftp://tsfc.ath.cx
hotline://tsfc.ath.cxGiving out blank CD's in my FTP server! :D

Sulfurik is right .Net is not a standered exe its a intermediate code that can run on any plateform if that plateform has .net clr(Common Language Runtime).

===============================================================
In that case, is there any reference on the differences in executables or as it is termed here; intermediate code? I would love to examine and learn more about it. (I just can't stand not to know something like this...) :-)John W. Borelli
IT Specialist
Hawkeye Security
borelli35

Yeah, here's a description on CLR: ;)
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/theshow/Episode020/default.asp
I'd also like to tell you that if you get Mono on Linux, Mac OS X and some other platforms, then you can also run CLR EXE's there! :D
Thanks! ;)http://www.boredsource.com/sulfurik/
http://tsfc.ath.cx
ftp://tsfc.ath.cx
hotline://tsfc.ath.cxGiving out blank CD's in my FTP server! :D

Last I checked, all UPX does is compress the binary and decompress it before it's executed. There is a similar tool for .NET called .NETZ.
.NET executables are generally PE binaries. You could very well put ".DLL" or ".EXE" as the extension, but it doesn't change the format or contents. However, you do specify to the compiler what packaging to use (ex. /t:exe).
You can learn a little more about PE from the Wikipedia article (I actually wrote most of it).
If you want technical details on the .NET runtime, MSDN magazine had an article on CLR internals recently. An easier to chew description is in this Powerpoint {1.67MB). The best source is the EMCA CLI specification, but it's hefty.

Actually, UPX and other true executable compressors compress the portions of the native image that can be compressed without side effects. Also substantial restructuring of the physical image is done. At runtime, the image is decompressed and reconstructed in memory.
NETZ does something different. In compresses the ENTIRE image of the .NET Portable Executable. Read: It doesn't modify the physical image and add a decompression stub like UPX and other true executable packers. It then attaches the compressed image to a STUB. This stub is a whole different image that has some resources from the .NET executable copied to it. At runtime the stub decompresses the entire image of the original .NET PE and invokes it using .NET's ability to load and invoke PE image from memory.
These two methods are completely different in implementation.
Jeremy

Hmm... I thought I'd answered this post already... O_O Sorry for late reply! No, but, I used .NETZ, and it compresses the file, but the compressed file + the zip.dll file is alot bigger than just the decompressed file... :S
Thanks! ;)http://www.boredsource.com/sulfurik/
http://tsfc.ath.cx
ftp://tsfc.ath.cx
hotline://tsfc.ath.cxRuffle Mayo says ROFLMAO! :D

Use .NETZ only for applications bigger than 150KB.
Read more at http://www.st.informatik.tu-darmstadt.de/static/staff/Cepa/tools/netz/examples.html

"Use .NETZ only for applications bigger than 150KB."
Exactly.
Thanks! ;)http://www.boredsource.com/sulfurik/
http://tsfc.ath.cx
ftp://tsfc.ath.cx
hotline://tsfc.ath.cxRuffle Mayo says ROFLMAO! :D

![]() |
VB Data/Read Command?
|
VB Listview Problem
|

This post is quite old and has been locked from receiving new replies. Please create a new posting instead.
| Ads by Google |