[Flash] decompilatie uitdaging voor $4000!

Pagina: 1
Acties:

  • T.T.
  • Registratie: April 2000
  • Laatst online: 22-01 14:13

T.T.

Sowieso

Topicstarter
De makers van ActionScript Abfuscator (een programma dat de ActionScripts in SWF bestanden beschermt tegen decompilatie) hebben een wedstrijd uitgeschreven waarin ze $4000 bieden aan de eerste die binnen een maand het password achterhaalt dat in het SWF file zit.

http://www.flashguru.co.uk/000123.php
Earlier this month i announced the release of the Genable Actionscript Obfuscator, a tool for scrambling the actionscript in your swf files, thus making them hard to decompile/reverse engineer. Genable are now challenging everybody to crack the password contained inside of this swf file. The first person to publically announce the password and successful verification message found inside the swf file, here, in this article will win themselves a hard earned $4000. For the full lowdown on this challenge, read on.....

The Challenge:

1. Crack the swf file
2. Attempt to get the password and verification message inside of the file
3. Announce and prove your claim
4. Win yourself $4000

The Intentions:

By inviting people to mount attacks upon the swf file, we want to express our confidence in the strength of the encryption algorithms we have implemented.

The Swf file:

It's a tidy demo of a client-side password verification & text decryption system. You can view the file online here, or download the swf file here(Flash 6 Format - Zip Archive - Virus Tested)
De uitdaging is 7 dagen geleden begonnen, dus je hebt nog ongeveer 3 weken :)
Ik ga het zodadelijk ook proberen, maar misschien zijn er meer mensen met interresse in $4000 :+

  • xshredx
  • Registratie: Maart 2001
  • Laatst online: 17:41

xshredx

 

Haast je dan maar...

ik vind het nogal domme contest. Duidelijk dat ze beetje reklame willen maken voor hun obfuscator, maar de contest zelf vind ik beetje oneerlijk... of toch op zijn minst gezegd onduidelijk en misleidend.

Ik verklaar: code obfuscaten is iets dat natuurlijk al lang bestaat. Zelf heb ik bijvoorbeeld ook al eens van enkele php scripts alle variabelen en functies vervangen door var1, var2, ... en f1, f2, ...
Dit omdat ik niet wou dat diegene die het script kreeg meteen mijn code kan 'stelen'... als je zo'n ganse bunch code ziet met erg onduidelijke variabelen- en functienamen wordt het al heel wat moeilijker om de code te doorgronden. Er bestaat een php obfuscator project dat dit nog beetje verder drijft zodat je erg onleesbare code krijgt.
Ook voor flash had ik gedacht om dat te doen: gewoon perl scriptje over actionscript code gooien.
Hier is dat idee enkel wat doorgedreven: de actionscript code wordt een beetje rondgegooid, en alle variabelen en functie en... namen worden erg onduidelijk gemaakt.
Tot zover ok... code obfuscaten maakt het inderdaad moeilijker om de code te stelen of zelfs te begrijpen.

Maar deze contest is volgens mij om de volgende reden oneerlijk: om het paswoord te kraken moet je meer kunnen doen dan enkel hun actionscript de-obfuscaten.
Dat is namelijk al gebeurd, door de gast die Action Script Viewer (een flash decompiler) maakt. De code van die swf waarom het hier allemaal draait kan je vinden op: http://www.buraks.com/fguru123/

En wat blijkt nu? Het paswoord is opgeslagen als een md5 hash (of toch een hash soortgelijk aan md5). Zo'n hash is, voor diegenen die dat niet weten, one-way: je kan dus iets hashen, maar niet meer het oorspronkelijke woord of zin terughalen.
Daarom is het oneerlijk: als je hun obfuscator kunt beaten heb je nog altijd het paswoord niet, omdat het geëncrypteerd in die swf file opgeslagen zit... eigenlijk is het dus een contest om encryptie algoritmes te verschalken, en niet hun eigen progje.

Technisch zou die swf zo in elkaar zitten: het ingegeven paswoord (je kan dus proberen of je het juiste paswoord hebt) wordt gehashed en dan vergeleken met de oorspronkelijke hash... niet gelijk >> ingegeven paswoord als test is dus verkeerd.
Wel juist, dus de opgeslagen hash en de gegenereerde hash van wat jij wil testen komen overeen >> dan wordt jouw input, wat dus het juiste paswoord is, gebruikt als key voor een DES routine, waarmee de geëncrypteerde boodschap dan gedecrypteerd wordt.

Eigenlijk is het hier dus gewoon een cracking contest, daar hun obfuscator gewoon wel te lezen code uitspuugt (check die link dus die ik gaf).
Natuurlijk is actionscript code waarin de variabelen en functienamen en de flow-control door elkaar gegooid worden erg onleesbaar en veel onduidelijker geworden... maar daarmee hebben ze dus niet dat paswoord beveiligd.

Zolang de swf player SDK vrijelijk ter beschikking is van iedereen (open formaat), zal het misschien nooit mogelijk zijn een swf perfect te beschermen. Natuurlijk, nogmaals, het is heel wat moeilijker geworden om iets met de actionscript code aan te vangen nadat er een obfuscator overheen gegooid is.

Anyway, laat me deze post eindigen met te zeggen: echte flash dev'ers decompilen geen filmpjes, maar maken ze zelf >:)

Gewoon beetje stunt van de makers van dit progje denk ik om publiciteit te winnen... iedereen kan een systeem maken om hashes en DES encryptie in een swf te gooien om paswoorden in een swf zo secure als mogelijk te maken, of er nu een obfuscator overheen ligt of niet.

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

idd. wat ook in het commentaar eronder staat. decompilen is zo gebeurd, maar dan zit je met die des/md5, en dat is niet bepaald hun eigen verdienste, zo kan ik ook een hack/crack contest uitschrijven.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

offtopic:
welcome back Clay


* oh,when? gaat zo ff een try doen :)

"You're only as good, as what you did last week."


  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

xshredx schreef op 27 augustus 2002 @ 21:06:
Haast je dan maar...

En wat blijkt nu? Het paswoord is opgeslagen als een md5 hash (of toch een hash soortgelijk aan md5). Zo'n hash is, voor diegenen die dat niet weten, one-way: je kan dus iets hashen, maar niet meer het oorspronkelijke woord of zin terughalen.
Daarom is het oneerlijk: als je hun obfuscator kunt beaten heb je nog altijd het paswoord niet, omdat het geëncrypteerd in die swf file opgeslagen zit... eigenlijk is het dus een contest om encryptie algoritmes te verschalken, en niet hun eigen progje.
kheb ff de swf naar bytecode gedecompiled..en wat zie ik?

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
function MD5 ('_msg_')

[..]

function des ('key', 'message')

[..]

function des_keygen ('key')

[..]

function arrayToHex ('s')


en dan de belangrijkste:

JavaScript:
1
2
    onClipEvent release
      constants '_root', '05d5430067e247e076d4820691e4a39b', 'input', 'ValidatePassword', '51c8cc302888888ff30b1c9025eb1895229870d45619997a9b27fbf5ac7ef484ffbcfb16cf46e822d31159d0d3cd52cd', 'DecryptString', 'Invalid Password. Please try again.'  


tja...

edit:


/me zat weer eens niet goed op te letten. xshredx postte al de link naar de actionscript code ( van buraks )

"You're only as good, as what you did last week."


  • T.T.
  • Registratie: April 2000
  • Laatst online: 22-01 14:13

T.T.

Sowieso

Topicstarter
zover was ik nog niet gekomen, maar dat is inderdaad een erg flauwe "contest"!

jammer dat ze op deze manier te werk gaan. Een prijsvraag uitschrijven waarbij je zeker weet dat je nooit een prijs hoeft uit te keren :(

Maar xshredx in ieder geval bedankt voor de uitvoerige uitleg _/-\o_

Verwijderd

Ik moest wel lachen om de post eronder btw: SWF to FLA convertor :-)
Pagina: 1