Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations KootK on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Journal Obfuscation

Status
Not open for further replies.

MB1001

Computer
Feb 10, 2021
1
Hello All,

Any suggestions on how to obfuscate the NX journal code?
I'm a beginner in writing NX journals.
Has anyone tried something like this before.
 
Replies continue below

Recommended for you

ob·fus·cate
/ˈäbfəˌskāt/

verb:

render obscure, unclear, or unintelligible


I agree, you need to do a better job of explaining exactly what you're trying to do.

John R. Baker, P.E. (ret)
EX-Product 'Evangelist'
Irvine, CA
Siemens PLM:
UG/NX Museum:

The secret of life is not finding someone to live with
It's finding someone you can't live without
 
Obfuscate, w.r.t. coding, means to make your code difficult to reverse engineer. If you are running your code as a journal, I don't think there is a good way to obfuscate it; that usually happens during the compile process. A quick search found this:
If you are using a .net language and compiling your code, it might work for you. I've never tried it, so I can't say for sure.

www.nxjournaling.com
 
I don't think this is really possible with NXOpen, since people could just record a Journal while running your obfuscated Journal, thus getting the whole execution path in "plain text". I guess you can try something wild, like nested cycles making tons of random garbage API calls to make the recorded journal a pain to read, but true obfuscation in an API that has a built-in "show every API call a plugin makes" function seems rather hopeless.

One thing you could do is write not a journal, but an NXOpen C program using only the ancient pre-obfuscated C calls, left over from the time NXOpen was just made "UG Open". Many of these calls are not supported by journals, and even if they are, the reverse-engineer guy will hate your guts for having to learn that, say "uf5300(ra1,ra2,rp3,ip4,&nr5)" is used to create a cylinder. Of course, you'll have to learn that yourself first, making this a rather sadomasochistic experience. :)


[Edit]
Actually, looks like "NXOpen.JournalManager.IsJournalRecording()" can be used to take care of the "reverse engineer by journal" problem. So I guess you can write a "regularly" obfuscated .Net plugin using this function to lead your wannabe hackers on a wild goose chase. Of course, that call itself be detected and skipped by any halfway competent hacker, but you make a thousand of these calls... :-D
 
And if you are recording a journal, you just record a number of irrelevant actions, like switching to routing application and delete a line you created in Modeling a second ago.
the "reverse engineer" will then think there is a purpose of this action and will lie sleepless many nights. :)

No, I have no clue on this.

Regards,
Tomas

( I once met with a designer who showed a plastic piece he had designed, he said that the guy who made the casting tools had made a small notch by mistake and then they together made two more notches, as to make it look intended.
The notches had no practical function and did not affect the design at all.
some time later somebody in Asia had copied the plastic part , including the three notches.)
 
One method of obfuscation is to replace all your variable names by ridiculous and similar ones. So, for example, you replace “midPoint” by “xxxxxxxxxxx” (11 x’s) and “endPoint” by “xxxxxxxxxxxx” (12 x’s) and so on. This will make your code very difficult to read.
 
I've used variable names like FRED, ETHEL, LUCY, & RICKY

Jerry J.
UGV5-NX1884
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor