User Tag List

Results 1 to 5 of 5

Thread: How to Encrypt MFA

  1. #1
    Clicker Fusion 2.5 MaciOS Export ModuleInstall Creator Pro
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Fusion 2.5+ DLC (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Mac Export Module (Steam)Universal Windows Platform Export Module (Steam)Firefly 3D Module (Steam)
    Cheezy_Bacon's Avatar
    Join Date
    Mar 2016
    Location
    Seattle, WA
    Posts
    16
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    Exclamation How to Encrypt MFA

    Hello, I have heard that people like to decompile MFAs and it's really easy with stuff like CTFAK which I'm glad Clickteam attempted to takedown but unfortunately is easily accessible on GitHUB.

    The reason I ask is because I really don't want that to happen to my game.

    So if anyone knows, how can I encrypt it the way Emil "Ace" Macko(FNaC) and Raulio20(LEGO FNaF) do with their games apparently, please help me.

  2. #2
    Forum Moderator Fusion 2.5 MacFusion 2.5 DeveloperFusion 2.5+ DLCAndroid Export ModuleHTML5 Export ModuleiOS Export ModuleFirefly 3D ModuleInstall Creator Pro
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Fusion 2.5+ DLC (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Mac Export Module (Steam)Universal Windows Platform Export Module (Steam)Firefly 3D Module (Steam)
    NaitorStudios's Avatar
    Join Date
    May 2010
    Location
    Brazil
    Posts
    1,613
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    You shouldn't be that scared because it doesn't output exactly the original mfa, it recreates it and lots of data is gone, making it a broken mess, some hidden object data that gets lost makes so it never behave as the original even if manually "fixed".
    Also, they target much older builds.

    But I know there are things that I know these tools aren't able to handle.
    Add emoji to object's names, global variables, frame's names, app info (author, copyright, aboutbox, description, company, etc)
    Make some "Never" events in Global Event Editor with random conditions like Compare Two General Values comparing a emoji or some Japanese text to another (these would be copied to all frames automatically).
    If you got Dev, simply place a Dev extension in the frames that you want more protected, again add some Never events on Global Event Editor referencing them.
    Use Unpacked EXE and set Compression Level to maximum. Using DX11 also might protect your custom shaders.

    There might be other ways as well.

  3. #3
    Clicker Fusion 2.5 Developer
    Fusion 2.5 (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)

    Join Date
    Jul 2006
    Posts
    60
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    Sorry for going slightly offtopic, but this bit caught my attention and I wanted to confirm something about the way Fusion works.

    Quote Originally Posted by NaitorStudios View Post
    Make some "Never" events in Global Event Editor with random conditions like Compare Two General Values comparing a emoji or some Japanese text to another (these would be copied to all frames automatically).
    Is copying to all frames a side effect of using those tools, or is it the actual way Fusion compiles it?

    If it's the latter, this greatly reduces the benefits of Global Events. I always assumed that Global Events are only saved once in the file so you could save space by putting code in them. If that's not the case, Global Events are only a QOL improvement rather than an optimization. I think this should be made clear in the documentation.

    Does this also apply to "Include another frame"? If I have 100 frames which include one other frame, does this mean there will be 101 duplicates of that frame in the EXE?

    How about Global Objects? If I have a 1000 instances of a Global Object in different frames, does it save all 1000 of them, including duplicate animations etc. individually?

  4. #4
    Forum Moderator Fusion 2.5 MacFusion 2.5 DeveloperFusion 2.5+ DLCAndroid Export ModuleHTML5 Export ModuleiOS Export ModuleFirefly 3D ModuleInstall Creator Pro
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Fusion 2.5+ DLC (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Mac Export Module (Steam)Universal Windows Platform Export Module (Steam)Firefly 3D Module (Steam)
    NaitorStudios's Avatar
    Join Date
    May 2010
    Location
    Brazil
    Posts
    1,613
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by PkR View Post
    Is copying to all frames a side effect of using those tools, or is it the actual way Fusion compiles it?
    It copies global events and behaviors to all frames that have access to them during building.
    There isn't a separated eventsheet on the exe for these. It's more of a organizational measure than optimization, but, it also allows you to have less places to edit something that will be shared across different frames.
    You can think about behaviors for example, what does it help? For starters, you can copy behaviors between objects, and that automatically retargets the to the new object as the "self" reference.
    And of course people might also use it as "widgets", to be able to simply drop a object and have some events, which can be easily edited, specially if you make these global as well.


    Quote Originally Posted by PkR View Post
    Does this also apply to "Include another frame"? If I have 100 frames which include one other frame, does this mean there will be 101 duplicates of that frame in the EXE?
    Include frame will copy over objects and events to the target frame, but there's something you're not getting...
    No, it doesn't meant it will physically have 101 duplicates of the frame, because it identical objects are just referenced from a original instance, so having 1 or 30,000 won't increase the same amount if compared going from 0 to 1 instance.
    But it does include the references for the objects that exists on another frame. Most stuff on Fusion is just referenced, it would be just dumb to have each instance being unique objects...
    In fact, global objects exists since Klik & Play I believe, and that's also why if you have two different objects of the same kind but with the same name, Global Events will apply to both.

    Quote Originally Posted by PkR View Post
    How about Global Objects? If I have a 1000 instances of a Global Object in different frames, does it save all 1000 of them, including duplicate animations etc. individually?
    First of all, no duplicate of images are stored at all, this is a core optimization of Fusion, it's also the reason if you replace a image or color through events, it affects all instances.
    (I even tinkered with this on a older build, allowing me to replace images from backdrops, which unfortunately doesn't work anymore)
    On app properties, Info tab, it has a section that shows you how many images you have in total, and copying objects will not increase that number, even duplicating sprites or copying them over to other objects will not change that.
    It only includes a single instance of a unique image.
    The only thing that it will store individually, and it's totally unrelated to optimization, is in case you have multiple global instances and you set their variables to different data, so when switching frames, this data is kept.
    But, having global instances in multiple frames can be problematic, because it have no way to tell which instance it should keep the data on.
    Also, destroying the object will clear its global data.

  5. #5
    Clicker Fusion 2.5 Developer
    Fusion 2.5 (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)

    Join Date
    Jul 2006
    Posts
    60
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    Thank you for the reply. From your response I was able to gather the following:

    1. Other than ease of use and less clutter in the editor, there's no real difference between having Global Events and not having Global Events and just pasting those events in each frame.
    2. Events in "Include another frame" are duplicated for each frame, however objects are stored as pointers.
    3. Graphics are not duplicated.

    Out of curiosity I made a quick test with two MFAs that had a frame of about 50 objects and ~1200 events. In the first MFA I added 20 blank frames. In the second MFA I added 20 blank frames and set them to include the frame with 50 objects.
    Here are the results:
    Compiled EXE
    Original: 1.97MB
    Include: 2.37MB.
    With the Unpacked EXE option:
    Original: EXE is 938KB, DAT is 419KB
    Include: EXE is 938KB, DAT is 835KB

    Better than I thought, hopefully it will manage similarly when there's more stuff in the main frame...

Similar Threads

  1. How to encrypt to the savedata on iOS?
    By ASD in forum iOS Export Module 2.5
    Replies: 1
    Last Post: 23rd May 2016, 03:22 PM
  2. How to encrypt with INI ++ 1.5
    By XStar in forum Multimedia Fusion 2 - Technical Support
    Replies: 16
    Last Post: 31st March 2012, 10:07 PM
  3. Encrypt/decrypt a file
    By DJ_Wild in forum Multimedia Fusion 2 - Technical Support
    Replies: 5
    Last Post: 25th August 2009, 01:34 PM
  4. MMF 2 - Encrypt in Memory
    By droberson in forum Multimedia Fusion 2 - Technical Support
    Replies: 8
    Last Post: 23rd September 2006, 04:06 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •