🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.ibm.pc.programmer
Article #903

Re: How dows LZEXE work ???

#903
From: Warner Losh
Date: Mon, 09 Jul 1990 23:29
44 lines
2568 bytes
In article <4263@jato.Jpl.Nasa.Gov> baalke@mars.UUCP (Ron Baalke) writes:
>In article <9857@cs.utexas.edu> widman@cs.utexas.edu (Lawrence Widman) writes:
>>I've got a question...  I downloaded the program LZEXE from Compuserve, and
>        .
>        .
>        .
>>It even shrinks Turbo C ver 2.0 from 290K or so to about 160K.
>
>I've also tried LZEXE on Turbo C 2.0.  However, once you do this the
>TCINST no longer works, because it is apparently expects the configuration
>data to be in a specific spot in TC.EXE.  So, if you like the way TC is 
>configured, then go ahead and compress it with LZEXE (and keep a backup
>copy somewhere).  Otherwise, don't use LZEXE on Turbo C 2.0.

The reason for this is that the data doesn't exist in the same format
as it did before you lzexeed the file.  What lzexe does is to encode
the file using the Lempel-Zev compression algorithms (more or less)
and then placing a loader that knows how to expand the results at the
front of the file.  It also does relocation after it expands the file,
but I don't know[*] if MS-DOS does the expansion or not.  Nor do I
know if the LZ expander stays in memory or not after the program has
been exploded.  I have never seen the source to this beast.

TCINST works by reading in the data area of TC.EXE and poking new
values into the variables that control whatever it is that you are
changing.  When there is no data area that is recognizable (due to
compression), TCINST can't work.

One last thing, LZEXE does not work by "removing all that debugging
garbage".  Under DOS there is not standard debugging format, and most
programs that customers see don't have that info anyway.  However,
LZEXE proves useful on those programs none the less.

One last warning about LZEXE, it seems that most virus detection
programs can't find a virus inside an LZEXEed program.

Warner

[*] If you feel the need to flame my lack of knowledge, or my
uncertainty, please send me email.  There is enough noise in this
group already.
--
Warner Losh		imp@Solbourne.COM
Boycott Lotus.		#include <std/disclaimer>
Technical Details
Message-ID: <1990Jul9.232906.8904@Solbourne.COM>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rutgers!cs.utexas.edu!mailrus!ncar!boulder!stan!dancer!imp
References: <9857@cs.utexas.edu> <4263@jato.Jpl.Nasa.Gov>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rutgers!cs.utexas.edu!mailrus!ncar!boulder!stan!dancer!imp
From: imp@dancer.Solbourne.COM (Warner Losh)
Newsgroups: comp.sys.ibm.pc.programmer
Subject: Re: How dows LZEXE work ???
Message-ID: <1990Jul9.232906.8904@Solbourne.COM>
Date: 9 Jul 90 23:29:06 GMT
References: <9857@cs.utexas.edu> <4263@jato.Jpl.Nasa.Gov>
Sender: news@Solbourne.COM
Organization: Solbourne Computer, Inc.
Lines: 44