Uinc közvetlen hozzáférést biztosít egy makrót egy dokumentumot Word, Microsoft Word, bináris formában, strukturált

. Eltört a második szabályt Felhasználási
felvonó és ment át a falon.

Lukyanenko. Hét hibák.

Továbbra is fecseg „szörnyű titkot Microsoft véres cég.” J

1. A „helyes”

Tény, hogy a Microsoft lehetővé teszi a felhasználónak, hogy nézd meg a forráskód egy makró írt VBA:

De vannak más megközelítések, hogy a Microsoft alapvetően nem akar bizonyítani.

2. Hol vannak makrók

Azt már tudjuk, hogy az MS Word-fájlok - egy összetett objektum, amely egy strukturált tárolási formátum (strukturált tárolására), valamint az összes hasznos információt tárolja azt a formáját a vízfolyások (patakok).

Az MS Word 6.0 / 7.0 makró találja együtt a dokumentum szövegét a közös áram a neve „Word dokumentum”.

A későbbi verziók komponensek él benne a dokumentumot, nem szervezett formában több egyedi makrók formájában ún VBA-projekt, amely fizikailag „maszatos” a különböző szálak.

Továbbá, belső MS Word dokumentum három A paszta formák lehetnek jelen párhuzamos bemutatásával azonos makro.

Először is, az eredeti szöveg a makró, az úgynevezett S-kódot. Ez nem látható „hogy a fény” a fájl, mert tömörítési algoritmust LZNT1.

Másodszor, BEKÖVETKEZHET összeállítása szöveget forráskódot bináris kép - az úgynevezett pszeudo-kód (vagy p-kód). Ő tud futni MS Word a virtuális gép.

Végül azt is felkészült a végrehajtását exe-kód (vagy korábban kódot, vagy végrehajtható kód). Ő nem mindig jelen van, de ha jelen van, akkor hajtja végre a virtuális gép MS Word ő.

A jellemző az összes ilyen áramlások az aláírás 01 01 16 órán keresztül.

Exe-kód él patakok „__srp_0”, „__srp_1” nevek, stb

3. Hogyan érhető el a dokumentum áramlási belül

Ismerve a strukturált tárolási formátum, írhat a saját file-kereső programot. De mi megy a másik irányba.

OLE2.DLL könyvtár tartalmazza eszközök dolgozó strukturált tárolására. stgIsStorageFile () függvény a fájlt, hogy írja alá, hogy ez egy strukturált adattár-e vagy sem. stgOpenStorage () függvény megnyitja az üzlet fájlt, és visszatér „interface” IStorage. Ez - az objektum osztályú tartalmazó tulajdonságok és módszerek a strukturált tárolási:
  • IStorage :: OpenStorage () - megnyit egy alkönyvtár, visszatérve a felületet, hogy az alárendelt könyvtárakat;
  • IStorage :: Release () - bezárja a könyvtárban;
  • IStorage :: EnumElements () - visszaadja a számlálóra a interefeysa Next () metódus, Skip (), Reset () stb.;
  • IStorage :: OpenStream () - megnyit egy patak, visszatérő interefeysa istream_FAR Read () metódus, írása (), stb

Itt egy példa programot keresni a megadott fájlt DOC-belső áramlásokat.

Hátrányai megközelítés: alacsony teljesítmény és az elérhetőség problémája jelszóval védett, és „kissé elrontott” papírokat.

4. Hogyan lehet megtalálni a csomagolt forrást a flow

Van egy „helyes” módja a keresést, de ez inkább egy furat, ezért javasoljuk, hogy egyszerűbb megközelítés. Ez azon a tényen alapul, hogy az s-kód második felében az áramlás, és szerveződik, mint több darabra csomagolt adatok (az úgynevezett „chunkov” - darabokat). Az első ezek közül az elején az aláírás, amely megtalálható a maszkot 01 yz Bx, ahol xyz a 12 bites hosszúságú chunka mínusz 3.

Például Macro.Word97.TNT makró vírus ellensúlyozta 15V9h három bájt 01 63H B6h. Ez azt jelenti, az elején a csomagolt chunka hossza 663h + 3 = 666h byte.

Itt egy példa az eljárás belsejében az áramlási Kezdetben csomagolt s-kód:

5. Hogyan csomagoljuk ki a szöveget

Mint már említettük, az s-kód algoritmus csomagolt LZNT1. Ez a változat a klasszikus algoritmus LZ77 (a legelső az algoritmusok által kidolgozott Lempel és Ziv), azzal jellemezve, annak számos társaik egyetlen módja a kimeneti stream kódolás. (By the way, az algoritmus által alkalmazott Microsoft a közüzemi tömöríteni / bővíteni és könyvtárak LZEXPAND / Lz32. Valósít meg egy hasonló, de kissé eltérő változata LZ77).

Itt egy példa az eljárási forráskódjának kinyerésére makrók és kiadásához, hogy a képernyőn:

Hátránya: a képtelenség, hogy a Windows 95/98 / ME.

6. Néhány Megjegyzések

Ezen kívül, itt az ideje ébreszteni, ha a forráskód néz ki „strashnenko”, mint ez töredéke a híres (többek között virológusokat) polimorf makró vírus POLYMAC (aka Chydow):

Automatizálni a folyamatot elismerése ez a fajta fertőzés csak akkor lehet emulálni a teljesítménye p-kódot vagy exe-kód dekódolása, és így a „hasított” a vírus. „De ez egy másik történet.”

következtetés

Annak elkerülése érdekében, egy része kifogástalan, sietek tájékoztatni arról, hogy a megoldás a problémákat tudom, hogy egy gyors és hatékony módszerek és algoritmusok a fent tárgyalt. De az egyszerű „helyettesítő” vitatták meg egy cikket az algoritmusok és módszerek, amelyek azonban lehetővé tenné végül tette, hogy megoldja a problémát. Szerencsére odaértem - úgy dönt.

By the way, nem sokat szem előtt, ha kompetentnyme olvasók kritizálnak konstruktívan. azaz maguk osztják érdekes információt ebben a témában.

Szeretném kifejezni hálámat a résztvevő a projekt „Antivirus stop!” A. Karimov, ahol beszélgetések születtek (és remélhetőleg továbbra is született), az összes cikkem a kutatási dokumentumok MS Word formátumban.

Ez minden. Köszönöm a figyelmet.

A legmélyebb tisztelettel és őszinte odaadással am, uram, ön engedelmes szolgája,

Minden dokumentum és program ezen az oldalon összegyűjtöttük az oktatási célokat szolgál, nem vagyunk felelősek semmilyen következményekkel bekövetkezett következtében az ilyen anyagok alkalmazásának \ programokat. Ön használja az összes fenti a saját kockázatára.

Kapcsolódó cikkek