Pls. suggest how can we protect ur flash work from swf catchers.
thnx,
Short answer: you cannot make an SWF impossible to copy. As said, anything the client can run can be captured; ’s point (“don’t put it online”) is blunt but technically true. The best approach is to raise the effort required so only a determined attacker succeeds.
Practical, layered defenses (combine several)
Example: signed URL pattern (conceptual)
# generate a URL with expiry and HMAC signature
$expires = time() + 300;
$payload = "/swf/myfile.swf|$expires";
$sig = hash_hmac('sha256', $payload, $secret);
$url = "/get.php?f=myfile.swf&exp=$expires&sig=$sig"; On the server validate the signature and expiration before streaming the file.
Notes and caveats: SWF encryption and obfuscation raise the bar but cannot stop a motivated reverse-engineer (see https://github.com/jindrapetrik/jpexs-decompiler). Flash is end-of-life and unsupported in modern browsers; migrate interactive work to HTML5/Canvas/WebGL where asset delivery and modern DRM/streaming options are easier to control. ’s suggestion to try encryption tools is valid — use them as one part of the layered approach.
Jump to Post— jbennet 1,618you cant, they need to able to download it to watch it
Jump to Post— MidiMagic 579If you want to protect it, don't put it on the Internet.
I predict the end of the concept of "intellectual property" within a few years.
you cant, they need to able to download it to watch it
If you want to protect it, don't put it on the Internet.
I predict the end of the concept of "intellectual property" within a few years.
If you mean that you dont want others to download and watch your swf files, then yes, you could save it, indirectly though. Basically they will download it, but wont be able to watch it. Firstly you could check whether the domain in which the swf movie is running is allowed using object. This is probably used extensively by Flash game sites. Here's how you could implement it.
var loc:LocalConnection = new LocalConnection();
var domain:String = loc.domain();
if (domain == "www.yoursite.com") {
gotoAndPlay("start");
} else {
gotoAndPlay("access_denied");
}
And you could check in which player are you running this swf file using
For Example:
var player:String = System.capabilities.playerType;
if( player == "ActiveX" )
gotoAndPlay("start");
else
gotoAndPlay("access_denied");
And to prevent your swf from being decompiled, use any SWF Encrypters. However, as far as I know it would only encrypt your ActionScript, your sound and movies will still be readable.
thanks a lot for your great solution.
thnx,
There are several swf encryption programs.
Google swf encryption
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.