(*Q);q! code1.ml - Don Yang (uguu.org) *) open String;; let rec int_list_to_string lst k = match lst with a::b -> (make 1 (Char.chr (a lxor k)) ^ (int_list_to_string b k)) | [] -> "";; let str_tail str index = sub str index ((length str) - index);; let rec string_to_int_list str = if str = "" then [] else Char.code (get str 0) :: string_to_int_list (str_tail str 1);; let xor_string s k = int_list_to_string (string_to_int_list s) k;; let rec remove_space str = if str = "" then str else ( (let x = sub str 0 1 in if x = " " || x = "\n" then "" else x) ^ (remove_space (str_tail str 1)) );; let rec format_text (template, text) = match template with x::y -> if x > 64 && x < 91 then ( let x = x - 64 in ( print_string (sub text 0 x); format_text (y, (str_tail text x)) ) ) else ( if x > 96 && x < 123 then print_string (make (x - 96) ' ') else print_newline (); format_text (y, text) ); | [] -> ();; let q = make 1 (Char.chr 34);; let data (t, s) = (string_to_int_list( str_tail (remove_space(t)) ((index (remove_space(t)) ',') + 1)), (xor_string (remove_space(s)) 21) ^ (remove_space(t)) ^ q ^ "," ^ q ^ (remove_space(s)) ^ q ^ "));;") (*!;# ($q = q! Mxor_string { $r .= chr ($_[0] ^ ord $_) foreach ($z =~ /./g); $r; } Mremove_space { ($s = $_[0]) =~ s/\s//g; $s; } Mformat_text { $t = $_[1]; foreach $x ($_[0] =~ /./g) { $x = ord $x; print ( ($x > 64 && $x < 91) ? (substr $t, 0, ($x -= 64)) : ($x > 96 && $x < 123) ? ("k" x ($x - 96)) : "\n" ); ($x <= 26) && ($t = substr $t, $x); if( $x == 44 ) { last; } } } Mdata { $z = remove_space($_[1]); (remove_space($_[0]), xor_string(21) . remove_space($_[0]) . '","' . $z . chr(34) . '));;'); } !) =~ s/\s//g; $q =~ s/M/sub /g; $q =~ s/k/ /; eval $q #*) ;; format_text (data("Q.O.X,Q.O.X.", "szgxtaJapma=qtat=7"));;