Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Recent
    • Tags
    • Users
    • Register
    • Login

    Custom node-locked licensing: Bypassing checks for Team Renderer, Clients, Server safely?

    Scheduled Pinned Locked Moved Cinema 4D SDK
    python2023202420252026windows
    2 Posts 2 Posters 26 Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • ThomasBT Offline
      ThomasB
      last edited by ThomasB

      Hi,

      I am using a custom node-locked licensing system (2 Nodes) for my Cinema 4D plugin. Since Team Render clients running on other machines shouldn't consume a license activation, I want to bypass the license check on startup for them.

      My plan is to check c4d.isClient() or rather, c4d.GeGetVersionType() right before the licensing routine and skip it if it returns true.

      Example:

      client = c4d.GeGetVersionType()
      if client == c4d.VERSIONTYPE_TEAMRENDER_CLIENT or client == c4d.VERSIONTYPE_TEAMRENDER_SERVER:
              print("yes free rendering for all")
              return True
      

      My question: Is c4d.isClient() or c4d.GeGeVersionType() reliable and secure against spoofing, meaning a user couldn't just fake this flag on a normal Cinema 4D master instance to bypass the node-lock? Or is there a better way to handle this for Team Renderer, Clients and Server?

      Thanks!

      Thanks,
      T.B

      ferdinandF 1 Reply Last reply Reply Quote 0
      • ferdinandF Offline
        ferdinand @ThomasB
        last edited by ferdinand

        Hey @ThomasB,

        while I understand the direction, your question is a bit ambiguous. What would you consider 'reliable and secure against spoofing'? This very much a question of perspective. Everything can be faked and altered with enough knowledge and determination when the data is local. The functions you mention are based on our licensing API (and are also a bit outdated, you should use the newer endpoints). This API is used by Maxon products itself to verify licenses and is considered secure enough for that purpose. However, nothing prevents a user from patching the Cinema binary so that these functions return whatever the user wants. But that is of course expert knowledge domain.

        I would recommend using the relative new Licensing Manual which also explains how to identify the current product and how to find out how many licenses of a given type are available in a user account. In the video I also touch the subject of hardening for plugin licenses, the TLDR is: Do not over-do it, it is not worth the effort. Everything can be cracked.

        Cheers,
        Ferdinand

        MAXON SDK Specialist
        developers.maxon.net

        1 Reply Last reply Reply Quote 0
        • First post
          Last post