Szükségem volt egy olyan programra, ami windowsos környezetben észleli a bedugott flash meghajtókat, és lemásolja azok tartalmát egy általam megadott mappába. A program minden gép induláskor induljon el, és figyeljen.
Mivel ilyet nem találtam a neten (mondjuk nem is kerestem sokat), ezért fogtam és megvalósítottam c#-ban.
A kód itt érhető el.
A program működésének megértéséhez nem szükséges mérnöki tudás. Mondjuk windowsos események között kellett turkálni, és azért nem volt könnyű kisakkozni, hogy pontosan mit is keresek, de a végére csak összedobtam.
A kommentekben, és a függvénynevekben lévő angol betűkért nem vállalok felelősséget, az angolom elég gyatra.
A programomat sikerült élesben is bevetnem egy windows vista-s platformon, azonban több ponton elbukhatott volna:
- Ha a mókus előbb dugja be a pendriveot mielőtt a progim autorunból elindul akkor máris nem fogja lelopni az anyagot.
- Ha a pendriveon másolási hibák vannak, a progim elhasal. Erre könnyű fixet írni, azonban ezt sosem tettem meg, mivel az a pendrive nem volt hibás.
- Ha sokáig fut a program, és sok pendrive átment már rajta, akkor a cél mappa rettentően nagy méretet fog zabálni a vinyóból. Az én esetemben 30 GB-t sikerült ellopnia (20gb film).
- Minden lopott adat egy mappába kerül, nem hozok létre nekik külön mappákat. (pl : KINGSTON_01, KINGSTON_02) -> emiatt eléggé átláthatatlan az a sok adat. Erre a fixet már megírtam, egy sima rnd függvény segítségével.
Végérvényesen az akciót sikeresen könyvelem el, hiszen az adatokat sikerült megkaparintanom :)