Page 1 of 1
Шифровка кода
Posted: 2009-03-20 09:34:43
by Nevers
Вот что требуется сделать. Есть скрипт который я даю другим людям пользоваться. Требуется сделать код нечитабельным, но работающим. И чтобы он запускался от по кодированному слову. Которое бы менялось в зависимости от времени. Есть ли такие реализации? Может подкинете какие-нибудь идеи?
Posted: 2009-03-20 09:43:21
by korzh
Найти перловый обфускатор и переходить на пинжект

Posted: 2009-03-20 09:45:24
by Nevers
korzh wrote:Найти перловый обфускатор и переходить на пинжект

Жутко извиняюсь, но что такое "перловый обфускатор". Это какая-то надстройка над инжектом?
Posted: 2009-03-20 09:52:54
by Destruction
Nevers wrote:korzh wrote:Найти перловый обфускатор и переходить на пинжект

Жутко извиняюсь, но что такое "перловый обфускатор". Это какая-то надстройка над инжектом?
google > define:обфускатор
google > define:PERL
Posted: 2009-03-20 09:59:03
by korzh
Не, не совсем
Вот
тут можно почитать про пинжект, а
тут про то, что такое обфускация.
Сделать нечитаемый, но рабочий код на инжекте не получится, разве что нагородить огромную кучу бессмысленных конструкций:)
Posted: 2009-03-20 10:10:55
by Destruction
А можно подробнее рассмотреть процесс обфускации:
1. Переименование переменных в что-либо не читабельное.
2. Полное стирание оформления кода.
3. Нагородить непонятных не слишком нужных конструкций.
4. В конце-концов написать написать свой язык скриптов, что инжект вполне себе позволяет.
Только факт в том, сколько не городи - кому будет нужно - он раскапает.
PS: Еще можно сделать патч для инжекта (вернее для script.dll) и компилировать скрипты, ну это уже для совсем задротов. А компилированные скрипты уже подвергать обфускации, тогда ваще жесть будет -)
Posted: 2009-03-20 10:14:26
by korzh
Да, про компиляцию хорошо придумал:)
С другой стороны, я так понял что пользователи скрипта автора нубы совсем, и кодового слова в рот13 там за глаза будет

Posted: 2009-03-20 10:45:53
by Nevers
Большое спасибо за идеи. Да про компиляцию это слишком жестоко

Posted: 2009-03-20 11:14:06
by korzh
Делать совсем нефига, сделал скриптег автору в помощь
Code: Select all
sub test()
uo.textprint( code("hello world!") ) # uryyb jbeyq!
uo.textprint( code("uryyb jbeyq!") ) # hello world!
endsub
sub code( str )
var s = '', len = strlen(str), map = "abcdefghijklmnopqrstuvwxyz", f = false
var a, t, n, j, m, r, e, k = 26
for var i = 0 to len - 1
j = 0
f = false
t = mid( str, i, 1 )
while (not f && j < k)
a = mid( map, j, 1)
if a == t then
f = true
r = j + k / 2
n = 0
e = false
while not e
if ((r / k) - int(r / k)) == 0 then
e = true
else
r = r - 1
n = n + 1
endif
wend
s = s + mid( map, n, 1)
endif
j = j + 1
wend
if not f then
s = s + t
endif
next
return s
endsub
PS Страшно выглядит?:))
Posted: 2009-03-20 23:48:06
by Destruction
Выглядит - да, а вот реверс-инженерингу подвергается как нефиг делать.
Куда более страшно переопределить ф-ции UO. -) кстати тоже вариант, но даже не жоский, а жестокий )