Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

confusion gdscript when complie to gdc #5617

Closed
CsloudX opened this issue Oct 19, 2022 · 4 comments
Closed

confusion gdscript when complie to gdc #5617

CsloudX opened this issue Oct 19, 2022 · 4 comments
Labels

Comments

@CsloudX
Copy link

CsloudX commented Oct 19, 2022

Describe the project you are working on

GUI application

Describe the problem or limitation you are having in your project

I found a tool Godot RE Tools on Github: https://github.com/bruvzg/gdsdecomp
https://www.youtube.com/watch?v=_55uQkUs-LA&ab_channel=Musa%2B%2B
image
It can decomplie gdc to gd code.
I love use Standard version, so that I never need Vistual Studio or VS code. But because of the Godot RE Tools, my code full exposure, any body can change my game!
Use the Godot RE Tools, decomplie, change code, pack pck, done.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

I wish Godot can confusion gdscript when complie to gdc, I known there is no way to completely avoid cracking, But at least it's not all streaking.

var player_health = 100
func add_health(val):
    player_health += val

-->

var sdf45549648sadf5454asdf = 100
func sdfdsddf46s4fas54f5sa45df48sadf(sdf45415s1df848as84f):
    sdf45549648sadf5454asdf += sdf45415s1df848as84f

If gdscript so easy to decomplie, IMO, Godot lose a major advantage.
I like use standard version, because it lite, I don't need other toos at all.
I know there was other method:
Encrypt Exported PCK ---> Need to build export templates from source
Use C# or C++ --> Need Visual Studio or VS code
All this method let GDScript loose advantage.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

/

If this enhancement will not be used often, can it be worked around with a few lines of script?

/

Is there a reason why this should be core and not an add-on in the asset library?

Yes, it's core

@CsloudX
Copy link
Author

CsloudX commented Oct 19, 2022

ADD: I also wish confusion algorithm will change every time:

var player_health = 100
func add_health(val):
    player_health += val

first time --->

var sdf45549648sadf5454asdf = 100
func sdfdsddf46s4fas54f5sa45df48sadf(sdf45415s1df848as84f):
    sdf45549648sadf5454asdf += sdf45415s1df848as84f

second time --->

var sfsa5sa1df55saf5155safd1= 100
func ksdfnis0f0sadfmsof0sdfa(isf0f44sa5d4f5safsadf):
    sfsa5sa1df55saf5155safd1+= isf0f44sa5d4f5safsadf

@dalexeev
Copy link
Member

dalexeev commented Oct 19, 2022

Duplicate of #4220?

var player_health = 100
func add_health(val):
    player_health += val

-->

var sdf45549648sadf5454asdf = 100
func sdfdsddf46s4fas54f5sa45df48sadf(sdf45415s1df848as84f):
    sdf45549648sadf5454asdf += sdf45415s1df848as84f

It's difficult because:

  1. there are get, set, call methods (but we can add a comment/annotation for exceptional cases);
  2. dynamic typing (but we can obfuscate identifiers of the same name in different classes in the same way);
  3. scripts can be created dynamically at runtime;
  4. identifiers can be used in Expression, AnimationPlayer, in scene files (connections), etc.

Without complex code analysis, this is only possible for local variables and probably for parameters.

Use C#

See #1407.

@Zireael07
Copy link

Use C#

C# also has decompilers/deobfuscators (I've used them to peek at some others' Unity projects)

@CsloudX
Copy link
Author

CsloudX commented Oct 19, 2022

Yes, Duplicate of #4220

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants