Test lock the Canvas with password

4 Likes

Cool, can I try to defeat it? :stuck_out_tongue:

:thinking:
I don’t understand what it’s for. Is file saving also disabled?

I guess the problem with these obfuscations is that you can bypass it simply by disabling to execute the .gh file. In order to do so, you would need to execute code after de-serialisation. Unfortunately, I couldn’t find to do that, because the .gh file only persists basic data types.

The grasshopper file can be decoded on the fly. For example, components are populated after the first execution. Users can choose to lock solver but no meaningful components will be visible.

1 Like

This is a good one! Thanks.

It’s just canvas Show(), Hide()
I tested another way by creating windows form with option ShowDialog and it closed after inserting the correct password

No, it show/hide the canvas

There are many ways. E.g. You can also draw a very big rectangle above all other components and disable mouse-input/selection, or you can reshuffle and rename the components. Making a Multiplication component a Substraction component by name. I also played around with making the wires to be connected only if running the solution. And once you run, the obfuscation code self-deletes. But the problem remains:

You need to execute the obfuscation code. And this is the real problem to solve. Because you can always lock the solver.

Wht you mean by that?

Before loading a file you can right-click and stop the solution from being computed (lock symbol). If you load then, you see the definition, but nothing gets executed.

You can use this idea to lock the component positions if they don’t respond to the mouse left click, can you try it?

Locking the solver will prevent any code to run.

I have an obfuscation solution here: PancakeObfuscator | Food4Rhino

1 Like

Maybe option like that can added to the menu , not as component

Nice , this must included officially, the user can simply remove the addon and lock the solver again

There are many different ways and types of obfuscation. And obfuscation for the most part is already sufficient if you mess up a definition in a way that you need hours to make it readable. Removing comments, renaming components, shuffling etc. This can be made permanent.
You can also make your definition dependent from another (obfuscating) binary, etc.
But in the end, you can always reverse that. Just the level of knowledge and time increases. This is usually why it doesn’t make much sense to spend so much energy. The majority of definitions are not even worth to protect. And if you are skilled enough to create your own plugin, then the obfuscation required, happens at other places.
For me, it’s rather fun to de-obfuscate.

Some users like university students who use different computers, they don’t like to share their work specially if they pay for it.
Maybe using hops and Heroku is better in this case.

If you are a student, you likely have nothing worth to protect. It’s just the ego, and a wrong mindset of modern teachings. Instead of acting as a team, people chasing graduation papers, to not experience the social descent. This is the reason why so many people go to the university in the first place. But it’s also the teachers who support that indirectly. If you are good, you likely get an appropriate job. So just don’t care if people steal work. You will always find these people. Have seen so many of these people in larger cooperations. You can’t do anything about that. Its the modern type of corruption.

2 Likes

@Seghier khaled if possible can you share the file of that component because I wanted to protect my gh script for my temporary co-workers.

Hi Jay
Sorry i don’t have this file anymore, i will try to find it or create new one

1 Like