Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411522 Posts in 69377 Topics- by 58431 Members - Latest Member: Bohdan_Zoshchenko

April 28, 2024, 08:27:53 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Making flash EXEs
Pages: 1 2 [3]
Print
Author Topic: Making flash EXEs  (Read 16169 times)
bateleur
Level 10
*****



View Profile
« Reply #40 on: December 29, 2009, 03:30:46 AM »

But I think the point is more that it's hard to figure out what a variable is for just from how it's used.

It depends a lot on the code. For most small games it's quite easy. I once reconstructed the source code for a bunch of Java games from their .jar files - not quite the same as AS3, but the obfuscation is very similar. And I'm not a hacker at all. For someone experienced in the field it would likely be entirely straightforward most of the time.


Logged

BorisTheBrave
Level 10
*****


View Profile WWW
« Reply #41 on: December 29, 2009, 03:46:40 AM »

I'd disagree for larger games, but the hacker only wants to remove site locking, credits display, etc, so yeah.
Logged
Martin 2BAM
Level 10
*****


@iam2bam


View Profile WWW
« Reply #42 on: December 29, 2009, 08:35:22 AM »

One "anti-crack" method is to add checking code redundantly all around the code and obfuscate (as you can't compile in Flash).

So that way it's harder to just gut it and remove the sitelock.
I like the way some obfuscators also obfuscate the strings with function and key like
$(key, encrypted string) => decrypted string

Is there a way in Flash to know the checksum of the SWF or something?
Logged

Working on HeliBrawl
aeiowu
Level 10
*****


Greg Wohlwend


View Profile WWW
« Reply #43 on: December 29, 2009, 09:07:42 AM »

thanks for keeping us posted Terry. This is something we've been meaning to try for a game relatively soon and it seems your solution is the right route.

CHEERS!  Beer!
Logged

Martin 2BAM
Level 10
*****


@iam2bam


View Profile WWW
« Reply #44 on: December 31, 2009, 02:08:20 AM »

I haven't read this in the thread but perhaps someone already wrote about it:
stage.showDefaultContextMenu
It shows/hides the "File, View, Control..." Top menu bar

As I use Flash Develop and it doesn't have any export to .exe option, I first compile a .swf, open it with the projector, and create a projector from it in the File menu.

I use this code:
Code:
stage.showDefaultContextMenu = (stage.root.loaderInfo.url.search(/.swf$/)>=0);
In order to be able to hide the menu on the .exe but still be able to export it from the projector-opened-.swf
When you run the projector with your embedded game (that doesn't end in ".swf" Smiley) the menu is disabled.

Also I successfully used Resource Hacker to change the icon. You can even hack the menues, about dialogs and strings... but that's unlikely EULA-friendly.

And the issue on Mac is not Amanita's fault. The way that Mac binds to extensions is a bit awkward. When you run the program it automatically binds to all the extensions you say you "own" at the info.plist.
The generated projector should disable extension bindings somehow.

Best regards
Logged

Working on HeliBrawl
Richard Kain
Level 10
*****



View Profile WWW
« Reply #45 on: December 31, 2009, 01:22:59 PM »

I'd take another look at AIR, if I were you. It's true that AIR does not allow for the bundling of stand-alone .EXE files. But it does let you bundle flash games up into a single file, install that game to a user's computer, and then access resources and files on the user's computer.

The most apt comparison for AIR would probably be the Java Runtime Environment. You usually don't compile Java programs into .EXE files. You compile them into .JAR files. And then you just run them the same way you would an .EXE file. With AIR, you compile your software to a .AIR file. (I believe) Then when you open it on a computer that has the Adobe AIR Runtime installed, it installs the program to your hard drive.

Flash projector (.EXE) files are nice. But they are essentially just a bundling a version of the Flash Player with your SWF file. Aside from the bundling, there are no other real benefits. You are still constrained to all of the limitations that plague the Flash web plug-in. With AIR, you would have access to numerous operating system features that the Flash Player just doesn't enjoy.
Logged
Tycho Brahe
Level 10
*****

λx.x


View Profile
« Reply #46 on: December 31, 2009, 05:04:20 PM »

Flash projector (.EXE) files are nice. But they are essentially just a bundling a version of the Flash Player with your SWF file. Aside from the bundling, there are no other real benefits. You are still constrained to all of the limitations that plague the Flash web plug-in. With AIR, you would have access to numerous operating system features that the Flash Player just doesn't enjoy.
I'd posit that 90% (complete and utter guess) of end users do not have the stand-alone flash player installed, making projectors a much better option for them. I may however be wrong about that.
Logged
Martin 2BAM
Level 10
*****


@iam2bam


View Profile WWW
« Reply #47 on: January 01, 2010, 05:26:38 AM »

Richard, you have a valid point: AIR is a lot better for desktop apps.
But I think about it in terms of simplicity.

My games do not use anything that AIR offers.
To save the games I use a SharedObject and almost never load external multimedia content (making my projector monolithic).

I would only want the least effort to make it a desktop app, and the projector seems to be the best way to deal with that.

Regards!
Logged

Working on HeliBrawl
Richard Kain
Level 10
*****



View Profile WWW
« Reply #48 on: January 02, 2010, 11:37:44 AM »

Well yes, AIR certainly isn't for everybody. A game that doesn't need to tie into the user's system won't require what AIR offers. And one of the best things about Flash Projector files is that they don't require any installation. It doesn't matter if the user has a copy of the flash player, or even the flash player plug-in. Just double-click on the exe file and you're good to go.

There is a specific command that can be fed to the command-line compiler that will open the flash player up to a local sandbox. This allows the swf, and the exe generated from the swf, to access local files. I believe it also disables the resulting file from accessing on-line files though, so there is a trade-off. This feature is especially valuable if you want to use a flash projector file as the autoexec file on a CD or DVD disc.
Logged
Terry
TIGSource Editor
Level 10
******



View Profile WWW
« Reply #49 on: January 02, 2010, 11:50:13 AM »

There is a specific command that can be fed to the command-line compiler that will open the flash player up to a local sandbox. This allows the swf, and the exe generated from the swf, to access local files. I believe it also disables the resulting file from accessing on-line files though, so there is a trade-off. This feature is especially valuable if you want to use a flash projector file as the autoexec file on a CD or DVD disc.

Is that so? Have you any more information about that? Smiley
Logged

bateleur
Level 10
*****



View Profile
« Reply #50 on: January 02, 2010, 12:03:14 PM »

There's possibly a bit of confusion going on here.

A Flash SWF loaded from local storage is always in the "local sandbox" by default. So, for example, it can load URLs relative to itself. Such files are banned from accessing online content by definition.

If you want to mess with this kind of thing I recommend reading this document (Adobe), but I've never found it all that useful for deploying games.
Logged

Pages: 1 2 [3]
Print
Jump to:  

Theme orange-lt created by panic