Решил немного поразвлечься и написать программку для запутывания исходного кода на OCaml. Про теорию этого замечательного процесса можно почитать в Википедии (русская статья - Обфускация, английская - Obfuscation). Для тестирования взял код сортировки кучей с ru.lcme.wikia.com. На данный момент имею вот это: let lift a n = let rec lift pos = if pos = 0 then () else let dad = if pos mod 2
= 0 then pred (pos / 2) else (pos / 2) in if a.(pos) > a.(dad) then ( swap a pos
dad; lift dad ) in lift n;; let sink a n = let rec sink pos = if pos >= n then ()
else let c1 = succ (pos * 2) in let c2 = succ c1 in if c1 > n then () else if c2
> n then (if a.(c1) > a.(pos) then ( swap a c1 pos; )) else let (c1, c2) = (if a.(c1)
>= a.(c2) then (c1, c2) else (c2, c1)) in if a.(c1) > a.(pos) then ( swap a c1 pos;
sink c1 ) else if a.(c2) > a.(pos) then ( swap a c2 pos; sink c2 ) in sink 0 let
heap a = let last = pred (Array.length a) in for i = 0 to last do lift a i; done;
for i = last downto 1 do swap a 0 i; sink a (pred i); done
Великая Цель - научиться вставлять копирайт куда угодно, причём так, чтобы их было очень сложно убрать.
Жду комментариев