Reverse engineering is de kunst van het individu , machine - level commando's die deel uitmaken van een gecompileerd programma dumpen en te gebruiken om de oorspronkelijke broncode opnieuw . Hoewel elke gecompileerde programma ontrafeld kunnen worden , de byte code die up gecompileerde Java-programma's maakt behoudt verschillende identificerende kenmerken die reverse engineering maakt het veel gemakkelijker dan andere gecompileerde code . Byte code Java niet rechtstreeks afkomstig zijn in machine - leesbare code , maar in wat wordt genoemd " bytecode . " De programmeur verdeelt deze bytecode , en wanneer eindgebruikers start het programma , de Java Virtual Machine verzamelt de byte code in platform - specifieke machine code . Hoewel dit geeft Java het voordeel van het toestaan van een enkele broncode aan de slag op meerdere machines , de bytecode bewaart enkele beschrijvende kenmerken van de broncode die het gemakkelijker maken voor hackers om de oorspronkelijke broncode reconstrueren maken . < br > Reverse Engineering Hackers kan byte code van een Java- applicatie direct lezen , met behulp van de " java.io.inputstream " library . Met dit , kunnen ze de kerncomponenten en bytecode level commando dat die bepaalde klasse bestand vormt bekijken . Hackers dan volgen verschillende variabelen in verschillende methoden geleidelijk reconstrueren control flow van het programma . Zodra hackers dit te doen , kunnen ze de applicatie source code herhalen voor verschillende kwaadaardige doeleinden . Aanvallen Na een hacker reverse engineers een bepaald programma , zijn er verschillende manieren waarop hij kan deze misbruiken om toegang tot machines die dat programma uit te voeren krijgen . Deze omvatten kwetsbaarheden te misbruiken om het programma uit te voeren kwaadaardige code met toestemming van de gebruiker , of het uitvoeren van een ' man in the middle " aanval . In het laatste scenario zou de hacker zijn eigen kwaadaardige code toevoegen van de applicatie source code opnieuw compileren , en zet het op het internet onder het mom van het oorspronkelijke programma . Onwetende gebruikers kunnen dan downloaden van de applicatie en de code van de hacker direct uit te voeren . Voorkomen Reverse Engineering Vanwege de aard van de Java- bytecode , is het bijna onmogelijk om te stoppen iemand van het bekijken van de kern bytecode . Terwijl methodes zoals encryptie kan een zekere mate van bescherming te bieden , hoe effectiever de encryptie is , hoe minder platformonafhankelijke het programma wordt . Programmeurs kunnen echter gooi reverse engineers met een paar trucjes codering . Deze omvatten het schrijven van functies die niet relevant zijn voor het programma feitelijke uitvoering , die kan werpen die proberen om ingenieur het programma te draaien.
|