EXE-Társkompresszor
Jelentkezz be a hozzászóláshoz.
Tartalmazza az eredeti cpp-s EXE-exportot, annak a megnyírását, az eredetit UPX-el betömörítve, valamint a megnyírt verziót szintén UPX-el betömörítve.
I7-4790K, ASUS SABERTOOTH Z97 MARK2, 16GB DDR3, ASUS STRIX GTX970 4GB 2xSLI, Samsung 256GB SSD 840 Pro MLC, 10.5TB HDD, Dell U2711H (2560x1440), CM Stryker, Scythe Mugen 3
A legjobb tömörítõ program (#79-nél ajánlottam két tömörítõt, ha netán nem ismernéd õket, nagyon jók. A NanoZip-bõl már van 0.09-es verzió is.) A FEAD-et meg nem nagyon lehet leszedni sehonnan se.
Tömörítõ program készítése
Fájlok tömörítése (Egy kis tömörítõ-teszt #31-es hsz-nél, olvasd el)
Maximumcompression Tesztek, tömörítõk, egyéb..
"Az erõ mindig arra törekszik, hogy elenyésszen
és eltékozolja magát; ha legyõzte önmagát, minden testet legyõz.
Nélküle semmi sem mozog..."
"... ó ti, az örökmozgó feltalálói, hány semmit nem érõ tervet alkottatok! Menjetek az aranycsinálók közé!"
Leonardo da Vinci
"Nekem elküldte levélben az
elméletét, s az amivel próbálkozott lehet, hogy zseni-nehézségû
szint volt, viszont nem hülyeség."
Ahhoz, hogy egy ilyen "csodatömörítõ" elfogadható dologgá váljon, nagyon alaposan alá kell támasztani konzekvens
matematikai elmélettel (pláne hogy ott a Shannon-limit, az entrópia), programozói gyakorlattal. Ha ez hiányzik, szép álom marad, de nem több. Hasonló a helyzet az örökmozgók, "szabadenergiás gépek" esetében is.
Amúgy abban tényleg nem volt tisztességes f1ú, hogy hajtogatta, hogy ez 100%-ig menni fog, de belebukott; viszont azt joggal kikérhetné magának, ahogy szidjátok. Nekem elküldte levélben az elméletét, s az amivel próbálkozott lehet, hogy zseni-nehézségû szint volt, viszont nem hülyeség.
Szerintem ha írtok neki, veletek is megosztja, csak akkor személyesen tõle kérjétek, mert úgy tisztességes.
Ráadásul ha a egy olyan input van aminél nem adott lehetõségek közül lehet választani hanem a felhasználó bármit beírhat akkor ott már lehetetlennek tûnik algoritmussal leellenõrizni
Esetleg egy olyanban amiben adatok elõre ismert kisméretû halmazából számol a program, viszont ennél meg már fordító szinten megoldható az optimalizálás (szerintem)
Egyébként milyen program volt amin letesztelted?
If your idea of "beauty" is narrow, you will rarely see it unless you live a sheltered life and avoid new experiences. The moment I stop having fun with it, I'll be done with it.
I7-4790K, ASUS SABERTOOTH Z97 MARK2, 16GB DDR3, ASUS STRIX GTX970 4GB 2xSLI, Samsung 256GB SSD 840 Pro MLC, 10.5TB HDD, Dell U2711H (2560x1440), CM Stryker, Scythe Mugen 3
"Mit szólnátok ahhoz ha azt mondanám, hogy elméletben kitaláltam egy olyan tömöritési eljárást, amivel bármekkora fájlt betömöritek 2 bájtba? Akár 52 GB méretû fájlt is... A programot már elkezdtem fejleszteni, lassan kész az alap felhasználói interfész. Pár napon belül elkezdem fejleszteni a tömöritési eljárást. Mi történne ha ez a program kikerülne a piacra? Képzeljétek el hogy akár több ezer filmet el tudnátok tárolni egy 1.44 -es lemezen... Várom a véleményeteket!"
If your idea of "beauty" is narrow, you will rarely see it unless you live a sheltered life and avoid new experiences. The moment I stop having fun with it, I'll be done with it.
"mûködõképes-e, vagy sérült, anélkül, hogy valójában megnyitnám és futtatnám"
Ennyi erõvel az örökmozgót is kereshetnéd, az elõbb vezetne sikerhez...
I7-4790K, ASUS SABERTOOTH Z97 MARK2, 16GB DDR3, ASUS STRIX GTX970 4GB 2xSLI, Samsung 256GB SSD 840 Pro MLC, 10.5TB HDD, Dell U2711H (2560x1440), CM Stryker, Scythe Mugen 3
Múltkor nézegettem egy ilyen saját kis méretû (7 K😎 kiexportált EXE-t, és látom a rengeteg 00-ás bájtot tratalmazó blokkokat itt-ott. Ez persze önmagában nem nagy újdonság, én is sejtem, hogy memóriacímkezelések meg ilyen assembly-s dolgok miatt van mindig ez így, igaz, nem nagyon értek, hozzá, de ez így van rendjén. Aztán viszont látom, hogy itt-ott a 0-ás bájtblokkok közepén árvátlankodik egy-egy bájt (nem 0-ás értékû), \"messze a társaitól\".
Ekkor már valami el kezdett motoszkálni a fejemben, hogy hát ez még sincs igazán rendjén, ez így nem \"gazdaságos\" egy tömörítõ program számára. Erõs késztetést éreztem arra, hogy azokat a 0-ás bájtblokkokba belecsöppent nem 0-ás bájtokat lenullázzam és... Voilà! : Az alkalmazás még mindig remekül futott. Persze egyes lenullázások már nem vezettek jóra, de azért még is el kezdtem gondolkozni ezen, hogy: nocsak-nocsak, tán még sincs feltétlenül szükség minden egyes byte-ra?!
Így jutottam el odáig, hogy pl.: szintén erõs késztetés hatására az \"MZ\" és egy távoli E0 kivételével felszántottam a fejlécet, meg egy számomra ismeretlen kb. 110 byte-os blokkot, az exe meg azóta is vígan mûködik. (Zárójelben: az exe kizárólag 32 bittes volt eredetileg is)
Látszólag ez mind haszontalanságnak tûnhet, ugyanis a méretet hex-editorral semmiképpen sem változtathatom meg, mert az exe akkor egybõl elromlik. Amire viszont ez a módszer szerintem használható lenne - bár még nem próbáltam ki - hogy UPX-el az eredetihez képest a nem kritikus pontokon lenullázott exe jobban betömöríthetõ lenne.
Így mondjuk talán lehetne írni egy EXE-Társtömörítõt, ami annyit csinálna, hogy sorra veszi az EXE-alkalmazás bájtjait egyenként (ha azok nem 00-ák), lenullázza, az így egyetlen bájtban különbözõ adathalmazt lementi másolatként, aztán pedig megnézi, hogy a másolat tud e futni, és ha nem tud, akkor ezt a módosítást nem alkalmazza és ugrik a következõ bájtra, ha viszont tud futni ezzel az egy bájtnyi lenullázással, akkor az eredeti EXE-t felülírja a módosított másolattal és úgy ugrik a következõ bájtra (...) és-így-tovább-és-így-tovább, amíg nem lesz vége a fájlnak, jelen esetben EXE-nek.
Ennél persze az marad a kérdés, hogy hogyan lehet megnézni egy alkalmazásról, hogy az mûködik-e rendesen, vagy \"sérült\". Egy olyan programnál, ami pl. bekér valamit a felhasználótól, s arra várakozik, vagy aminek mondjuk kicsit hosszabb (néhány másodperces a futási ideje) annál esetleg meg lehet nézni, hogy mondjuk futott 5 másodpercig, és akkor valószínû, hogy mûködik; viszont mi a helyzet pl. egy olyan automatikus programnál, ami csak felvillan, aztán egy pillanat alatt meg is csinálja amit kell, s már be is zárul?
Igazából ez lenne a kérdésem, hogy lehet-e valahogy egy EXE-alkalmazásról valamilyen algoritmussal megállapítani, hogy mûködõképes-e, vagy sérült, anélkül, hogy valójában megnyitnám és futtatnám?
A szóban forgó EXE-Társkompresszor többi pontját gondolom pofonegyszerû megírni, úgyhogy jelen esetben a fenti kérés a kritikus pont.