tbcload, loads code obfuscated by tclcompiler, tclchecker, and procomp.




tbcload is for source protection of deployed programs. It appeared originally in TclPro, and is part of ActiveState's ActiveTcl and Tcl Dev Kit distributions.

Transcript from the Tcl chatroom:

stever tclguy: is it true that tcl8.4 can read .tbc files direct without tbload?

tclguy No. But ActiveTcl comes with tbcload

EE SHOULD it be true that tcl can read .tbc files direct?

tclguy no

stever I thought I read a changelog that indicated it to be true..Im still searching for it.

suchenwi But it wouldn't be much effort to read a binary file into memory, or?

tclguy no, there were core changes that prevented the reading of .tbc files, even with tbcload.

EE why should it not be true?is there a performance advantage to keeping tbcload separate?

tclguy it's not just a binary file. tbcload != binary rep of bytecode. It's an obfuscator more than a bytecode compiler.

EE am I to understand that a .tbc file contains data which is somehow scrambled, and tbcload decodes it, generates bytecode from it, and then loads that?

tclguy yes

suchenwi Is it that bytecode contains plain text (those parts that are not byte-compiled), and in tbc format they're made unreadable?

tclguy ... partly

  • kennykb observes that tbcload is open source, and the curious COULD just go source diving.

DKF: Note that tcl::unsupported::disassemble will not disassemble things defined by this package.