不要上当 解压后就这玩意!!!!!!!!!!!!!!!!!!!!!!!!!!
========= tbcfile =========
TclPro : TclPro
ByteCode : ByteCode
formatNumber: 1
buildNumber : 0
cmpVersion : 1.3
tclVersion : 8.3
-------- tbcblock --------
numCommands = 3
numSrcBytes = 0
numCodeBytes = 33
numLitObjects = 11
numExceptRange = 0
numAuxDataItems = 0
numCmdLocBytes = 12
maxExceptDepth = 0
maxStackDepth = 6
codeDeltaSize = 3
codeLengthSize = 3
srcDeltaSize = -1
srcLengthSize = -1
-------- bytecode --------
010001010102010301040105060603010a01050107010806040301090101060200000000
literal 0 : 6 | button # 7YDEFTnw
literal 1 : 2 | .b # yIw
literal 2 : 5 | -text # Kt(yG@v
literal 3 : 12 | Hello TclPro # RZ!iChROo@jZSfD
literal 4 : 8 | -command # 9oW/DmgY8A
literal 5 : 11 | cbk_clicked # y+aY?hafq@VY|+
literal 6 : 4 | proc # ,CHr@
literal 7 : 4 | args # %N|(F
-------- proc --------
-------- tbcblock --------
numCommands = 1
numSrcBytes = 0
numCodeBytes = 11
numLitObjects = 2
numExceptRange = 0
numAuxDataItems = 0
numCmdLocBytes = 4
maxExceptDepth = 0
maxStackDepth = 2
codeDeltaSize = 1
codeLengthSize = 1
srcDeltaSize = -1
srcLengthSize = -1
-------- bytecode --------
010001010a00050206020000
literal 0 : 4 | puts # DP)*F
literal 1 : 8 | Haha...# ?(';@!9,>+
arg 0 : args 0 0 257 # %N|(F
-------- proc end --------
literal 9 : 4 | pack # ld^LC
literal 10 : 15 | tbcload::bcproc # rpwhC;Z2b3<?<+EfqT+ 用TclPro中的tbcload加密Tcl代码
风行水上 @ 2014-07-02 11:18:51
标签: tcltk 加密tbcload
TclPro包含有工具用于加密Tcl代码。这显然需要两步:加密和解密。
目前免费的TclPro版本是 TclPro 1.4,只支持Tcl 8.3。
加密
测试用Tcl代码:
# File: t.cl
button .b -text "Hello TclPro" -command cbk_clicked
proc cbk_clicked {args} {
puts "Haha... $args"
}
pack .b
在DOS命令窗口中对文件进行加密:
$ win32-ix86\bin\procomp.exe -out t.tbc.tcl t.tcl
习惯上加密后的文件可以用后缀名".tbc"。上面例子为了便于查看代码,用了".tbc.tcl"。
加密后的文件(t.tbc.tcl)内容入看起来如下:
# TclPro::Compiler::Include
if { == 1} {
error "The TclPro ByteCode Loader is not available or does not support the correct version"
}
tbcload::bceval {
TclPro ByteCode 1 0 1.3 8.3
3 0 33 11 0 0 12 0 6 3 3 -1 -1
33
w0E<!(H&s!,`yTv1NW<!2Ki<!75bpv2,tl#+Z8X!z
3
;;0v
3
AfW!
11
x
6
7YDEFTnw
x
2
yIw
x
5
Kt(yG@v
x
12
RZ!iChROo@jZSfD
x
8
9oW/DmgY8A
x
11
y+aY?hafq@VY|+
x
4
,CHr@
x
4
%N|(F
p
1 0 11 2 0 0 4 0 2 1 1 -1 -1
11
w0E<!2Q/X!)'!!
1
z
1
+!
2
x
4
DP)*F
x
8
?(';@!9,>+
0
0
1 1
4
%N|(F
0 0 257
x
4
ld^LC
x
15
rpwhC;Z2b3<?<+EfqT+
0
0
}
解密
为了执行加密后的文件,很显然需要加载tbcload模块。
在读取加密代码之前,确保下面的代码得以执行过就可以了:
load tbcload13.dll
文件"tbcload13.dll"可以在TclPro安装目录下找到,需要跟加密后的Tcl程序一起发布。
加密后的文件里已经调用了package require tbcload语句,所以问题就变成了 Tcl/Tk Insight: Package 模块的管理。
-prefix
加密后的文件里有一行被注视掉了TclPro::Compiler::Include。
实际上,加密后的文件里,这一行之前的内容是通过加密程序procomp.exe的-prefix选项而自动添加进去的。
有三个可选值:
"none":不添加任何内容
"auto":添加源文件中从开始到第一个非注释行或空白行为止的内容。(默认值)
"tag":添加源文件中文件开始到含有字符串"TclPro::Compiler::Include"的注释行为止的内容。
这个选项的作用主要有两种:
明文保留版权信息等注释行 (默认行为)
明文保留初始化等代码(比如load tbcload13.dll)(需要指定 -prefix tag) http://noyesno.net/page/tcltk/tbcload.html
这个怎么使用有没有说得 这个怎么使用有没有说得 后处理加密码破解 密码呢怎么打不开啊 在DOS命令窗口中对文件进行加密:
$ win32-ix86 \ bin \ procomp.exe -out t.tbc.tcl t.tcl
习惯上加密后的文件可以用后缀名“.tbc”
(1) procomp.exe是什么程序,怎么安装?
(2) procomp是按什么的字节码变换的加密?
页:
[1]
2