|
SWF-VerschlüsselungSWF-Verschlüsselung (oder Bytecode-Verschlüsselung) macht dekompiliertes ActionScript zu einer verwirrenden und schwer verständlichen Angelegenheit. Es ist keine wirkliche Verschlüsselung, aber im Kontext von Code ist diese Maßnahme sinnvoller. Obwohl Verschlüsselung Ihren Code komplett unlesbar machen kann, leidet sie unter einem klassischen Problem der Kryptographie - der Schlüssel muss bei den verschlüsselten Daten bleiben. Es könnte also ein automatisches Tool erstellt werden, um den Code zu entschlüsseln. Sobald dies passiert, ist der vollständing entschlüsselte, unverschleierte Code sichtbar. Stoppt Flash-Decompiler:Aber es ist noch nichts verloren. secureSWF implementiert vier sehr effektive SWF-Verschlüsselungsverfahren, um SWF-Dateien vor Decompilern zu schützen. Diese Verfahren können in verschiedensten Dimensionen genutzt werden. Wie die Verschlüsselung von secureSWF funktioniertsecureSWF ändert die Bytecode-Anweisungen in SWF-Dateien, indem es Verfahren nutzt, um Flash-Decompiler auszutricksen und zum Absturz zu bringen. Dadurch können sie nichts nutzbares generieren, während das Verhalten und der Output der Flash-Applikation gleich bleibt. Hier ist ein Beispiel, bei dem wir einige der Verfahren angewendet haben, und glücklicherweise hat einer der Decompiler etwas generiert, was wir zeigen können (alle anderen stürzten ab):
Code vor der Verschleierung
private function getNeighbours(i:int, j:int):Array{
var a:Array = new Array(); for (var k = 0; k < 8; k++){ var ni = i + int(neighbour_map[k][0]); var nj = j + int(neighbour_map[k][1]) ; if (ni < 0 || ni >= xsize || nj < 0 || nj >= ysize) continue; a.push(Cell(cells[ni][nj])); } return a; } Code nach der Verschleierung
private function getNeighbours(_arg1:int, _arg2:int):Array{
var _local3:Array = -(((null - !NULL!) % ~(undefined))); var _local4:*; var _local5:*; var _local6:*; _local3 = new Array(); _local4 = 0; for (;//unresolved jump , _arg2 < 8;_local4++) { _local5 = (_arg1 + int(!NULL!)); _local6 = (_arg2 + int(!NULL!)); if (true){ _arg1 = (((//unresolved nextvalue or nextname << !NULL!) + !NULL!) << undefined); _arg1 = (!(!NULL!) ^ !NULL!); (!NULL! instanceof !NULL!); var _local1 = (((!NULL! as !NULL!) + !NULL!) == this); if (!(!NULL! == !NULL!)){ -((true << !NULL!)).push(Cell(cells[_local5][_local6])); } } if (!true){ (_local6 < 0); (_local6 < 0); (_local5 < 0); } } return (_local3); } Was macht die SWF-Verschlüsselung von secureSWF?secureSWF kann Folgendes tun, um Flash-Decompiler zu stoppen:
Was unsere Nutzer sagen
Jacob Miller - MotionVR
|