, bescherm je flash - anti - opgesteld door het gebruik van encryptie,,,,,,,,,, 4, 10 - eenheid,,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts 3 dollar.Niet' niet missen.,,, twee keer per maand, moeten we opnieuw een aantal van onze lezers favoriete posities, de hele geschiedenis van activetuts +.Deze handleiding is gepubliceerd in februari 2010,,,,,, in de les, ik zal laten zien aan een methode voor de code voor de bescherming en de activa van me gestolen.,,, anti - samensteller is ontstaan - inhoud en de echte zorgen.Je kunt veel energie te creëren de beste spel, dan kan iemand in om het te stelen, om het te vervangen, zet het op hun website, in plaats van je vragen.Hoe?Het gebruik van een anti - samensteller.Tenzij je een bescherming van de SWF 's kan je anti - opstelling van een druk op de knop en anti - samensteller output leesbare source code, voordat we beginnen, wil ik met m' n kleine projecten toont aan hoe kwetsbaar de staatsinvesteringsfondsen decompilatie.Je kan het downloaden, en door de bron zelf de test boven links.Mijn elfen met flash 5 opstelling van SWF 's en het onder de motorkap kijken.De code is gemakkelijk te begrijpen, je kan heel gemakkelijk te begrijpen en het hergebruik, wat kunnen we doen?Ik kwam met een benadering van de bescherming van de SWF 's anti - samensteller, zal ik laten zien in de handleiding.We moeten kunnen produceren dat:,, code, wissen, eigenlijk is de inhoud van de code ontcijferen en heeft niets te maken met je code.Trouwens, deze naam is illegaal, dus het is niet opgesteld.Proberen op te stellen, voordat we gaan, wil ik erop wijzen dat deze les niet voor beginners, je moet met een solide 3.Deze les is over het lage niveau van de programmering, met inbegrip van byte, bytearrays en het manipuleren van SWF 's, met een vloek... En dit is wat we nodig hebben:,, een SWF' s bescherming, downloaden van SWF 's zal ik FLEX SDK.,,, zullen we het gebruiken voor de verankering van de inhoud van de gebruik te verankeren..Je kan het downloaden van open - source. Adobe.,, een vloek... Zal ik gebruik maken van een gratis redacteur zegt dat je uit het nielshorn.net hex-ed. kunnen downloaden, of gebruik je je keuze van de redacteur,,, maar niet noodzakelijk, het zou controleren we de bescherming is eigenlijk heel goed.Je kan pakken, Flash. Sothink.com proces van stap 1: belasting, de SWF 's loopt, open een nieuw script 3 projecten en die voor de opstelling van het FLEX - SDK (ik gebruik FlashDevelop code schrijven).De keuze van een SWF 's wil je beschermen en die van binaire gegevens in de etikettering:,, [(Bron: "in verletcloth. SWF' s", van het type "application/octet-stream")] Bron: ///////de weg naar je wil de bescherming van de privé - variabele inhoud van SWF 's:;, nu de SWF' s ingebouwde als voor het laden, bytearray, machine SWF 's en laden, laad het programma. Loadbytes (),., laden: Lader = nieuwe lader (); addchild (lader); de lader. Loadbytes (nieuwe content (), nieuwe loadercontext (valse, nieuwe applicationdomain ())); en ten slotte zouden we dit code: invoer, pakje {flash.display.loader; de invoer van flash.display.sprite; de invoer van flash.system.applicationdomain; de invoer van flash.system.loadercontext; [SWF' s (met een breedte van 640, hoogte = 423) ///////afmetingen.De conclusie moet het laden en SWF 's de verankering van de eerste uitbreiding van de Sprite {[(Bron: "verletcloth. SWF' s", van het type "application/octet-stream")] Bron: ///////de weg naar je wil de bescherming van de privé - variabele inhoud van SWF 'S: klasse Main (); de functie van:void {var de lader: Lader = nieuwe lader (); addchild (lader); de lader. Loadbytes (nieuwe content (), nieuwe loadercontext (valse, nieuwe applicationdomain ()));}}}, opgesteld, kijk naar het beginsel (moeten).Vanaf nu zal ik bel die SWF 's "bescherming van SWF' s", en ", opgesteld door de SWF 's we net het laden van SWF' s".,, stap 2: de resultaten van de analyse, laten we proberen te wissen, zien of het werkt. En, ja!De activa en de originele code zijn verdwenen.Hieronder is de bescherming van SWF 's code - in plaats van de inhoud ervan.Het kan voorkomen dat die niet vertrouwd zijn met de eerste keer met de aanvaller niet voldoende bescherming van je werk goed is omdat de bescherming van SWF 's aanvaller wachten ze niet in de laden van de SWF' s.,, in stap 3: bij de SWF 's, laten we met een vloek... Open laden SWF' s:,, het moet lijken alsof willekeurig de compressie van binaire gegevens, omdat het moet van de ASCII - "kolen".We moeten ontspannen.Als je begint met de SWF 's ("service" en je ziet er zin in de string van SWF' s kunnen niet knijpen.Je moet om de compressie, gevolgd door een langs de), en het klinkt misschien moeilijk in het begin, maar dat is het niet.De SWF 's vorm is een open vorm, heeft een dossier, het beschreven.Adobe.com naar beneden rollen van 25 pagina 's te downloaden.Een beschrijving van het hoofd - en SWF 's is, dus we kunnen het niet gemakkelijk is de eerste byte 3, schrijven de handtekening is wat (CWS of service), in het kader van een van de volgende versie van byte flash, vier bytes van SWF' s de grootte van het dossier.De rest is - als de handtekening is CWS of - als de handtekening van regio 's.We schrijven een eenvoudige functies te ontspannen, bij de SWF 's: private functie (gegevens: bytearray): bytearray {var. Titel: bytearray = nieuwe bytearray (); de VAR -: bytearray = nieuwe bytearray (); var decompressie: bytearray = nieuwe bytearray (); hoofd. Writebytes (data, 3 en 5); ///////- titel gelezen, met inbegrip van de handtekening op. Writebytes (gegevens lezen, 8); ///////andere, samengedrukt. Uncompress (); de decompressie. Writemultibyte ("service", "ASCII -"); ///////mark niet - decompressie. Writebytes (hoofd); ////////writebytes (na de titel. Compressie); de niet - ingedrukte /schrijven nu terug bij de inhoud van de functie;}, doen een paar dingen:,, het lezenHet hoofd van de niet - ingedrukte (8 bytes) geen handtekening, het onthouden van het lezen van de gegevens en dus het rusten, schrijf het terug (met "fws" handtekening) en niet - gegevens, het creëren van een nieuwe, niet - ingedrukte SWF 's.,, 4: het creëren van een praktisch instrument, de komende we creëren in de compressie van SWF' s, flash is een handig.In een nieuw project na de opstelling van de klassen 3, als een soort document: invoer invoer, pakje {flash.display.sprite; flash.events.event; de invoer van flash.net.filefilter; de invoer van flash.net.filereference; de invoer van flash.utils.bytearray; uitbreiding van de compressor Sprite {particuliere var Referentie: bij de filereference; openbare functies () {REF = nieuwe filereference ref.addeventlistener (); (event.select, belasting); ref.browse ([nieuwe filter ("SWF 's", "*. SWF' s")]}); particuliere functionele belasting (E: gebeurtenissen): niet - {ref.addeventlistener (event.complete, processswf); de referenties (});Privé functie processswf (E: gebeurtenissen): ongeldig {VAR swf:ByteArray; - (ref.data. Readmultibyte (3, "ASCII -") (zaak C - "kolen": de SWF 's = decompressie (ref.data); breuk; zaak "service": de SWF' s = - (ref.data); schuld; Standaard: de fout ("niet de SWF 's...");} de doorbraak. Filereference (). Red (SWF' s);} privé functie - (gegevens: bytearray): bytearray {var. Titel: bytearray = nieuwe bytearray (); bytearray var bij:= nieuwe bytearray (); de VAR -: bytearray = nieuwe bytearray (); hoofd. Writebytes (gegevens van 3, 5); ///////- hoofd, met inbegrip van de handtekening niet. Writebytes (gegevens lezen, 8); ///////andere (); - de decompressie. Kompres. Writemultibyte ("kolen" en "ASCII -"); ///////- compressie. Writebytes (hoofd); -. Writebytes (bij); en de terugkeer van de compressie;} privé functie (gegevens: bytearray): bytearray {var. Titel: bytearray = nieuwe bytearray (); de VAR -: bytearray = nieuwe bytearray (d); var.Ecompressed:ByteArray = nieuwe bytearray (); hoofd. Writebytes (gegevens van 3, 5); ///////- titel gelezen, met inbegrip van de handtekening op. Writebytes (gegevens lezen, 8); ///////andere, samengedrukt. Uncompress (); de decompressie. Writemultibyte ("service", "ASCII -"); ///////- mark - decompressie. Writebytes (hoofd); ///////schrijven na de titel van decompressie. Writebytes (-); ///////- schrijven nu inhoud}}}, terug naar de decompressie; je kan zien dat ik zei twee dingen: de functie van de laad - en - documenten, op dezelfde oplossing is:De functie van kracht, maar dan omgekeerd.Het dossier is het gebruik van filereference (fp10 nodig) en bestand is samengedrukt of niet.Dat moet je de werking van een onafhankelijke speler in de SWF 's, filereference. Bladeren (), moet door de gebruiker te noemen (maar de lokale onafhankelijke speler kan het geen), 5, stap: decompressie - SWF' s, de instrumenten, het laden, de keuze van de SWF 's en kiezen waar Het redden.En dan opent met een vloek... En je door.Moet je zien, is dat ASCII - tekst in stap 6:,, analyse, laten we terug gaan naar stap 2.Maar niet dat anti - opstelling van alle nuttige informatie over de bescherming van SWF 's, van nu tot het niet - ingedrukte SWF' s truck is makkelijk, gewoon op zoek naar de handtekening "kolen" (indien de beschermde SWF 's - zoeken "fws") en de resultaten zien, wat we vinden, is Een definebinarydata etiket bevat beschermde SWF' s de winning van documenten, en daar is het een makkie.We moeten in de laden van de SWF 's nog een laag bescherming: encryptie.,, stap 7: de encryptie, zodat de bescherming van SWF' s niet "aardig" zullen wij nog een encryptie.Ik koos je uit code.google.com as3crypto kunnen downloaden.Je kan het gebruik van een bibliotheek (of wil je je eigen bereiken, of zelfs beter, de enige voorwaarde is dat het moet kunnen de encryptie en door gebruik te maken van de sleutel is van binaire gegevens.,, salaristrap 8: de versleuteling van gegevens, het eerste wat we moeten doen is het schrijven van een instrument Om de bescherming van SWF 's in het kader van de encryptie het.Het moet de bibliotheek van de as3crypto zeer fundamentele kennis, dit is heel eenvoudig.Toevoegen aan je bibliotheek en laten we beginnen met de voorbereiding van de bibliotheek, de weg is als volgt:, de VAR - AES:aeskey = nieuwe aeskey (binkey); var bytestoencrypt:int = (data.length &; ///////- 15) om ervoor te zorgen dat het kan worden verdeeld in 16, De laatste vier bytes nul (var i:int = 0; ik < ik bytestoencrypt; + = 16) aes (data, ik);, wat is hier gebeurd?We gebruiken een soort van aeskey versleuteling van de inhoud van as3crypto noemen.Dit soort encryptie in een 16 bytes (128), moeten we de ring van versleuteling van gegevens voor alle.Noot 2: data.length & - 15.Het aantal bytes om ervoor te zorgen dat de encryptie kan worden gedeeld door de 16, we lopen niet uit de gegevens, dat de bijwerkingen. Encrypt (),,, noot: in dit geval, te weten de encryptie zeer belangrijk punt.Dit is niet echt de encryptie, maar omdat we in de war met inbegrip van SWF 's sleutel.Het doel is om de gegevens van een binaire code boven de vuilnis, en haar werk te doen, maar het kan tot 15 van encryptie byte (dit is niet van belang, in dit geval).Heb ik een wachtwoord niet. Ik ben er vrij zeker van, de code van het wachtwoord niet kan vanuit het oogpunt van de zwakke, maar zoals ik al zei, we zijn volledig onafhankelijk van de sleutel in de SWF 's.,, stap 9: het nut van het nut van encryptie, tijd, ons zal helpen Bij het creëren van een encryptie SWF' s.Dat we de vroege stadia van de productie en de compressor is bijna hetzelfde, dus ik zal niet te veel te zeggen.In de samenstelling van een nieuw project als een soort document: invoer invoer, pakje {com.hurlant.crypto.symmetric.aeskey; flash.display.sprite; de invoer van flash.events.event; de invoer van flash.net.filereference; de invoer van flash.utils.bytearray; uitbreiding van openbare - particuliere var: de sleutel? - string = "activetuts"; ik hard codering, een van de belangrijkste particuliere var Referentie: openbare functies encryptor (filereference;) (ref = nieuwe filereference (); ref.addeventlistener (event.select, belasting); Referentie bladeren (); de particuliere functionele belasting (e): de gebeurtenissen): ongeldig {ref.addeventlistener (event.complete, opnieuw gecodeerd);F. (); (e) de particuliere cryptografische functie: gebeurtenissen): ongeldig {VAR gegevens: bytearray = ref.data; var binkey:ByteArray = nieuwe bytearray (); binkey. Writeutf (belangrijke); ///////aeskey binaire sleutel nodig AES:VaR aeskey = nieuwe aeskey (binkey); var bytestoencrypt:int = (data.length & - 15); ///////ervoor te zorgen dat kan worden gedeeld door de laatste 16, 4 bytes nul (var i:int = 0; ik < bytestoencrypt; I + = 16) aes (data, ik); de nieuwe filereference (). Red (gegevens);}}}, die het nu, zodat de encryptie - bescherming van SWF 's eerste dan redden.Het onder een andere naam.,, stap 10: wijziging van de procedures om terug te keren naar de belasting van SWF 's project.Want nu hebben we behoefte aan een herziening van de inhoud is de encryptie - SWF 's en encryptie codes naar binnen.Vergeet niet in rekening op de verandering van SWF 's "- pakket - com.hurlant.crypto.symmetric.aeskey., invoer; de invoer van flash.display.loader; de invoer van flash.display.sprite; de invoer van flash.system.applicationdomain; de invoer van flash.system.loadercontext; de invoer van flash.utils.bytearray; [SWF' s (met een breedte van 640, hoogte = 423). ///////worden en de afmetingen van de belangrijkste categorieën van de laden van SWF 's de uitbreiding die Sprite {[(Bron:" verletclothen. SWF' s ", van het type" application/octet-stream ")] Bron: ///////de weg naar je wil de bescherming van de privé - variabele inhoud van SWF 's: klasse; de belangrijkste: de locomotief string =" activetuts "; de functie van de belangrijkste ()Nietigverklaring {var: gegevens: bytearray = nieuwe content (); de VAR - binkey:ByteArray = nieuwe bytearray (); binkey. Writeutf (belangrijke); ///////aeskey binaire sleutel nodig AES:VaR aeskey = nieuwe aeskey (binkey); var bytestodecrypt:int = (data.length &; ///////- 15) om ervoor te zorgen dat de laatste 16 gedeeld door 4 bytes. Nul (var i:int = 0; ik < bytestodecrypt; I + = 16) (AES - data, ik); var de lader: Lader = nieuwe lader (); addchild (lader); de lader. Loadbytes (gegevens, de nieuwe loadercontext (valse, nieuwe applicationdomain ()));}}}, dit is voor dezelfde met uitzondering van -- de code in het midden.Nu verzamelen en controleren of het laden van SWF 's werk.Als je aandachtig gevolgd door de tot nu toe de bescherming van SWF 's moet het laden en het blijkt dat er geen verkeerde stap 11:.,, het gebruik van anti - samensteller naar binnen, de opening van een nieuwe lading van de SWF' s doel zien.,, met inbegrip van het moeilijk vinden in encryptie Codes duizend, maar wellicht moeilijker te verkrijgen zijn de bescherming van SWF 's.Hebben we nog meer stappen moeten nemen, de aanvaller:,, hij of zij heeft vastgesteld dat er de versleuteling van de inhoud van het definebinarydata en winning, hij moet een instrument te scheppen -.,, het probleem is, het creëren van een instrument is van anti - kopiëren en plakken in codes... En de aanpassing van De code is een beetje simpel.Ik probeerde in te breken in mijn beschermen, dit is heel eenvoudig - ik proberen dit ongeveer 5 minuten.Dus we moeten een aantal maatregelen te nemen tegen het touw, stap twaalf:., verwarring, moeten wij in de eerste plaats om de bescherming van de SWF 's laden van SWF' s en encryptie, nu zullen we het resultaat van de werkzaamheden van de belasting van de SWF 's.We zullen om de klas, de functie en de variabele voor de illegale naam, door te zeggen dat de illegale naam, ik bedoel zoals;.^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ @ @ @ @ @ @,en (^ _ ^).Het leukste is, het probleem van de samensteller van, maar geen Flash Player.Als samensteller van illegale karakter van die interne, niet van het project, dus niet stellen.Aan de andere kant, spelers, geen problemen met deze illegale naam.We kunnen met de identificatiecode van de legitieme opstelling van SWF 's, decomprimeren en om hen een betekenisloze illegale symbool.- die produktie van illegale code, en de aanvaller moet in de code kan worden opgesteld, met de hand verwijderen van illegale identificatiecode van het.Hij moet het verdienen.Dit is hoe het er uit ziet in een string verwarring:,, laten we beginnen!Bij het laden van SWF 's gebruiken we gecreëerd voor het vuur, het nut van een hexadecimaal redacteur.,, stap 13: uw eerste verbijstering, we proberen het document.Stel dat je weg was de oorspronkelijke naam (voornaamste), laten we met een vloek... Op zoek naar het laden van SWF 's:,,,,, "om de";,.Nu naar de andere "belangrijke" en nieuwe,;;;;,,,, wanneer zal ervoor zorgen dat je niet wordt niet noodzakelijk een string of van SWF 's zal niet werken, en die het behoud van de SWF' s.,.Het werkt!Kijk naar de overwinning, wissen, zei.!:,, stap 14: om de rest van de klas, om de rest van je nieuwe naam.De keuze van een klasse van de naam en het gebruik van illegale symbool zoeken, ter vervanging van het tot je bij het einde van het dossier toe.Zoals ik al zei, het belangrijkste is dat je gezond verstand gebruiken, moet je niet uit je SWF 's.Na de wijziging van de naam, je kan in de tas.Om het pakket aan, je kunt wissen ook op lange termijn, waardoor het een illegale - pakket.Kijk wat ik heb gedaan: als je klaar om de klas, en pakket, kan je beginnen met variabele en functie.Ze zijn zelfs nog makkelijker te noemen, omdat ze vaak slechts een keer, in een grote wolk.Nogmaals, zorg ervoor dat je alleen om je "methode, in plaats van met Flash.Zorg ervoor dat je niet om belangrijke ("activetuts" in ons geval), en stap 15: - de SWF 's, ben je klaar om je te druk kan de SWF' s, het is de kleine.Geen probleem, we kunnen gebruik maken van de praktische procedures voor het comprimeren van ons, zal het werk doen.Het nut van SWF 's, selectie en opgeslagen in een andere naam.,, conclusies: er is een laatste blik, het openen van een zien.De variabelen voor de bescherming van de naam en de verwarring en de SWF 's dossier ergens, encryptie.Deze techniek kan worden toegepast op het na een paar keer langzaam, maar het duurt maar een paar minuten, een tijd geleden, maakte ik een automatische instrumenten voor de bescherming van aan de belasting van SWF 's in mijn SWF' s, het werkt goed.Het enige probleem is dat, als het gebruik van een geautomatiseerd instrument kan worden toegediend, kan het gebruik van een andere - nut, dus als de aanvaller is een praktische, hij zal je alle SWF 's gemakkelijk.Omdat ik het leuk vind om de bescherming van de staatsinvesteringsfondsen elke handbediende toevoeging van een geringe wijziging van de automatisering, dus moeilijk te realiseren, de technologieën een goede toepassing van domeinnamen, gesloten.- de SWF 's string constanten kunnen ontcijferen en met het domein van SWF' s loopt.Dus, er is een verklaring van de gebieden te controleren, kan je een krachtiger aanpak voor de bescherming van SWF 's van het op andere gebieden, nog een laatste ding, je kan je eigen encryptie codes te vervangen.Waarom?We investeren om de code is illegaal, maar we gebruiken de code is een epidemie van de bibliotheek, de aanvaller kan toegeven dat het zo is.Hij zal het downloaden van een schone kopie van alle verwarring werk ook overbodig.Aan de andere kant, hij kan met z 'n herstel nodig is voor de uitvoering van de voortzetting van alle illegale naam.,, andere methoden voor de bescherming van de SWF' s stelen, want de wereld is met een van de grote problemen van de staatsinvesteringsfondsen, bescherming van de andere opties.Zijn er veel programma 's zijn in deze code niveau verwarring (zoals de Kindisoft secureswf).Ze zitten in de problemen, de opstelling van de code van de code en bytes te falen, zelfs instorten, soms.Natuurlijk is deze bescherming op het gebied van veiligheid beter, maar het is de dollar in de keuze van de kosten, dus hoe bescherm je de SWF 's rekening te houden met de behoeften van het gegarandeerde bedrag.Als dit over de bescherming van een algoritme je 50 werknemers - studio 's die de ontwikkeling van de afgelopen twee jaar, je zou kunnen overwegen om iets beters dan de variabele.Aan de andere kant, als u wilt voorkomen dat kinderen als gevolg van onjuiste cijfers ingediend, je zou kunnen overwegen het gebruik van deze technologie, en ik hou van deze techniek is het feit dat de bescherming die je SWF 's is intact.In de war geknoeid byte code en die afbreuk kunnen doen aan de SWF 's en leiden tot fouten (hoewel ik nog niet ontmoet, een eigen), hier vandaag, in de hoop dat je deze les geleerd.Als je een probleem hebt, kan op elk moment van stemming onthouden van commentaar op.
Het beschermen van je flash dossiers door het gebruik van encryptie
Next Page:MIKE, Mike