JavaSnoop

Szerencsés esetben egy Java kliens tesztelésének eredménye a forráskód elérése nélkül megjósolhatatlan, legrosszabb esetben pedig nem lesz valósághű. A forráskód elérésével lehetőség nyílik egy távoli debugger kapcsolására és a kódon lépésről-lépésre haladhatunk. Valamint beállíthatjuk a váltózókat is, ha szükségünk adódna rá. Az appletek esetében a helyzet kicsit bonyolultabb.

Sajnálatos módon a valóságban ilyen lehetőség ritkán adódik. A Java kompiláció és dekompiláció valójában nem annyira determinisztikus, mint ahogyan azt gondolnánk. Ennek következtében nem lehet egyszerűen dekompilálni, futtatni és egy debuggerhez csatolni a Java alkalmazást.

Próbálkozhatunk ott is, ahol a legérdekesebb dolgok történnek, azaz a kliens és a szerver közti kommunikációs csatorna módosításával. Természetesen csak akkor járhatunk sikerrel, ha a kliens konfigurálható HTTP proxyt használ. Egyébként bajban lennénk az általános hálózati forgalom módosítására használatos mechanizmusokkal. Ezek az eljárások legtöbb esetben nem vezetnének eredményre, mivel az adatok általában nem szöveges formában észlelhetők. Leggyakrabban személyre szabott protokollokkal, szerializált objektumokkal, titkosított adatokkal, illetve ezek kombinációival nézünk szembe.

A JavaSnoop  ezt a problémát próbálja orvosolni. Lehetővé teszi processzek csatlakoztatását és működésük befolyásolását metódus hívásokkal, saját kód futtatásával, illetve lehetőséget biztosít a rendszer működésének megfigyelésére.

http://www.aspectsecurity.com/tools/javasnoop/
http://www.aspectsecurity.com/tools/javasnoop/javasnoop_faq.html

Címkék

JavaSnoop debugger