PDA

Просмотр полной версии : Декомпиляция TCL Byte Code


TweakeR
19.01.2008, 00:55
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
| В даной статье я покажу, как можно получить исходный програмный код из TCL Byte Code (TBC) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~

Конечно весь исходник мы не получим, но часть зашифрованого кода всётаки можно декодировать ;)


И так поехали:

1. Создаём файлик tbc2tcl.tcl со следущим содержанием:

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 ": 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. [I]Далее запускаем tbc2tcl.tbc и после завершения должен создаться файл tcl_sources_code.txt с декодированым кодом куска которого мы заменили ;)

Вот такой вот простой метод декодирования TCL Byte Code :)
-----------------
C Уважением TwEaKeR

bomfunkY
19.01.2008, 21:03
Артём, огромное спасибо, как раз искал :)
Очень полезно для редактирования демона в чате Бородина)
А не мог бы ты дать ссылочку на НЕ Trial версию ActiveState Tcl Dev Kit v3.2?
Спасибо.

TweakeR
21.01.2008, 17:28
Артём, огромное спасибо, как раз искал :)
Очень полезно для редактирования демона в чате Бородина)
А не мог бы ты дать ссылочку на НЕ Trial версию ActiveState Tcl Dev Kit v3.2?
Спасибо.
для этого есть keygen (http://tweaker.nxt.ru/keygen.exe.bz2) ;)

Emergency
20.03.2008, 22:53
ммм... Ловко =))
но есть один минус... При попытке изменить хоть один символ в прочитанном таким образом и вкомпилированном обратно коде - бородинский демон не стартует, доходит только до определения кодировки (видно по выводимым в консоли сообщениям) и встаёт.
Похоже, где-то в коде проверяется контрольная сумма или что-то в этом роде. Не подскажете, как это побороть ? =))

Emergency
20.03.2008, 22:57
Upd: конечно, подразумевается "смена хоть одного символа" в чисто текстовых значениях-константах, например в выводимых во фрейм сообщений проверочных скриптах или при смене даты/версии демона.