| Bevezetés | |
| A szerzőről | |
| Alapok | |
| A feltörés csábítása | 1 |
| A törés segédeszközei: nyomkövetők és visszafejtők | 2 |
| Nyomkövetők | 2 |
| Visszafejtők | 2 |
| Visszafordítók | 3 |
| A leggyakrabban előforduló védelmi hibák | 3 |
| A törés segédeszközei | |
| SoftICE alapok | 7 |
| Billentyűparancsok | 8 |
| A BPX parancs | 9 |
| A BPR kapcsoló | 9 |
| A BPM kapcsoló | 9 |
| Megjelenítési parancsok | 10 |
| A programvédelem alaptípusai | |
| Sorozatszám alapú védelem | 13 |
| A sorozatszám mindig ugyanaz | 14 |
| A sorozatszám változik a beírt adatokkal | 15 |
| A sorozatszám változik a felhasználó számítógépével | 17 |
| Sorozatszám alapú védelem Visual Basic programokban | 17 |
| A VB4 programok feltörése | 19 |
| Hálózaton ellenőrzött sorozatszám | 21 |
| Időkorlát | 23 |
| Az időkorlát megszűnik, mihelyt a felhasználó beírja a sorozatszámot | 24 |
| Az időkorlát megszűnik, mihelyt megadjuk a regisztrációs (.REG) fájtl | 25 |
| Az időkorlátot nem lehet eltávolítani - a felhasználónak meg kell vásárolnia a program teljes változatát | 26 |
| Az időkorlátot egy Visual Basic program tartalmazza | 27 |
| Az időkorlát bizonyos számú programindítást tesz lehetővé | 27 |
| Regisztrációs fájl alapú védelem | 27 |
| A helyes regisztrációs fájl hiányában csak időkorlátos változatat kapunk | 29 |
| Hardverkulcsos védelem | 29 |
| A program nem indul el a hardverkulcs nélkül | 30 |
| A program bizonyos lehetőségei hardverkulcs nélkül korlátozottak | 31 |
| HASP hardverkulcsok | 32 |
| Sentinel hardverkulcsok | 38 |
| CD-védelem | |
| A CD-ellenőrzők módszerei | 42 |
| CD-védelmi programok | 43 |
| CD-Cops | 43 |
| DiscGuard | 44 |
| LaserLock | 44 |
| SafeCast | 45 |
| SafeDisc | 45 |
| SecuROM | 48 |
| VOB | 49 |
| Egyéb módszerek a CD-k védelmére | 50 |
| 74 percnél hosszabb CD-k | 51 |
| Sérült TOC (tartalomjegyzék) | 51 |
| Nagy fájlok a CD-n | 51 |
| Fizikai hibák a CD-n | 52 |
| Egy vagy több nagy fájl a CD-n | 52 |
| Bemutatóprogram korlátozott lehetőségekkel | 52 |
| Tömörítés és kódolás ingyenes és kipróbálható programokkal | |
| aPLib | 56 |
| ASPack | 56 |
| Ding Boys PE-Crypt | 58 |
| NeoLite | 60 |
| Részletes tömörítési beállítások | 61 |
| NFO | 63 |
| PECompact | 63 |
| PELOCKnt | 65 |
| PE-Crypt | 66 |
| Kézi eltávolítás | 69 |
| Betöltő készítése | 69 |
| A PE-Crypt beállításai | 70 |
| PE-Crypt - összefoglalás | 71 |
| PE-SHiELD | 71 |
| Petite | 73 |
| Shrinker | 74 |
| UPX | 75 |
| WWPack32 | 76 |
| Kereskedelmi programvédelmi rendszerek | |
| ASProtect | 80 |
| FLEX1m | 85 |
| InstallShield | 87 |
| ShareLock | 89 |
| Az Armadillo Softwre System | 90 |
| Vbox | 91 |
| TimeLock 3.03-3.10 | 92 |
| TimeLock 3.13-3.15 | 93 |
| Vbox 4.0-4.03 | 93 |
| Vbox 4.10 | 94 |
| Vbox 4.3 | 94 |
| A Slovak Protector (SVKP) | 95 |
| Nyomelemzők | 99 |
| Nyomkövetők | 99 |
| Átalakulás | 99 |
| Nyomkövetést és visszafejtést gátló módszerek | |
| Fogások a SoftICE és TRW ellen | 101 |
| A SoftICE felderítése az INT 68h hívásával | 103 |
| A SoftICE felderítése az INT 3h hívásával | 105 |
| A SoftICE felderítése a memória átkutatásával | 107 |
| A SoftICE felderítése meghajtójának megnyitásával és a CreateFileA API függvény hívásával (SICE, NTICE) | 109 |
| A SoftICE felderítése az INT 1h és az INT 3h szolgáltatások közti távolság mérésével | 114 |
| A SoftICE felderítése meghajtójának megnyitásával és CreateFile A API függvény hívásával (SIWVID) | 116 |
| A SoftICE felderítése az nmtrans.dll könytár NmSymIsSoftICELoaded DLL függvényének hívásával | 117 |
| A SoftICE felderítése az INT 68h szolgáltatás azonosításával | 120 |
| A SoftICE felderítése az INT 41h szolgáltatás változásának vizsgálatával | 121 |
| A SoftICE felderítése meghajtójának megnyitásával és a CreateFileA API függvény hívásával (SIWDEBUG) | 123 |
| A SoftICE felkutatása az INT 2Fh hívásával és a VxD SICE-hez tartozó GET DEVICE API ENTRY POINT függvény segítségével | 129 |
| A SoftICE felkutatása az INT 2Fh hívásával, és a VxD SIWVID-hez tartozó GET DEVICE API ENTRY POINT függvény segítségével | 129 |
| A CMPXCHG8B utasítás alkalmazása a LOCK előtaggal | 134 |
| A SoftICE felderítése a VxDCall segítségével | 136 |
| Működő nyomkövető felderítése a DR7 nyomkövetési regiszter segítségével | 139 |
| A SoftICE felderítése a VxDCall hívásával a Kernel32!ORT_0001-en keresztül | 141 |
| A SoftICE telepítési könyvtárának felkutatása a Windows rendszerleíró adatbázisának segítségével | 145 |
| A TRW felderítése az INT 1h és az INT 3h szolgáltatások közti távolság mérésével | 148 |
| A TRW felderítése meghajtójának megnyitásával és a CreateFileA API függvény hívásával (TRW) | 150 |
| A SofICE felület BCHK parancsainak használata | 151 |
| A TRW felderítése az Int 3h hívásával | 155 |
| A SoftICE felderítése meghajtójának megnyitásával és a CreateFileA API függvény hívásával (SIWVIDSTART) | 158 |
| A SoftICE felderítése meghajtójának megnyitásával és a CreateFileA API függvény hívásával (NTICE, SIWVIDSTART) | 160 |
| A SoftICE felderítése meghajtójának megnyitásával és az _locreate API függvény hívásával (SICE, NTICE, SIWDEBUG, SIWVIDSTART) | 162 |
| A SoftICE felderítése meghajtójának megnyitásával és az _lcreate API függvény hívásával (SICE, NTICE, SIWDEBUG, SIWVIDSTART) | 164 |
| A FrogsICE lefegyverzése | 165 |
| A SoftICE felderítése az Int 3h megszakítás keresésével az Unhandled ExceptionFilter API függvényben | 169 |
| A SoftICE felderítése az Int 1h megszakítás révén | 170 |
| Védekezés töréspontok, nyomelemzők és nyomkövetők ellen | |
| Nyomelemzők felismerése a Trap jelzővel | 173 |
| Töréspontok felderítése az Int 3h keresésével | 176 |
| Töréspontok felderítése CRC-ellenőrzéssel | 179 |
| Nyomkövetési töréspontok felderítése | 183 |
| Felhasználói nyomkövetők felderítése | 186 |
| Felhasználói nyomkövetők felderítése az IsDebugger API függvény segítségével | 187 |
| Egyéb védelmi módszerek | |
| API átirányítások felismerése | 191 |
| Módszer a ProcDump kivédésére | 194 |
| Futó program átkapcsolása ring3-ból ring0-ba | 197 |
| Átkapcsolás a ring0-ba az LDT használatával | 197 |
| Átkapcsolás a ring0-ba az IDT segítségével (EliCZ módszere) | 199 |
| Átkapcsolás a ring0-ban az SEH segítségével (The Owl módszere) | 202 |
| Visszafejtést gátló makrók | 205 |
| A legegyszerűbb módszer | 205 |
| Egy hasonló módzser | 206 |
| További fejlesztés után | 206 |
| A lehetőségek határtalanok | 206 |
| Ugrás az utasítások közé, ezzel nehezítve a kód megértését | 107 |
| Kicsomagolási kísérletek leleplezése | 208 |
| A fájl ellenőrző összegének vizsgálata a MapFileAndChecksumA API függvénnyel | 208 |
| Változtatások a PE fájlok .code részében | 209 |
| Megfigyelőprogramok felderítése | 209 |
| Egyszerű módszer a kalózok büntetősére | 211 |
| A Windows alapvető szerkezetei | |
| Környezeti szerkezet | 213 |
| A Windows NT futtatható fájljai (PE fájlok) | 216 |
| Objektumtáblázat | 224 |
| Részek típusai | 226 |
| Kódrész | 226 |
| Adatrész | 226 |
| BSS rész | 226 |
| Elérhető szimbólumok | 227 |
| Átvett szimbólumok | 228 |
| IMAGE_IMPORT_DESCRIPTOR szerkezet | 228 |
| IMAGE_THUNK_DATA | 229 |
| IMAGE_IMPORT_BY_NAME szerkezet | 229 |
| Erőforrások | 230 |
| IMAGE_RESOURCE_DIRECTORY_ENTRY szerkezet | 231 |
| IMAGE_RESOURCE_DATA_ENTRY szerkezet | 231 |
| Jótanácsok a programvédelemhez | |
| A jó védelmi rendszer összeállításának szabályai | 234 |
| Maradjunk jól értesültek | 137 |
| Szójegyzék | 239 |
| A CD tartalmáról | 243 |
| Tárgymutató | 247 |