Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

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

April 28, 2024, 12:12:07 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 16167 times)
Terry
TIGSource Editor
Level 10
******



View Profile WWW
« Reply #20 on: December 26, 2009, 07:13:07 PM »

Seems like maybe you could build it as an AIR application and buy Shu light as a cheap projector.

I had a look at this, but couldn't get it to work! I'll try again tomorrow.

Though that option rules out a linux version, which I'd really prefer not to do...
Logged

deathtotheweird
Guest
« Reply #21 on: December 26, 2009, 08:13:11 PM »

There is also http://www.airaveer.com/ for converting Air apps. not as feature rich as Shu though. 31 day trial with no limits apparently but also no Linux support.

Zinc is a good program if it wasn't so slow.
Logged
Draknek
Level 6
*


"Alan Hazelden" for short


View Profile WWW
« Reply #22 on: December 26, 2009, 08:18:17 PM »

Yeah, I think so - unfortunately, I don't think any of those programs actually work for very long...
Is it just the decompilation you're particularly worrying about? Whatever you do won't defeat a sufficiently motivated individual, even if you port it.
Logged

roboprez
Level 1
*


Got to love them pixels


View Profile WWW
« Reply #23 on: December 26, 2009, 11:35:05 PM »

Seems like maybe you could build it as an AIR application and buy Shu lite as a cheap projector. They have a free trial, and the lite version is $45. There's joystick support, and Mac and Windows. That's what I'm planning to try for my Gamma4 project.
Really? For GAMMA I'm just going to save mine as a projector. Then make another exe which opens the game AND flashjoystick, a free program which turns joystick stuff into keystrokes
Logged

PGGB
Level 8
***



View Profile
« Reply #24 on: December 27, 2009, 12:24:28 AM »

I did that with the offline version of Don't Look Back, but I recently had someone decompile a game of mine and remove the sitelock. I don't think that's really secure if the person playing has incentive to hack it.
If the person playing has the incentive to hack it you're pretty much helpless.
Even if you obfuscate the code someone is still be able to get through. I don't think worrying too much about it will help.
Logged
just a random faggot
TIGBaby
*


View Profile
« Reply #25 on: December 27, 2009, 11:57:04 AM »

How about mprojector?
Logged
Martin 2BAM
Level 10
*****


@iam2bam


View Profile WWW
« Reply #26 on: December 27, 2009, 02:44:46 PM »

I think I read somewhere that the EULA has something about embedding an ActiveX in a custom executable and such, which is not permitted or something.

And an URL "site"-locking to "file://..." will stop the common douche but of course not a decompiler.

Regards
Logged

Working on HeliBrawl
Terry
TIGSource Editor
Level 10
******



View Profile WWW
« Reply #27 on: December 27, 2009, 04:32:16 PM »

Ok! I've made some interesting discoveries on this front! Here they are:

  • Adobe AIR is too problematic to bother with in any form, including AIR2EXE tools like Shu and AirAveer, because of something called the Adobe AIR Runtime Distribution License Agreement, which would mean I'd have to subject the player to confusing AIR nonsense or at least make them read a EULA. Not worth it. This has more details on that.

  • I'm fairly sure that Machinarium is just using a regular hacked/modified projector. What's more, I think I've found how they did it...

  • Turns out there actually are commands in flash to disable nonsense projector stuff. You need to include the package "flash.system.fscommand", and then all of these things become available:

    • To get rid of the menu:

      fscommand("showmenu", "false");

    • To get rid of the projector keybindings, i.e. ESC to return to a window:

      fscommand("trapallkeys", "true");

    • To start in fullscreen mode: (there is an fscommand to do this too, but because of the whole flash security theatre thing you can't do it and the key binding thing at the same time)

      var swfStage:Stage = stage;
      swfStage.scaleMode = StageScaleMode.SHOW_ALL;
      stage.displayState=StageDisplayState.FULL_SCREEN;

    • And finally, to quit the projector:

      fscommand("quit");

    More info on that here.

  • Things like the program icon I can probably just change with a tool like ResHacker, at least in windows. But this doesn't really matter all that much.

  • So, the remaining problem is basically just SWF security. There's not a whole lot I can really do here, except maybe make the assets external and use a code obfuscater. But all that'll probably do is slow things down, really.


Thanks for the suggestions, everyone Smiley
Logged

Martin 2BAM
Level 10
*****


@iam2bam


View Profile WWW
« Reply #28 on: December 27, 2009, 05:27:21 PM »

Thanks to you for all the updates and information Smiley

EDIT: To ship everything in one standalone EXE you can use UPX or something like that. I think it even let you set the icon.
« Last Edit: December 27, 2009, 05:35:28 PM by nitram_cero » Logged

Working on HeliBrawl
Terry
TIGSource Editor
Level 10
******



View Profile WWW
« Reply #29 on: December 27, 2009, 05:36:45 PM »

Oh! Don't virus scanners all think that compressed EXEs are viruses, though?
Logged

increpare
Guest
« Reply #30 on: December 27, 2009, 06:24:59 PM »

Yeah I'd say hold off the exe compression.
Logged
Martin 2BAM
Level 10
*****


@iam2bam


View Profile WWW
« Reply #31 on: December 28, 2009, 12:56:51 AM »

I didn't knew that, but it's probable :p sorry
Logged

Working on HeliBrawl
grapefrukt
Level 1
*



View Profile WWW
« Reply #32 on: December 28, 2009, 01:43:02 AM »

i use zinc for some stuff at work and i haven't noticed any performance issues, it might just be the watermark that's added in some stupid way that slows it down. if you trust me i could do a projector for you using my license just to try it out.

it also has some encryption stuff, but i'd guess there's already cracks for that out, but it might be worth looking into. zinc also lets you change the resolution before you go fullscreen which is pretty nice.
Logged
KommanderKlobb
Level 0
**


designer, coder, co-founder of Honeyslug


View Profile WWW
« Reply #33 on: December 28, 2009, 03:25:35 AM »

I recommend checking out Jugglor - www.flashjester.com, which we used in a commercial release.

I don't pretend to fully comprehend the differences between it and other swf-wrapping software, but in my experience it was a lot faster than the several others I tried - for us, the output Jugglor exe run at exactly the same speed as the game did in FP10.

You basically create a projector file yourself using whichever version of the Flash Player you want (I used 10). Then give it to Jugglor and it wraps it, removing the Flash menu / title bar, lets you provide your own icon, and optionally disables the right click menu. There are also APIs for things you probably want to do but can't in native Actionscript - reading / writing your savegame data to a file for example.

Pretty reasonably priced too.

Cheers,

Ricky



Logged

klobb.posterous.com<br />www.honeyslug.com <br />www.hohokum.com<br />www.savethekahoots.com
BorisTheBrave
Level 10
*****


View Profile WWW
« Reply #34 on: December 28, 2009, 04:20:53 AM »

When these things disable right click menus, is it still possible to catch right click events in AS3? Because that's something I could really appreciate.
Logged
increpare
Guest
« Reply #35 on: December 28, 2009, 05:17:05 AM »

When these things disable right click menus, is it still possible to catch right click events in AS3? Because that's something I could really appreciate.
mac users won't : P
Logged
Terry
TIGSource Editor
Level 10
******



View Profile WWW
« Reply #36 on: December 28, 2009, 07:40:26 AM »

I guess I'm not really looking at any SWF2EXE tools anymore, since the only one that's got a linux version doesn't work for me. grapefrukt, thanks for the offer! But I've already tried this with someone else and I still had the same problem...
Logged

Μarkham
Level 10
*****



View Profile WWW
« Reply #37 on: December 28, 2009, 11:31:57 AM »

You could do some obfuscation yourself.  When you're finished with all the code, you could use the "Find in Files" tab in Notepad++ to find and replace certain variable names, functions and class names with random jumbles of characters in all the related files and then strip them all of newline characters and tabs.  Just imagine someone trying to figure out what the difference between ll11l1 and l11l1l are.
Logged

Sar
Level 3
***


Likes Violins


View Profile WWW
« Reply #38 on: December 28, 2009, 06:21:39 PM »

Just imagine someone trying to figure out what the difference between ll11l1 and l11l1l are.

Honestly, once you have the source code, efforts like that are largely wasted. Pretty much every IDE these days has a "jump to definition" feature, and from there it's just a case of using refactoring tools or a global find/replace of your own to re-name the variables to something more sensible.
Logged

Currently working on: Chronicle of Mars
Previous Projects: [Käfer|Tristan and Iseult(TIGS)]
BorisTheBrave
Level 10
*****


View Profile WWW
« Reply #39 on: December 29, 2009, 03:11:00 AM »

Using professional obfuscators, they can sometimes swap out symbol names for INVALID symbol names, without affecting the end result, because they work at the bytecode level which doesn't have so many checks. This usually throws refactoring tools for a loop. But perhaps decompilers can deal with that, too.

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.
Logged
Pages: 1 [2] 3
Print
Jump to:  

Theme orange-lt created by panic