Secure .gh file

yes quite practical. As I said, I would also integrate silent bugs if the definition detects unusual users

Yes you can. But since you are already writing a library, you can do whatever you want to do.

Here it is.
It is possible to launch an external task (on windows level, outside rhino) to check if grasshopper have solver active or not?
It could force-close rhino and grasshopper the instant the solver is disabled.

Protecting some code should be doable if the solver is active… no?


:rofl: :rofl: :rofl:

That’s what I meant with aligning all components in one place, so they overlay each other.

But since you are already writing a library, you can do whatever you want to do.

Yes, but few so annoying. :clown_face:

And when GH2 is released as open source it still needs to be secure from someone who has created their own version with all checks removed. This is in fact already possible since Grasshopper itself can be disassembled, modified, reassembled and even modified in its compiled state using libraries such as Mono.Cecil

If you’re trying to protect your files against non-programmers, clusters with passwords are enough, if you’re trying to protect your files against programmers, you’re in the wrong Universe.

9 Likes

You don’t need to create an own version actually. The thing is, any member of an object in memory has an address in memory. Even if you cannot decompile it, you can read (reflection) and replace any member on runtime. If this is still not possible, Disassembling and Debugging an app and patching the jump instructions of an if-statement is death simple if you can read assembler. That’s why it is very hard to protect software in general.

Thats it is very hard to protect .NET software in general.

1 Like

Disassembling is not Decompiling. Works for a C/C++ as well.

afais it’s a bit different. .NET’s code is jitted, which is very predictable and cannot be interferred with the software developer (unless you are using AOT, e.g., CoreRT). But C/C++ developer may protect the binary directly and creates nightmares of disassembling.

1 Like

True, but as soon as you manage to attach it to a debugger at some point you step through any statement until you reach the desired place. Take the cluster password. You can spend a lot of effort in obfuscating the assembler code, but at some point you need to compare two hashes. This comparison can be manipulated. A countermeasure would be to use this comparison functionality at multiple other places, making it harder to simply replace it. But it’s difficult and leads to horrible code. This also explains why almost any offline software gets cracked. It is a fight against windmills. But yes you are right, .Net code is easier to bypass and being able to decompile and recreated code makes it especially easy.

:rofl: moving them together is adequate for most occasions.

3 Likes

but I think there are more companies that have made complex grasshopper definitions which they want to protect from the “outside”.

These companies do things like:
1: Have employees sign NDA’s.
2: Use computers which block cloud storage and external email services.
3: Use computers which don’t allow USB and other external storage devices to work.

1 Like

I have worked in highly secured area and I know about dozens of ways to bypass point 2 and 3. Even the people who had no clue about programming found ways almost by accident. In the end it’s just point 1 in conjunction with a high fine which prevents people in not doing it. But yes, this is also what I think is the only true way of protection.

Millipede plugin override usual graphics for its components and wires, even if the solver is locked.
I never made a gh plugin but i’m starting to think it should be possible to make completely invisible components…

Reminds me on the components-jumping-away-from-the-mouse hack, somebody was doing years ago… :stuck_out_tongue: “All-10-seconds-reshuffle” or the “fortune-wheel-canvas” are also great candidates to enhance the GH experience :wink:

simple trick to cheat GH canvas renderer.

testcluster.gh (6.5 KB)

5 Likes

the awesome Long Nguyen? :heart_eyes:

3 Likes