~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
| В даной статье я покажу, как можно получить исходный програмный код из TCL Byte Code (TBC) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
Конечно весь исходник мы не получим, но часть зашифрованого кода всётаки можно декодировать
set write_sources [open "tcl_sources_code.txt" a+]
puts $write_sources "___replace___"
2.Комплимимtbc2tcl.tclпри помощью ActiveState Tcl Dev Kit 3.2 и в результате создастся откомпилиный tbc2tcl.tbc следущего содержания:
Код:
if {[catch {package require tbcload 1.4} err] == 1} {
return -code error "[info script]: The TclPro ByteCode Loader is not available or does not support the correct version -- $err"
}
tbcload::bceval {
TclPro ByteCode 2 0 1.4 8.4
3 0 22 6 0 0 12 0 4 3 3 -1 -1
22
w0E<!(H&s!@btt!'3*!!9#Gpvw!!
3
-c&v
3
>or!
6
x
13
>c5DFs8|fD'bfRA?v
x
4
*dmID
x
20
o4jY?A;lcEgdTZ?h^oRAxmhEF
x
2
XNv
x
4
DP)*F
x
13
y0NaEomK;@SAIX?+v
0
0
}
3.Находим в этом файле код:
Код:
13
y0NaEomK;@SAIX?+v
Это является закоденое значение"___replace___", которое должно записываться в tcl_sources_code.txt.
4.Далее ищем в закоденом файле куски закоденого кода следущего вида:
Код:
X
число
код
X
5.Далее копируем (число) и (код), тоесть от X до X в файл tbc2tcl.tbc за место:
13
y0NaEomK;@SAIX?+v
6.Далее запускаем tbc2tcl.tbc и после завершения должен создаться файл tcl_sources_code.txt с декодированым кодом куска которого мы заменили
Вот такой вот простой метод декодирования TCL Byte Code
-----------------
C Уважением TwEaKeR
Последний раз редактировалось TweakeR; 13.11.2009 в 03:15..
Артём, огромное спасибо, как раз искал
Очень полезно для редактирования демона в чате Бородина)
А не мог бы ты дать ссылочку на НЕ Trial версию ActiveState Tcl Dev Kit v3.2?
Спасибо.
Последний раз редактировалось bomfunkY; 19.01.2008 в 23:06..
Артём, огромное спасибо, как раз искал
Очень полезно для редактирования демона в чате Бородина)
А не мог бы ты дать ссылочку на НЕ Trial версию ActiveState Tcl Dev Kit v3.2?
Спасибо.
ммм... Ловко =))
но есть один минус... При попытке изменить хоть один символ в прочитанном таким образом и вкомпилированном обратно коде - бородинский демон не стартует, доходит только до определения кодировки (видно по выводимым в консоли сообщениям) и встаёт.
Похоже, где-то в коде проверяется контрольная сумма или что-то в этом роде. Не подскажете, как это побороть ? =))
Upd: конечно, подразумевается "смена хоть одного символа" в чисто текстовых значениях-константах, например в выводимых во фрейм сообщений проверочных скриптах или при смене даты/версии демона.