Timo Kinnunen
Särkiniementie 16 A 41
70700 Kuopio
Finland

Klikkaa tästä palataksesi takaisin Timon Serverimaailma etusivulle - Click here to return back to the front page of Timos' Serverimaailma homesite

Klikkaa tästä palataksesi takaisin sivulle Tietoo - Click this link to Return back to the page of Information

Klikkaa tästä palataksesi takaisin Timon suomenkielisten DOS -ja OS/2 -oppaiden valintasivulle Click this link to Return back to The Page of Timo's Finnish DOS and OS/2 manuals

Johdanto

Tässä esiteltävän sovelluksen, ja sen apusovellusten tekijät kielsivät aikanaan niiden asennusarkistotiedostoon mukaan liittämiensä oheistekstien suomentamisen, ja kaikenlaisen niissä olevan tiedon levittämisen kaikissa mahdollisissa muodoissa. Kerrassaan merkillistä? Kuitenkin tästä on jo kulunut aikaa, ja kehitys on kehittynyt. Eivät DOS – tai myöskään Windowsin varhaisemmat versiot omaa enää järjestelminä yleistä merkitystä, tai kaupallista painoarvoa - ja saattaa olla, ettei PKlite -sovellusta edes saa enää juuri mistään. Mutta tieto siitä kannattaa säilyttää jälkipolvillekin, koska sillä käsitellyt sovellukset saattavat vieläkin aiheuttaa ongelmia. Minusta tällaistakin tietoa pitää olla vapaasti saatavilla suomenkielellä, ja vieläpä mahdollisimman yksinkertaisessa muodossa. Tästä syystä tein tämän oppaan "kerran vielä kiellon päälle" -periaatteella. Olen toteuttanut tämän oppaan siten, että kyseessä ei ole raaka käännös mistään erityisestä tekstimateriaalista, vaan puhdas synteesi. Esimerkiksi ohjelman optioista saa tietoja kuka tahansa käynnistämällä ohjelman ilman mitään optioita, ja työ opettaa siitä edelleen.

PKlite -sovellus on tullut tänä päivänä ajankohtaiseksi siksi, että sitä voidaan käyttää myös väärin. En usko, että esimerkiksi F-PROT 3.03 täysin turhaan sisältää ominaisuuden, jolla PKlite -sovelluksella luotu tiivistetty ohjelmatiedosto voidaan avata lennossa, ja tutkia sen sisältämiä mahdollisia virusviestejä. Pklite ei itsessään sisällä tällaisia, mutta viruskoodi voidaan "tartuttaa" johonkin tiivistämättömään sovellukseen, ja sitten tiivistää se, ja peittää näin näkyvistä viruksen aiheuttamat viestit. Virusohjelmien kirjoittajat ovat aivan yhtä turhamaisia kuin graffitien tekijät, ja haluavat esittää tavalla tai toisella uhreilleen sen, kuka oikeastaan oli asiassa hihat heilumassa. Tästä syystä ei ole sellaista virusohjelmaa, joka ei sisältäisi jonkinlaista "hähää -sainpas sinut" -viestiä. Virusohjelmien tekijöiden "iskun" vaikutukset suuntautuvat voimakkaimmin aina viattomiin ja varattomiin ihmisiin, jotka ehkä enimmin ovat imuroimassa ilmaisia työvälineitä Internetistä, jossa myös viruksia tarjoillaan täkysovellusten kautta. Sama yhteiskunnallisen epäoikeudenmukaisuuden prisiippi pätee myös tapauksessa, jossa vaikkapa yleinen puhelinkoppi ilkeyksissään särjetään: eiväthän sitä käytä tavallisesti muut kuin köyhät opiskelijat, ja laitapuolen kulkijat, ja ne, joiden lompakko mahtuu rullalle käärittynä vaivatta vaikka pienestä avaimenreiästä. Yksikään suuri ohjelmatalo ei ole kaatunut vielä viruksiin - eivätkä ne tule sitä koskaan tekemäänkään. Ja miten paljon täysin turhaa työtä tässä kaikessa on tehty? Ehdottaisinkin, että aina kun joku saadaan kiinni, hänet lähetetään muutamaksi kuukaudeksi äkeään risusavottaan, tai asettelemaan ympyriäisiä kiviä kauniisti järviemme saarien rannoille noin ikään kuin tienoon kaunistukseksi. Näin näistä voisi saada vielä jonkinlaisen hyödynmurusen ennenkuin heille käy samoin kuin Isolyömä-Sutiselle elämänsä ehtoopuolella eräällä hämärällä Tukholman kujasella. Internetissä saatavissa oleviin "ratkaisuihin" kannattaa aina suhtautua hieman epäillen, ja erityisesti kaikkiin sellaisiin sovelluksiin, jotka toimivat DOS -komentokehoiteesta, ja joiden tekijästä tai alkuperästä ei ole saatavissa tietoja. Joka tapauksessa myös PKlite soveltuu sellaisten ohjelmien tiivistämiseen, joihin on istutettu tahallaan jokin tietokonevirus, mutta sellaisia operaatioita kykenevät tekemään myös eräät muut vastaavat sovellukset.

DOS -pohjainen PKlite (R) 2.01 ohjelma on tarkoitettu tiivistämään sekä DOS -ohjelmatiedostoja (.EXE, .COM, .DRV ja .SYS) -että myös 16-bittisiä Windows -sovelluksia (.EXE, .DLL ja .DRV) niin, että niitä voidaan ajaa normaalisti vaikka niiden fyysistä kokoa on typistetty. Kuitenkaan niitä Windows -tiedostoja, joita on tällä tavoin käsitelty, ei voida enää palauttaa alkuperäiseen kokoonsa. PKLITE 2.01 kykenee siis käsittelemään myös 16-bittisiä Windows -sovelluksia, ja siihen on myös lisätty kyky määrittää Windowsin resursseja, kuten kuvakkeita, dialogiboxeja, ja muita bittikarttoja. Koska sovelluksella on tällaisia piirteitä, se kykenee tunistamaan automaattisesti sen, onko käsiteltävänä oleva EXE -tiedosto DOS -tai Windows -sovellus. Tätä versiota edeltänyt PKlite 1.15 pystyi tiivistämään sellaisia EXE -tiedostoja, joiden "Relocation" -taulun koko oli 32,000 - ja aikaisemmmat versiot pystyivät käsittelemään suunilleen puolta pienempää talua. Tällaisen järjestelyn tarkoituksena on saavuttaa joustavampi sovelluksen muistinhallinta - eli ohjelman komponenttien latautuminen tiettyihin muistiosoitteisiin voi sovittautua vallitseviin olosuhteisiin, ja muistia ei varata mekaanisesti saman tapaan kuin COM -sovellus tekee. Tällainen taulurakenne on vain EXE -tiedostoissa, ja COM -tiedostoista se puuttuu kokonaan - ja samalla "aidon" COM -tiedoston koko voi maksimissaan olla 64-kilotavua. Kun PKlite 1.15 -sovellusta käytetään "extra" -tiivistysasteella, se kirjoittaa käsiteltävän tiedoston alkuun kirjaimet "PK" (50, 4B hex) osoiteeseen '5C hex'. Mikäli tämä signatuuri poistetaan, ei käsitelty sovellus toimi.

PKlite ja PKlite Professional

PKlite ja PKlite Professional ovat kummatkin tarkoitettuja tiivistämään sekä DOS -että Windows -sovelluksia. Jälkimmäisessä tapauksessa käytettävissä on paljon enemmän optioita, ja voidaan tuottaa mm. sellaisia ohjelmatiedostoja, joita ei enää voida palauttaa alkuperäiseen kokoonsa. Tiivistettyjen ohjelmatiedostojen käytön kautta voidaan saavuttaa tiettyä etua, jos levytilaa on käytettävissä niukalti, koska säästö siinä voi olla keskimäärin 45%. Nykyisin, kun suuret kiintolevyt ovat halpoja, ei sovellusten tiivistämisellä saavuteta enää merkittäviä etuja, ja tavallisen tietokoneenkäyttäjän pitäisi sellaisesta luopua. Kuitenkaan tiivistettujä tiedostoja ei voida koskaan kokonaan välttää. Useimmat Microsoftin käyttöjärjestelmien tiedostoista on ainakin lievästi tiivistetty, ja samoin melkein kaikki sovellusten asentamiseen Internetin kautta saatavat asennusarkistot on puristettu kokoon, ja tällaisia ovat myös kabinettitiedostot (CAB), joita Microsoftin sovellusten asennuksissa paljoltikin käytetään. Viimeksimainittujen purkua varten Windows 95 sisältää komentoriviltä toimivat Extraxt -ohjelman. On kuitenkin vieläkin tapauksia, joissa DOS -sovelluksen tiivistys kannattaa vieläkin - ja sellainen on esimerkiksi ns. "elektroninen kirja" -eli sellainen DOS -sovellus, joka käynnistyy tavallisen ohjelman tapaan, ja jossa on sisällysluettelo, josta pääsee siirtymään tiedostossa oleviin alalukuihin. Tällaisten luomiseen sopii esimerkisi Bigtext -sovellus. Kun sillä luodaan tällainen "kirja", on pohjana tavallinen ASCII -tiedosto, jonka koko voi olla useita satoja kilotavuja - ja kun siihen lisätään käynnistävä ohjelmaosio, on tiedoston koko vieläkin suurempi. Tällaisen tiedoston koon pienentämiseen siedettäväksi PKlite sopii mainiosti, ja samalla paranee sovelluksen latautumisnopeus. Joissakin tapauksissa ohjelmatiedostojen lataututuminen on tiivistettyinä selvästi nopeampaa, koska levyltä luku tapahtuu nopeammin -eli tavoitusaika on lyhyempi. Professional -versiota käyttämällä voidaan kokoa tiivistää tarvittaessa vieläkin enemmän, ja käytettävissä on myös enemmän optioita kuin Lite -versiossa. Tuntuvin etu Professional -versiossa on se, että sitä käyttämällä voidaan estää käsiteltävän ohjelman myöhempi mahdollinen nikkarointi (Reverse Engineering), ja mikäli käytetään "extra compression" -optiota, voidaan estää kokonaan tiedoston laajentamisyritykset alkuperäiseen kokoonsa. Professional -versiota käyttämällä voidaan tiivistettävään tiedoston tiettyjä osia jättää tiivistämättä, kuten "Internal Overlays" -kerroksia. Ellei näin meneteltäisi tietyissä tapauksissa, lakkaisivat käsiteltävät sovellukset toimimasta. Jos sovellusta on tiivistetty, kasvaa sen keskusmuistintarve 84 -kilotavulla, jota tarvitaan jotta sovellus voitaisiin laajentaa alkuperäiseen kokoonsa kesmusmuistiin.

PKlite ei ole mikään salausohjelma, vaikka se tekeekin tiedostoista sellaisia, ettei niiden rakenteesta saa tolkkua edes levyeditoreilla. Mikään ohjelma ei salaa yhtään mitään, vaikka asia esitettäisiinkin perusteellisesti sotkettuna, koska on kuitenkin olemassa jokin kaava, jolla kaikki voidaan palauttaa alkuperäiseen asuunsa. Tästä syystä kaikenlainen tekninen salaus on minusta aika typerää, sillä todellinen tiedonsalaus liittyy enemmänkin tiedon vaikeusasteeseen, eikä siihen, että se esitettäisiin jonkinlaisina palidromeina. Ellet osaa esimerkiksi matematiikkaa, tai et muista polynomien laskusäännöistä mitään - mene ja kuuntele jotakin avoimen yliopiston peruskurssin matematiikanluentoa, ja yritä päästä jyvälle siellä esitettävästä "salaisuudesta". Todellinen tiedonsalaus on nimenomaan tällaista - eli näet selvästi jonkun piirtelevän taululle selkeitä numeroita ja kirjaimia, ja kuulet kaiken sanoittavan selvästi ja johdonmukaisesti - mutta silti itse jutun juju ei valkene - ei sitten millään. Voimme liukastua kadulla, emmekä muista kitkaa – tai voimme pudota tikkailta, emmekä muista painovoimaa. Voisin hyvin kuvitella televisiossa esitettävän tietokilpailun, jossa kyseltäisiin esimerkiksi kolmannen - tai vieläkin korkeamman asteen yhtälön laskukaavaa, ja oikein vastaanneet saisivat heti kymmenen pistettä ja papukaijamerkin. Samoin voisi kuvitella musiikkiohjelman, jossa juontaja iloisesti hypellen, ja vuolaasti puhuen kyselisi jostakin keskiaikaisesta säveltäjästä, ja kaikki alkaisivat iloisesti hoilottaa jotakin tämän melodiaa, ja kaikki läpsyttäisivät iloisesti karvaisia käsiään, ja heiluisivat rullaati-rullatiaan. Tällainen olisi todellista salausten selvittämistä.

Miten PKlite toimii?

PKlite tiivistää tiedostoja samaan tapaan kuin PKzip, mutta sen lisäksi käsiteltävien tiedostojen alkuun lisätään pieni määrä purkukoodia, ja joka kerran kun tiivistetty ohjelmatiedosto käynnistetään, laajennetaan se alkuperäiseen kokoonsa keskusmuistiin. Tiivistysprosessi ei siten muuta ohjelman toimintaa, mutta säästää levytilaa. PKlite voi tarvittaessa palauttaa DOS -sovellukset niiden alkuperäiseen kokoon. Itse PKlite -sovelluksen käyttö on yksinkertaista, koska se toimii DOS -komentokehoiteesta, ja tavallisesti ei tarvita mitään erityisiä kytkimiä. Jos käsiteltävänä oletushakemistossa on samalla tiedostonimellä esimerkiksi COM ja EXE -tarkenteillla varustetut tiedostot, tulisi käsiteltävän tiedoston tarkennekin määritellä, sillä muussa tapauksessa ohjelma tiivistää kaikki samannimiset tiedostot, jos niillä on vain sopiva tarkenne. Jos ohjelmaa käyttää jatkuvasti, kannattaa sen optioihin perehtyä tarkemmin. Seuraavassa muutamia:

-a

Tätä kytkintä käytetään aika monenlaisissa tapauksissa, ja sitä käytettäessä sekä tiedosto -että siinä olevat "Overlay" -kerrokset tiivistetään, ja sen "Relocation" -taulu optimoidaan, ja Windows -resurssit käsitellään. Optiolla myös lajennetaan EXEPACK -tiedostoja, ja tiivistetään Windows 3.0 -tiedostoja.

-b

Tällä optiolla luodaan .BAK -tiedosto, joka on kopio alkuperäisestä, ja käsittelemättömästä tiedostosta. Tämän option käyttö on perusteltua, mikäli alkuperäisestä ohjelmatiedostosta ei luoda muulla tavoin varmuuskopiota, ja mikäli käsiteltäviä tiedostoja ei ole olemassakaan kuin se yksi ja ainut. Jos käsittelyn tuloksena onkin toimimaton ohjelma, voidaan näin aina säilyttää sellainen versio, joka toimii.

-c

Kun käsiteltävänä on DOS ohjelma, liitetään tiedostoon mukaan sen oikeellisuuden tarkistus. Mikäli tiedostoa manipuloidaan tämän jälkeen, antaa sovellus virheilmoituksen.

-d

Tätä optiota käytettäessä ohitetaan tiedostoa tiivistettäessä käyttäjän määritelemät resurssit. Tällaisia ovat sellaisten sovelluskehittäjien tuotteet, joihin on kirjoitettu omat Windows -resurssit, ja nämä saattavat erota suurestikin tavanomaisista dialogiboxeista ja kuvakkeista. Tällaiset sovellukset käyttävät usein omaa resurssien lataussovellusta.

-e

Suoritetaan "extra" -tiivistys, ja tehdään tiedostosta sellainen, ettei sitä voida enää laajentaa alkuperäiseen kokoonsa. Tästä syystä tiivistettäväksi aiotusta ohjelmatiedostosta kannattaa ottaa varmuuskopio ennen operaatiota. Ominaisuus on käytettävissä vain Professional -versiossa. Tällöin tiedostoon lisätään myös PSP (Program Segment Prefix). Tämä PSP -signatuuri tallennetaan PSP:n ensimmäiseen tiedoston kontrolliblokkiin (5C), ja ajettava ohjelma voi tarkistaa sen olemassaolon, ja pysäyttää toimintansa ellei signatuuria löydy. Tämä varmistaa sen, ettei ohjelmasi toimi mikäli tiivistys purettaisiin. Tarkistusketju voisi näyttää seuraavalta:

if (* (unsigned short int far *)MK_FP(_psp, 0x5C) !=)x4B50)

-e-

Suoritetaan "extra" -tiivistys niin, ettei PSP -signatuuria lisätä tiedoston alkuun. Ominaisuus on käytettävissä vain Professional -versiossa. Tämä optio toimii muuten samalla tavalla kuin "-e" -optio, mutta signatuuria ei lisätä. Tämänkin option käytöllä on se seuraus, ettei tiedostoa voida enää palauttaa takaisin alkuperäiseen kokoonsa, ja siksi alkuperäistiedostosta kannattaa ottaa varmuuskopio ennen operaatiota.

-f

Pakotetaan tiedoston tiivistys totetutumaan myös sellaisissa tapauksissa, että lopputluoksena on alkuperäistä suurempi tiedosto. Tämä optio on käytettävissä vain Professional -versiossa. Tätä optiota tarvitaan sellaisissa, että käsiteltävän tiedoston koko on pieni, jotka eivät tiivistyksen tuloksena välttämättä tule vieläkin pienemmiksi, koska niissä ei ole alunperinkään paljoa dataa, ja koska niihin lisätään prosessissa dataa, joka mahdollistaa niiden ajamisen.

-g

Jätetään DOS -ohjelmaan tiivistämätöntä dataa. Tämäkin optio on käytettävissä vain Professional -versiossa. Tällöin tiettyjä osia käsiteltävän tiedoston datasta voidaan merkitä niin, että se ilmaisee niiden olevan tiivistämättömiä. Määrittelysä käytetään seuraavaa kaavaa:

PKLITE\x26\xA3[length byte]

jossa [length byte] on niiden databittien määrä, jota "merkin" jälkeen tulisi jättää tiivistämättä. Tällä tavoin voit määrittää tarkasti ne alueet, joita ei tiivistetä.

-k

Tiivistetään vain Windows -resursseja.

-l

Näytetään ohjelman tekijänoikeustiedot. Tämä optio ei liity mitenkään ohjelmatiedostojen tiivistykseen, vaan lisätään ohjelmakomennon perään jotta nähtäisiin tällaisia tietoja, eli komentokehootteesta annetaan komento:

pklite -l

-n

Ei tiivistetä koskaan tiedostoja, joissa on "Overlay" -kerroksia, tai Windowsin resursseja, eikä myöskään optimoida "Relocation" -taulua, eikä koskaan tiivistetä Windows 3.0 -tiedostoja.

-o

Ylikirjoitetaan tulostiedosto, jos sellainen on jo ennestään olemassa.

-p

Ei laajenneta sellaista DOS -sovellusta, joka on tiivistetty EXEPACK -ohjelmalla ennen aiottua tiivistystä.

-r

Poistetaan DOS -sovelluksesta sen "Overlay" -data.

-s

Optio seuraa tavallisesti kytkintä "-a", ja käytetään tiivistettäessä tiedostoa, johon on ajateltu lisättäväksi "esikäynnistävä" osio. Tämä optio toimii vain Windows -tiedostoissa. Tällaisissa tiedostoissa käsiteltävän ohjelmaan voidaan liittää "stub", joka käynnistyy ennen varsinaisen ohjelman käynnistymistä. Tällainen tapaus on esimerkiksi varoitusviesti, joka ilmoittaa, että kyseessä on Windows -sovellus, jota ei voida ajaa DOS -tilassa. Tällaisen voi saada esimerkiksi jostakin valmiista Windows -ohjelmasta. Jos olet luonut tällä tavoin esimerkiksi Ilmoita.EXE -ohjelman, jonka olet ajatellut lisätä Aja.EXE -ohjelmaan, on komento muotoa:

pklite -silmoita.exe aja.exe

Tässä tapauksessa kytkimen "-s" ja ohjelman väliin ei lisätä välilyöntiä.

-u

Päivitetään tiivistettävän tiedoston päivämäärä ja aika vastaamaan nykyistä aikaa. Tiedossani ei ole, miten luotettavasti tämä toimii vuoden 2000 -vaihteen jälkeen.

-w

Tiivistetään vain Windows 3.0 -tiedostoja.

-x

Laajennetaan tiivistettyjä DOS -ohjelmatiedostoja.

Mitä ovat ohjelmatiedoston OVERLAY -kerrokset?

Sellaiset ohjelmat, jotka sisältävät lisättyjä kerroksia (Overlay) - eli osioita, jotka latautuvat muistiin vasta senjälkeen kun ohjelma on ladattu muistiin, eivät toimi oikein tiivistyksen jälkeen. PKlite ei tiivistä tällaista dataa, mutta sitävastoin "Load Image Data", joka sijaitsee ennen "Overlay" -kerroksia, tiivistetään. Jotkut sovellukset vaativat sen, että tällainen "Overlay" -data sijaitsee EXE -tiedostossa tietyssä kohdin sitä, ja mikäli tällaista ohjelmatiedostoa tiivistetään, eivät ne toimi oikein.

Windows 3.0 -tiedostot

Kun PKlite tiivistää Windows 3.0 -tiedostoja, muutuvat ne prosessissa Windows 3.1 -tiedostoiksi. Ohjelma ilmoittaa ennen tällaisen tiedoston käsittelyä, että kyseessä on Windows 3.0 -tiedosto.

PKlite.EXE 1.15 ja 2.01 -sovellusversioiden oheissovellukset

HDROPT (version 1.15 kanssa)

Sellaiset tiedostot, jotka on tiivistetty LZexe -sovelluksella, ja palautettu takaisin alkupeäiseen kokoonsa UNLZexe -sovelluksella, ovat monasti suurempia kuin alkuperäinen tiedosto olisi tiivistettynä. Tämä johtuu siitä, että UNLZexe ei palauta EXE -tiedostoa täsmälleen alkuperäisen kaltaisena, ja se kirjoittaa "Relocation" -tiedot epätaloudellisessa ja epäkanoonisessa muodossa. HDROPT -sovellusta voidaan käyttää tällaisten tiedostojen "Relocation" -tietojen normalisoimiseen, ja samalla myös tiedoston koon pienentämiseen. LZexe toimii omalaatuisella tavalla myös tiivistäessään sellaisia tiedostoja, joiden kehitysympäristössä on käytetty "DEBUGGING" -optiota, sillä LZexe poistaa tällaisen datan tiivistäessään EXE -tiedostoja, ja siten lopputuloksena on pienempiä tulostiedostoja. PKlite ei tee tätä ellei käyetä "-r" -optiota, jota käytettäessä tulostiedosto on pienempi kuin LZexe -soveluksella saadaan aikaan.

CHK4LITE (versioiden 1.15 ja 2.01 kanssa)

CHK4LITE -sovellusta voidaan käyttää testaamaan sitä, onko ohjelmatiedostoa tiivitetty PKlite -sovelluksella. Tämä sovellus ilmoittaa tuloksen paluukoodeina, jossa "0" merkitsee sitä, ettei tiivistystä ole tehty, ja "1" sitä, että normaali tiivistys on suoritettu, ja "2" sitä, että on käytetty "extra" -tiivistystä.

Mitä tiedostoja PKlite ei voi käsitellä?

PKlite voib tiivistää useimpia ajettavia ohjelmatiedostoja, mutta on olemassa joitakin soveluksia, joita ei voida tällä ohjelmalla tiivistää, tai ne eivät toimi enää oikein tiivistyksen jälkeen. Ohjelmia, joita ei kannata käsitellä ovat mm. seuraavat:

SETVER.EXE
COMMAND.COM
CV.EXE
C2.EXE
FOXPRO.EXE
PIFEDIT.EXE
MAKEINI.EXE

Syyt tähän vaihtelevat sovelluksesta toiseen. Esimerkiksi COMMAND.COM sisältää itsessään oman latausohjelmansa, ja mikäli se yrittää ladata dataa, jota on tiivistetty, ei operaatio onnistu. CV.EXE taas suorittaa EXE -tiedoston ajonaikaisen tarkistuksen, ja mikäli tiedostoa on tiivistetty, se antaa virheilmoituksen. C2.EXE (joka on osa Microsoft C 6.00 -kääntäjää) ilmoittaa tiivistettynä, ettei se löydä "Overlay" -dataa. FOXPRO.EXE (joka on FoxPro 1.00 - 1.02 Database -ohjelma) on konstruoitu niin, että se sisältää sisäisiä "Overlay" -kerroksia, ja ei siitä syystä toimi oikein, jos sitä tiivistetään. MAKEINI.EXE (joka on OS/2 -sovellus) on mahdotonta tiivistää siksi, että PKlite ei ole suunniteltu OS/2 -tiedostojen tiivistystä varten. Myös sellaisia sovelluksia, jotka muotoilevat "Load Image" -dataa ajettavassa tiedostossa eivät toimi oikein tiivistettyinä. Monissakin ohjelmissa on "asennusohjelma", joka tiedostoa käynnistettäessä muotoilevat ajettavaa tiedostoa, ja esimerkkinä näistä on PKzip 1.10 -ohjelman PUTAV -sovellus, joka antaa virheilmoituksen, jos PKzip -sovellusta on tiivistetty - ja ennen tämän sovelluksen ajoa PKzip tulisi laajentaa takaisin alkuperäiseen kokoonsa. Myöskään sellaisia sovelluksia, jotka sisältävät "Overlay" -dataa, tai dataa, joka on tallennettu tiedoston loppuun, eivät toimi oikein tiivistettyinä, ja tästä syystä sellaisia ei pitäisi yrittääkään tiivistää.