{
  "ml": {
    "v": "7",
    "eng": "2.9.1",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.000008354585,
        "rte": "az",
        "prob": 0.000008354585
      },
      {
        "cls": 0,
        "raw": 0.00012954076,
        "rte": "az/gem",
        "prob": 0.00012954076
      }
    ],
    "prob": 0.00001475215,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001475214958190918,
        "type": "gem"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000012993812561035156,
        "type": "tar.gz"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001475214958190918,
        "type": "ruby"
      },
      {
        "id": 11,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010132789611816406,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-12T13:21:03Z"
  },
  "path": "philiprehberger-hex-0.3.0.gem",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "zdN/$wmoN*e[YFg00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fFCgmg=d2?fFCgmfFCfXfFCgmfFCfXfA",
            "ln": 0
          }
        ],
        "mol": "H₂(DbOs)",
        "sha": "71e2d490bf31fca76e9c4b4b8e5c009b05fa053499bac367ff5295bb138343c3",
        "path": "philiprehberger-hex-0.3.0.gem",
        "risk": 2,
        "size": 9216,
        "type": "gem",
        "facts": {
          "metrics": {
            "gem": {
              "dependency_count": 0,
              "runtime_dependency_count": 0,
              "development_dependency_count": 0
            },
            "file": {
              "size": 9216,
              "entropy": 6.22
            },
            "binary": {
              "peak_region_bytes": 4096,
              "peak_region_entropy": 7.8
            },
            "archive": {
              "file_count": 3,
              "member_count": 3,
              "script_count": 0,
              "directory_count": 0,
              "executable_count": 0,
              "hidden_file_count": 0,
              "uncompressed_size": 5937,
              "max_filename_length": 17,
              "rtlo_filename_count": 0,
              "format.regular_count": 3,
              "nested_archive_count": 3,
              "path_traversal_count": 0,
              "symlink_escape_count": 0,
              "security.setgid_count": 0,
              "security.setuid_count": 0,
              "security.sticky_count": 0,
              "double_extension_count": 0,
              "security.symlink_count": 0,
              "unicode_filename_count": 0,
              "homoglyph_filename_count": 0,
              "timing.mtime_unique_count": 1,
              "misplaced_executable_count": 0,
              "timing.mtime_spread_seconds": 0,
              "security.world_writable_count": 0
            }
          }
        },
        "ident": {
          "name": {
            "value": "philiprehberger-hex",
            "source": "gem.name",
            "verified": false
          },
          "urls": [
            {
              "url": "https://philiprehberger.com/open-source-packages/ruby/philiprehberger-hex",
              "kind": "homepage",
              "source": "gem.homepage"
            }
          ],
          "trust": "unsigned",
          "authors": [
            {
              "name": "Philip Rehberger",
              "role": "author",
              "source": "gem.authors"
            }
          ],
          "version": {
            "value": "0.3.0",
            "source": "gem.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "micro-behaviors/os/module/load::ruby-require-relative",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby loads a relative source module"
          },
          {
            "id": "micro-behaviors/data/decode/hex::ruby-pack-hex-decode",
            "conf": 0.8,
            "crit": 3,
            "desc": "Ruby pack decodes hexadecimal data"
          }
        ]
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 4911,
              "entropy": 7.95
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 4911,
              "peak_region_entropy": 7.8
            }
          }
        },
        "id": 1,
        "mol": "H₂(DbOs)",
        "path": "philiprehberger-hex-0.3.0.gem!!data.tar.gz",
        "pid": 0,
        "risk": 2,
        "sha": "9838d8b76e9baedfce8d6fb70e961570a161caeafd3871de335841c23786ef74",
        "size": 4911,
        "traits": [
          {
            "id": "micro-behaviors/os/module/load::ruby-require-relative",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby loads a relative source module"
          },
          {
            "id": "micro-behaviors/data/decode/hex::ruby-pack-hex-decode",
            "conf": 0.8,
            "crit": 3,
            "desc": "Ruby pack decodes hexadecimal data"
          }
        ],
        "type": "tar.gz"
      },
      {
        "ctx": [
          {
            "b": "boQPsz*C#juVQsfx(mM\u003cy?X05A:-=BaARTDwEn=+wPq\u003cbA+eP#wO+^%x)a5gcUN7oflQ]EB7]MgcKK)9ADL#owGSvwwN/\u003e6wPzi%wn=rj3jpS*wozZ1aw=-=y?W\u003cewOtK:A+w%73lQEdz!a0bwGTJPCNtMoarUfgvrlGjmriA!AV^E!q/(C=wmoH?mriA!AYUyPzE:7YarR^HnjuS/p^F5Wmn=\u003e",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "aztthaAITBx(mMAaz#aneOFZuay/7[A:-E1wPz\u0026taA.NrwPI]nC42i3wiRFQwQ2Th3lQDlarR!hxK#A]e]UleyByM3dKMULarR^HwO#2=3lQDlar@19A=kGhv}u=\u003ezxKgGwg.\u003eAD2d4mxK#Ahwoz:d3lQDlar}joarR^Kav6)OA:-/cB98BBtt]S:x(mM?3lQDlar@0]A+funA=917q/)4]zF9k$w]zZbvruQ5wftL%CPZKtzeY?8arR!qwO94",
            "ln": 1138,
            "col": 28,
            "line": 40
          },
          {
            "b": "wHGq.e]t3oaBtkUAa9E3D)0xpx(U?yvq)uoaBETCawlo^zE)Spw]zZbvrr[Bb}}90cOcxHdiK3\u003eyhW*7aBL\u003eSz!T8qcM\u003c==3lQDlarR^HayPt3x\u003eZ{[vrcDjjS[lFB-7$EzddxaDMWYBD(#(JvR6U9wO2:zc]iRfatCSfdiH?$vLhe7AV^y=cOu+?",
            "ln": 1567,
            "col": 35,
            "line": 56
          },
          {
            "b": "cN*VSD30Rs3lQDlaz2C33jm)#arR)KlVl*Xvrb{4BA.TCxK#AhB98CpzFa2kvqYP#A+funA=91eD30QHy?m^3y-)n5w[CQ{wO#0?A%:3jarR)oarR^HboPl\u003cvrb^[aztthf^6X0BAh8kxi=S(x(XopaztthaAITBx(mL\u003carR^HboPl\u003cvrb^[aztr",
            "ln": 2808,
            "col": 21,
            "line": 95
          },
          {
            "b": "nmuNMk3YptA=LPlaA7\u003cmDMWlsw]?K9iXhy+CYmk7By!#zefFwhBAI2diV@?[w]zYjwnbT/wPzH5xcpVeBy/I2arR^HwmYu}B7Gf1e[n*pAa9=#c$)gpf!sCXwQ2%V3lQDlarR!oD30Rsf^5R4vTi6bB6\u0026K1z/3[owQ2{U3lQDlarR!oD30Rsg9wZ",
            "ln": 3006,
            "col": 22,
            "line": 102
          },
          {
            "b": "A%:3jarUlkwc@U^arR^KaxRAqaAR*CaztthaAITBx(mN8ayPd#aAz4nB-IvxBzbkdxK#AhA+frmy\u0026*1barR^K3lQDlar@0]Aa9=}z6iI6CRHsBq/)4]zF9k$w[=pbBrCmdCP.6HA+PA73lQDlar@0]Aa9=}z6iI6CRQyCq/)4]zF9k$B7F\u003c1zE:\u003c",
            "ln": 3524,
            "col": 11,
            "line": 122
          },
          {
            "b": "c$NNkzxJ+bzFa68dgdguarR)KkYQBTB-Ivxtt]S:x(mM?aztthaAITBx(mMaCwhejaAz4pwPz\u003c6wftubBy=OkA+5:43lQDlay]4}aAIagw?FdGvq]N+zE^D\u0026zyxgfCQS$xarR^HaA?gfx\u003egT]wNxI2A+PA7aT?2nCQS$xarR^HaztthauZ\u0026*BAh8m",
            "ln": 5175,
            "col": 46,
            "line": 169
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "require_relative"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "is_a?"
            ],
            [
              "",
              "private_class_method"
            ],
            [
              "",
              "validate_string!"
            ],
            [
              "",
              "unpack1"
            ],
            [
              "",
              "upcase"
            ],
            [
              "",
              "validate_string!"
            ],
            [
              "",
              "strip_prefix"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "odd?"
            ],
            [
              "",
              "length"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "valid?"
            ],
            [
              "",
              "pack"
            ],
            [
              "",
              "validate_string!"
            ],
            [
              "",
              "bytes"
            ],
            [
              "",
              "with_index"
            ],
            [
              "",
              "each_slice"
            ],
            [
              "",
              "format"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "map"
            ],
            [
              "",
              "each_slice"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "map"
            ],
            [
              "",
              "format"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "map"
            ],
            [
              "",
              "between?"
            ],
            [
              "",
              "chr"
            ],
            [
              "",
              "format"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "validate_string!"
            ],
            [
              "",
              "encode"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "scan"
            ],
            [
              "",
              "is_a?"
            ],
            [
              "",
              "empty?"
            ],
            [
              "",
              "match?"
            ],
            [
              "",
              "validate_string!"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "odd?"
            ],
            [
              "",
              "length"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "valid?"
            ],
            [
              "",
              "bytes"
            ],
            [
              "",
              "pack"
            ],
            [
              "",
              "bytes_from"
            ],
            [
              "",
              "bytes_from"
            ],
            [
              "",
              "max"
            ],
            [
              "",
              "length"
            ],
            [
              "",
              "length"
            ],
            [
              "",
              "times"
            ],
            [
              "",
              "format"
            ],
            [
              "",
              "format"
            ],
            [
              "",
              "bytes_from"
            ],
            [
              "",
              "bytes_from"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "length"
            ],
            [
              "",
              "length"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "map"
            ],
            [
              "",
              "zip"
            ],
            [
              "",
              "format"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "is_a?"
            ],
            [
              "",
              "positive?"
            ],
            [
              "",
              "hex"
            ],
            [
              "",
              "validate_string!"
            ],
            [
              "",
              "strip_prefix"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "odd?"
            ],
            [
              "",
              "length"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "valid?"
            ],
            [
              "",
              "length"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "negative?"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "negative?"
            ],
            [
              "",
              "validate_string!"
            ],
            [
              "",
              "strip_prefix"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "odd?"
            ],
            [
              "",
              "length"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "valid?"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "reverse"
            ],
            [
              "",
              "scan"
            ],
            [
              "",
              "validate_string!"
            ],
            [
              "",
              "strip_prefix"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "odd?"
            ],
            [
              "",
              "length"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "valid?"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "include?"
            ],
            [
              "",
              "length"
            ],
            [
              "",
              "length"
            ],
            [
              "",
              "validate_string!"
            ],
            [
              "",
              "strip_prefix"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "empty?"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "valid?"
            ],
            [
              "",
              "to_i"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "is_a?"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "negative?"
            ],
            [
              "",
              "to_s"
            ],
            [
              "",
              "odd?"
            ],
            [
              "",
              "length"
            ],
            [
              "",
              "rjust"
            ],
            [
              "",
              "length"
            ],
            [
              "",
              "start_with?"
            ],
            [
              "",
              "private_class_method"
            ],
            [
              "",
              "hex/version"
            ],
            [
              "",
              "securerandom"
            ]
          ],
          "mbr": [
            "HEX_PATTERN.match?",
            "Kernel.format",
            "SecureRandom.hex",
            "b.between?",
            "b.chr",
            "bytes.each_slice",
            "bytes.each_slice.with_index",
            "bytes1.length",
            "bytes1.zip",
            "bytes1.zip.map",
            "bytes1.zip.map.join",
            "bytes2.length",
            "chunk.each_slice",
            "chunk.each_slice.map",
            "chunk.each_slice.map.join",
            "chunk.map",
            "chunk.map.join",
            "hex.empty?",
            "hex.length",
            "hex.length.odd?",
            "hex.rjust",
            "hex.scan",
            "hex.scan.join",
            "hex.scan.reverse",
            "hex.scan.reverse.join",
            "hex.start_with?",
            "hex.to_i",
            "hex.upcase",
            "int.is_a?",
            "int.negative?",
            "int.to_s",
            "length.negative?",
            "lines.join",
            "max_len.times",
            "n.is_a?",
            "n.positive?",
            "offset.negative?",
            "pair.map",
            "pair.map.join",
            "str.bytes",
            "str.empty?",
            "str.is_a?",
            "str.unpack1"
          ],
          "tgt": [
            "between?",
            "bytes",
            "bytes_from",
            "chr",
            "each_slice",
            "empty?",
            "encode",
            "format",
            "hex",
            "include?",
            "is_a?",
            "join",
            "length",
            "map",
            "match?",
            "max",
            "negative?",
            "odd?",
            "pack",
            "positive?",
            "private_class_method",
            "raise",
            "require",
            "require_relative",
            "reverse",
            "rjust",
            "scan",
            "start_with?",
            "strip_prefix",
            "times",
            "to_i",
            "to_s",
            "unpack1",
            "upcase",
            "valid?",
            "validate_string!",
            "with_index",
            "zip"
          ],
          "funcs": [
            [
              "validate_string!",
              202
            ],
            [
              "encode",
              577
            ],
            [
              "decode",
              961
            ],
            [
              "dump",
              1337
            ],
            [
              "format",
              2020
            ],
            [
              "valid?",
              2263
            ],
            [
              "bytes_from",
              2584
            ],
            [
              "compare",
              3078
            ],
            [
              "xor",
              3732
            ],
            [
              "random",
              4170
            ],
            [
              "extract_range",
              4567
            ],
            [
              "swap_endian",
              5252
            ],
            [
              "pad",
              5776
            ],
            [
              "to_int",
              6433
            ],
            [
              "from_int",
              6867
            ],
            [
              "strip_prefix",
              7338
            ]
          ],
          "metrics": {
            "ast": {
              "op.eq": 3,
              "op.ge": 2,
              "op.gt": 1,
              "op.lt": 1,
              "op.add": 1,
              "op.div": 1,
              "op.lor": 2,
              "op.mul": 7,
              "op.shl": 2,
              "op.sub": 1,
              "op.xor": 1,
              "op.land": 1,
              "max_depth": 22,
              "op.concat": 71,
              "call_count": 120,
              "node_count": 1559,
              "member_count": 43,
              "max_array_len": 2,
              "op_density.eq": 0,
              "op_density.ge": 0,
              "op_density.gt": 0,
              "op_density.lt": 0,
              "op_density.add": 0,
              "op_density.div": 0,
              "op_density.lor": 0,
              "op_density.mul": 0,
              "op_density.shl": 0,
              "op_density.sub": 0,
              "op_density.xor": 0,
              "op_density.land": 0,
              "max_concat_chain": 2,
              "member_depth_max": 4,
              "op_density.concat": 0.05
            },
            "file": {
              "size": 7474,
              "entropy": 4.67
            },
            "text": {
              "lines": 243,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0.02,
              "space_count": 1716,
              "char_entropy": 4.67,
              "unique_chars": 82,
              "top_char_null": 0,
              "string_density": 0.19,
              "top_char_ratio": 0.08,
              "avg_line_length": 29.76,
              "max_line_length": 110,
              "empty_line_ratio": 0.17,
              "last_line_length": 3,
              "whitespace_ratio": 0.26,
              "identifier_density": 1.48,
              "line_length_stddev": 24.57,
              "normalized_string_count": 2.89,
              "repeated_char_sequences": 3,
              "suspicious_identifier_ratio": 0.07,
              "normalized_unique_identifiers": 10.85
            },
            "binds": {
              "count": 29
            },
            "binary": {
              "peak_region_bytes": 7474,
              "peak_region_entropy": 4.79
            },
            "source": {
              "class_count": 3,
              "function_count": 16
            },
            "imports": {
              "count": 2,
              "third_party_count": 2,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 739,
              "count": 45,
              "avg_length": 16.42,
              "max_length": 38,
              "avg_entropy": 2.64,
              "entropy_stddev": 1.39
            },
            "comments": {
              "chars": 2256,
              "count": 73,
              "empty": 15,
              "lines": 58,
              "to_code_ratio": 0.31
            },
            "functions": {
              "count": 19
            },
            "identifiers": {
              "count": 359,
              "unique": 86,
              "avg_length": 6.51,
              "max_length": 20,
              "min_length": 1,
              "avg_entropy": 2.28,
              "reuse_ratio": 0.24,
              "length_stddev": 3.66,
              "has_digit_ratio": 0.08,
              "sequential_names": 6,
              "single_char_count": 4,
              "single_char_ratio": 0.05,
              "high_entropy_count": 2,
              "high_entropy_ratio": 0.02,
              "all_lowercase_ratio": 0.69,
              "all_uppercase_ratio": 0.01,
              "numeric_suffix_count": 7
            }
          }
        },
        "id": 2,
        "mol": "H₂(DbOs)",
        "path": "philiprehberger-hex-0.3.0.gem!!data.tar.gz!!lib/philiprehberger/hex.rb",
        "risk": 2,
        "sha": "e3052171170fcff282cfdaee24dc75cd4a2ffb946c4b5bdf0c73d33402223fc9",
        "size": 7474,
        "traits": [
          {
            "id": "micro-behaviors/data/decode/hex::ruby-pack-hex-decode",
            "conf": 0.8,
            "crit": 3,
            "desc": "Ruby pack decodes hexadecimal data",
            "spans": [
              [
                1202,
                11
              ]
            ]
          },
          {
            "id": "micro-behaviors/os/module/load::ruby-require-relative",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby loads a relative source module",
            "spans": [
              [
                31,
                16
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeiFz6yIPzEEx[b03]!xLzo%Ab]J6vR6N)wPxwowQ2yIb6EKrB7]Mgb03]4e\u0026bala$K{SBZ/f3B7/b}uTX42iX-MLh8m6Gh-rDyb4ka}uU0O\u003cA@",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 1128,
              "entropy": 4.78
            },
            "binary": {
              "peak_region_bytes": 1024,
              "peak_region_entropy": 4.79
            },
            "registry": {
              "age_days": 161,
              "published_at": 1775267763,
              "is_deprecated": 0,
              "downloads_total": 1089916,
              "downloads_recent": 747410
            }
          }
        },
        "id": 11,
        "path": "philiprehberger-hex@0.3.0.registry.json",
        "pid": 0,
        "rel": "registry",
        "role": "sidecar",
        "sha": "4a4794ea2b66cf3722db7b9a706e236611f975c3c473c279c899aaee374b451d",
        "size": 1128,
        "traits": [
          {
            "id": "metadata/registry::widely-installed",
            "conf": 1.0,
            "crit": 1,
            "desc": "Large registry install base (10k+ downloads)",
            "spans": [
              [
                0,
                0
              ]
            ]
          }
        ],
        "type": "registry"
      }
    ],
    "rev": "c7f7e",
    "v": "8"
  }
}