Phương pháp che giấu JAxH, không văn bản [đóng]


12

Một JAPH là một truyền thống lớn của việc tạo ra một chương trình in "Chỉ là một hacker Perl khác". Chúng tôi đã có một câu hỏi về JAPH trên trang web này nhưng họ có vẻ quan tâm hơn đến việc ẩn văn bản, nhưng JAPH luôn quan tâm nhiều hơn đến việc ẩn phương thức mà nó thực hiện những gì nó làm. Do đó, tôi thách bạn thể hiện các tính năng thú vị của ngôn ngữ yêu thích của mình và đừng quá lo lắng về việc ẩn văn bản (trừ khi bạn muốn).

Đây là của tôi, ở Perl, không nên khó hiểu cho một Velociraptor có kinh nghiệm để hiểu, nhưng có thể thú vị cho những người khác.

(*STORE,*TIESCALAR)=map{eval"sub{$_}"}qw'map{print&&sleep$|}split//,pop bless\$|++';tie$t,main;$t="Just another Perl hacker,\n"

Đánh giá chủ quan về phiếu bầu của các bạn, hãy cùng xem một số người có đầu óc!


Có lẽ bạn nên cập nhật bài viết Wikipedia trên JAPH, vì hầu hết các ví dụ của nó dường như là về việc ẩn văn bản.
Peter Taylor

@PeterTaylor, Ok có rất nhiều điều mà bạn cố gắng để ẩn văn bản, và những điều đó không sai, nhưng tôi muốn một người đã khám phá phương pháp này. Xem ví dụ nhiều trong số những người được đăng trong cpan.org/misc/japh
Joel Berger

1
"Không nên để một Velociraptor có kinh nghiệm hiểu được, nhưng có thể thú vị với những người khác", điều đó đúng với bất kỳ chương trình Perl nào, tôi không thuộc thể loại Velociraptor vì vậy tôi sẽ chỉ cho bạn Hello World bị xáo trộn của tôi ở Bash như một hình thức trả thù_2=($_1/*/*); ${_2[34]} -${_2[34]:5:1}'\110\145\154\154\157\54\40\127\157\162\154\144\41'

Câu trả lời:


29

C

Phải được biên dịch thành 32 bit. Trên máy 64 bit sử dụng gcc -m32hoặc như vậy.

#include <stdlib.h>

int main() {
    char *c = "echo Just another C hacker";
    int foo=123; //unused                          /* Warning: there's a
    int k=(int)1                                    * (long) system
    //now for the fun part!                         * of chinese boxes
    //behold:                                       * in this code. */
    +0;
    -1;
    ((int(*)(char *))k)(c);
}

Disclaimer: không phải ý tưởng của tôi. Tôi tìm thấy nó nhiều năm trước ẩn trong một số mã. Nghiêm túc. Họ thậm chí còn tốt hơn, tôi quên một vài chi tiết nhỏ. Nhưng ý chính là ở đó.

Khi bạn nhìn thấy nó, bạn sẽ thấy những viên gạch.


1
Cái gì...? Bạn có thể giải thích làm thế nào / tại sao điều này làm việc?
arshajii

1
HẠ! @arshajii, tất cả đều là khói và gương. Tôi không muốn giải thích nó ở đây, nhưng đọc mã kỹ hơn.
hộp bánh mì

6
... Điều đó khá kinh khủng. +1
Hasturkun

@Hasturkun Cảm ơn. Tôi đã phấn đấu cho điều tồi tệ nhất. Trong một khoảnh khắc, tôi đã cân nhắc việc đặt một "rm -rf ~" ở đâu đó, nhưng nó đã không tử tế ;-)
Tobia

2
@bread ơi! Các /*bình luận được đưa ra! facepalm :-P
Doorknob

6

Toán học:

TextRecognize@
 ImageAssemble@
  Transpose@
   ImagePartition[Import@"http://i.stack.imgur.com/S9fci.png", 5] 

6

Phi tiêu

class Print{
  var PrinT,print,prinT;
  get PRint() => PrinT;
  get pRInt() => 'A$prinT';
  get pRint() => print;
  set pRInt(PrinT){print=PrinT;}
  set prInt(pRInt){prinT='n$pRInt';}
  Print(prinT,PRINT){
    PrinT = prinT;
    prInt = PRINT;
  }
  PRINT(print,PrinT){
    pRint.PRint('$print ${pRint.pRInt} $PRint $PrinT');
  }
  Print.print(print,prinT){
    pRInt = new Print(print,'other');
    PrinT = prinT;
  }
}
main(){
  Print print = new Print.print(print,'Dart');
  print.PRINT('Just','Hacker');
}

Chỉnh sửa: setter ít nhàm chán, getter ít nhàm chán.

Tôi đã học ngôn ngữ này được một ngày, vì vậy tôi nghĩ người khác có thể nghĩ đây là một mớ hỗn độn của trẻ em ... :(


1
đạo cụ cho nhận con nuôi sớm, tôi sẽ bẻ cong quy tắc của tôi và bỏ phiếu cho bạn. Hãy xem các thẩm phán (cộng đồng) nghĩ gì
Joel Berger

Tôi đồng ý với Joel.
DocMax

6

PRNG

Nó ở C, nhưng nó thực sự cho thấy rằng bạn có thể làm những điều tuyệt vời bằng cách sử dụng PRNG và đầu ra Just another PRNG hacker:

#include <stdio.h>

#define P 0x3A4B5C6D

char s[6];
int j, t;

void r(int d) {
  t = ((P * d + P) << 17) + ((P * d - P) >> 15) + P;
  for (j = 0; j < 5; j++) {
    s[j] = (t % 51) + 67;
    t /= 51;
    if ((s[j] >= 91) && (s[j] <= 96)) s[j] = 32;
  }
  printf("%s", s);
}

int main() {
  r(0x444C725);
  r(0x2D65DD4B);
  r(0x6C5C71A);
  r(0xB2A4BBD);
  r(0x275BD6F);
  return 0;
}

Sử dụng PRNG tích hợp (srand, rand) cũng có thể, nhưng ít di động hơn.


Ôi. cái gì ... tôi ... oh anh bạn
TehShrike

5

C

int main(int _)
{
    putchar(~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
    putchar(-~-~-~-~-~-~-~-~-~-~-~-~-~
    putchar(~-~-~-~-~-~-
    putchar(-~-~-~-~-~-~-~-~
    putchar(-~-~
    putchar(~-~-~-~-~-~-~-
    putchar(-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
    putchar(~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
    putchar(-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
    putchar(~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
    putchar(-~-~-~-~-~-~-~-~-~-~-~-~-~
    putchar(~-~-~-
    putchar(~-~-~-~-~-~-~-~-~-~-~-~-
    putchar(-~-~-~-~-~
    putchar(-~
    putchar(-~-~-~-~-~-~-~-~-~-~-~-~-~
    putchar(-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
    putchar(~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
    putchar(-~
    putchar(~-~-
    putchar(-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
    putchar(-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~_
    ))))))))))))))))))))));
}


3

Javascript

eval('Acy419yt=12-14;'.split('').map(function(x){return String.fromCharCode(
0240-x.charCodeAt(0))}).join(''))[_]((___='splitulengthureverseujoinufilter'
.split('\x75'),function __(_){return _[___[1]]?__(_[___[0][0]+___[___[3]](''
)[___[0]]('')[___[4]](function(_,__){return ~~(__/2)==1})[___[3]]('')+'ce'](
1))+_[0]:_}("Just Another JavaScript Hacker"))[___[0]]('')[___[2]]()[___[3]](''));

Trong mã của tôi, văn bản JAJSH đã được mã hóa bằng cách đảo ngược nó, không chỉ một lần, mà là hai lần !! Hà! Bạn có thể tìm thấy nó không?


2

Haskell

Tôi đã làm điều này với một số trợ giúp .

{-# LANGUAGE ForeignFunctionInterface #-}

import Control.Applicative
import Control.Monad
import Foreign
import Foreign.C

foreign import ccall "stdio.h puts"
    puts :: CString -> IO ()

main :: IO ()
main = liftM2 allocaBytes length
       ((<*> puts) . ((>>) .) . flip (flip zipWithM_ [0..] . pokeElemOff))
     $ map (fromIntegral . fromEnum) "Just another Haskell hacker\0"

Và chỉ để cho vui:

{-# LANGUAGE ForeignFunctionInterface #-}

import Control.Exception
import Control.Monad
import Data.Bits
import Data.Word
import Foreign
import Foreign.C

foreign import ccall "stdlib.h realloc"
    c_realloc :: Ptr a -> CSize -> IO (Ptr a)

foreign import ccall "stdlib.h free"
    c_free :: Ptr a -> IO ()

foreign import ccall "stdio.h puts"
    c_puts :: CString -> IO ()

-- | Write a UTF-8 character into a buffer.
--
-- Return the length of the character in bytes, which will be a number from 1-4.
pokeUtf8 :: Ptr Word8 -> Char -> IO Int
pokeUtf8 ptr char =
    case (fromIntegral . fromEnum) char :: Word32 of
        c | c <= 0x7F -> do
            put ptr c
            return 1
        c | c <= 0x7FF -> do
            put ptr                 (0xC0 .|. c `shiftR` 6)
            put (ptr `plusPtr` 1)   (0x80 .|. c .&. 0x3F)
            return 2
        c | c <= 0xFFFF ->
            if c >= 0xD800 && c <= 0xDFFF
                then replacement
                else do
                    put ptr                 (0xE0 .|. c `shiftR` 12)
                    put (ptr `plusPtr` 1)   (0x80 .|. c `shiftR` 6 .&. 0x3F)
                    put (ptr `plusPtr` 2)   (0x80 .|. c .&. 0x3F)
                    return 3
        c | c <= 0x10FFFF -> do
            put ptr                 (0xF0 .|. c `shiftR` 18)
            put (ptr `plusPtr` 1)   (0x80 .|. c `shiftR` 12 .&. 0x3F)
            put (ptr `plusPtr` 2)   (0x80 .|. c `shiftR` 6 .&. 0x3F)
            put (ptr `plusPtr` 3)   (0x80 .|. c .&. 0x3F)
            return 4
        _ -> replacement
    where
        put p c = poke p (fromIntegral c :: Word8)
        replacement = pokeUtf8 ptr '\xFFFD'

withUtf8 :: String -> (CStringLen -> IO a) -> IO a
withUtf8 string action = expand nullPtr 64 0 string where
    expand buf bufsize pos str = do
        buf' <- c_realloc buf (fromIntegral bufsize)
        when (buf' == nullPtr) $ do
            c_free buf
            ioError $ userError "Out of memory"
        write buf' bufsize pos str

    write buf bufsize pos str
        | bufsize - pos < 4 = expand buf (bufsize * 2) pos str
        | otherwise = do
            case str of
                (c:cs) -> do
                    len <- pokeUtf8 (buf `plusPtr` pos) c
                    write buf bufsize (pos + len) cs
                [] -> do
                    pokeByteOff buf pos (0 :: Word8)
                    finish buf pos

    finish buf len =
        finally (action (buf, len)) (c_free buf)

puts :: String -> IO ()
puts str = withUtf8 str (c_puts . fst)

main :: IO ()
main = puts "\x266B Just another C hacker using Haskell \x266B"

2

JavaScript

Chạy trong giao diện điều khiển

({}+[])[!''+!''+!![]] + (!![]+[])[!''+!''] + (![]+[])[!''+!''+!''] + (!![]+[])[+![]] + ({}+[])[!![]+!''+!''+!''+!''+!''+!''] + (![]+[])[+!![]] + ([][{}]+[])[+!![]] + ({}+[])[+!''] +
(!![]+[])[+![]] + 'h' + (![]+[])[!''+!''+!![]+!![]] + (!![]+[])[+!![]] + ({}+[])[!![]+!![]+!''+!''+!''+!''+!''] + ({}+[])[!![]+!''+!![]] + (![]+[])[!![]+!''+!![]] + 
({}+[])[!![]+!![]+!![]+!![]+!''+!![]+!![]] + 'h' + (![]+[])[+!![]] + ({}+[])[!![]+!![]+!''+!![]+!![]] + 'k' + (![]+[])[!''+!![]+!![]+!''] + (!![]+[])[+!'']

2

Python 2.x (biểu thức đơn)

Bây giờ, trong khi điều này khá dễ dàng để tìm ra Pythoneers, những người khác có thể thấy nó ít nhất là thú vị. Nếu bạn tự hỏi tại sao có quá nhiều lambdas, tôi muốn có độ sáng tối đa, nhưng sự lặp lại tối thiểu. Ai không thích cởi quần áo? Ý tưởng

(lambda ______________:(lambda ______,_______,________:(lambda _____:(lambda _,___,__,____,_____________:(lambda _________,__________:(lambda ___________,____________:___________(____________,____[_________**(_________+__________)-__________::_________+_________+_________]+_[__________::_________]+__[_________+__________])(____________,______________))((lambda _,__:________(______(_))[__]),(________(__import__(_[_________]+__[_________*_________+__________]+_[_________]))[_[_________:_________+_________]+___[__________/_________]+__[__________]+_____(u'')[__________/_________]+_[_________+__________]])))((_____________(_)+_____________(_))/_____________(_),_____________(_)/_____________(_)))(_____([]),_____({}),_____(None),_____({}.__iter__),lambda _:len(_)))(lambda _:_______(______(_))))((lambda _:_.__class__),(lambda _:_.__name__),(lambda _:_.__dict__)))('Just another Python Hacker\n')

Một phiên bản thụt lề nếu bạn thích:

(lambda ______________:
    (lambda ______,_______,________:
        (lambda _____:
            (lambda _,___,__,____,_____________:
                (lambda _________,__________:
                    (lambda ___________,____________:
                        ___________(____________,____[_________**(_________+__________)-__________::_________+_________+_________]+_[__________::_________]+__[_________+__________])(____________,______________)) (
                        (lambda _,__:________(______(_))[__]),
                        (________(__import__(_[_________]+__[_________*_________+__________]+_[_________]))[_[_________:_________+_________]+___[__________/_________]+__[__________]+_____(u'')[__________/_________]+_[_________+__________]]))) (
                    (_____________(_)+_____________(_))/_____________(_),
                    _____________(_)/_____________(_))) (
                _____([]),
                _____({}),
                _____(None),
                _____({}.__iter__),
                lambda _:len(_))) (
            lambda _:_______(______(_)))) (
        (lambda _:_.__class__),
        (lambda _:_.__name__),
        (lambda _:_.__dict__)))('Just another Python Hacker\n')

Điều này xác định một hàm và gọi nó bằng 'Chỉ là một Hacker Python khác'. Bây giờ, nó không phải là một chức năng, nhưng tôi nghĩ nó sẽ thanh lịch hơn.

f = (lambda ______________:(lambda ______,_______,________:(lambda _____:(lambda _,___,__,____,_____________:(lambda _________,__________:(lambda ___________,____________:___________(____________,____[_________**(_________+__________)-__________::_________+_________+_________]+_[__________::_________]+__[_________+__________])(____________,______________))((lambda _,__:________(______(_))[__]),(________(__import__(_[_________]+__[_________*_________+__________]+_[_________]))[_[_________:_________+_________]+___[__________/_________]+__[__________]+_____(u'')[__________/_________]+_[_________+__________]])))((_____________(_)+_____________(_))/_____________(_),_____________(_)/_____________(_)))(_____([]),_____({}),_____(None),_____({}.__iter__),lambda _:len(_)))(lambda _:_______(______(_))))((lambda _:_.__class__),(lambda _:_.__name__),(lambda _:_.__dict__)))
f('Hello.\n')
f('Just another Python Hacker here.\n')

Ồ, chính xác là 900 byte. Điều đó là hoàn toàn vô tình và tuyệt vời.
xem

Và rõ ràng là nó chỉ hoạt động với Python 2.x
seequ

2

QBasic

Đây là triển khai của tôi trong QBasic. Chương trình phải được gọi là "JAQBH.BAS" trong hoặc để điều này thực thi đúng, vì nó đọc nguồn của chính nó như là một phần của chương trình. Và tôi không thể tìm thấy bất kỳ cách xác định rõ ràng nào về tên của tập lệnh hiện đang chạy.

COMMON SHARED JAQBH$
COMMON SHARED F$
IF F$ = "" THEN F$ = "A.BAS"
OPEN F$ FOR OUTPUT AS #1
PRINT #1, JAQBH$
DATA 20,16,28,24,16
DATA "Just Another QBasic Hacker"
OPEN "JAQBH.BAS" FOR INPUT AS #2
FOR i% = 1 TO 5
        READ l%
        y$ = INPUT$(l%, #2)
        PRINT #1, y$
        y$ = INPUT$(2, #2)
NEXT
CLOSE #1
CLOSE #2
F$ = "CON"
READ JAQBH$
CHAIN "A.BAS"

Có cách nào tốt để biên dịch hoặc chạy qbasic trong ubfox không? Tôi đã thử một tìm kiếm google, cài đặt freebasic và nó cung cấp cho tôi tất cả các loại lỗi.
Joel Berger

cái này có thể hoạt động - repl.it (Uh, chỉ cần thử nó và nó thất bại.)
DanBeale

Tôi không tưởng tượng bất kỳ phiên bản trực tuyến nào sẽ cho phép viết các tệp
Kibbee

1
Có lẽ bạn có thể chạy nó trong DOSBOX
Kibbee

Tôi đã thử nghiệm nó trong DOSBOX và nó hoạt động hoàn hảo.
mellamokb

1

Haskell

Thú vị với máy biến áp đơn nguyên:

import Control.Monad.State
import Control.Monad.Writer

newtype A a = A (Maybe a)
newtype B = B { c :: String }

instance Show a => Show (A a) where
   show (A x) = show x

instance Show B where
   show = c

s = [97, 13, 1, 5, -12, -3, 13, -82, 40, 25, 18,
     -8, -6, 7, 0, -76, 72, -7, 2, 8, -6, 13]

main = print . A . fmap B . execWriterT . flip evalStateT 0 . mapM f $ s
  where f x = modify (+x) >> get >>= tell . return . toEnum


1

Phần tái bút.

Tạo một phông chữ tùy chỉnh để hiển thị văn bản.

%!
100 200[>>begin
(Encoding{}FontType 3
 BuildChar{exch begin 10 0 setcharwidth load exec stroke end}
 FontMatrix .1 0 0 .1 0 0 FontBBox 0 0 10 10) 
{token{exch}{exit}ifelse}loop
{4 6}{array astore def}forall
/c{1 string cvs 0 get}4{def}repeat
/J c{7 9 moveto 7 2 lineto 6 4 1 360 190 arcn}
/A c{2 2 moveto 5 8 lineto 8 2 lineto}
/P c{3 2 moveto 3 8 lineto 3 6 2 90 270 arcn}
/s c{5 7 2 0 270 arc 5 3 2 90 180 arcn}
/H c{2 2 moveto 2 8 lineto 8 8 moveto 8 2 lineto 2 4 moveto 8 4 lineto}5{def}repeat
/F currentdict end definefont 20 scalefont setfont
moveto(JAPsH)show

1

Hồng ngọc

Có hai ý tưởng và cuối cùng kết hợp chúng.

def Object.const_missing(const)
  define_method(:method_missing) do |meth,*args|
    "#{meth}"['i'] ? ->a{not$*<<a.pop} :print(meth)
  end[const,$\=' ']
end

Begin

case %w[Just another ruby hacker]
when tick
  puts 'tock'
when tick
  puts 'tock'
when tick
  puts 'tock'
when tick
  puts 'tock'
else
  eval($**$\)
end

1

Ruby 1.9

Cheesy, phụ thuộc nhiều vào việc thực hiện, nhưng tôi hy vọng bạn thấy nó ma quái.

class Object
    define_method(:!) do |n=3|
        send(methods.find{|la|la[/[slappy]{#{n}}/]})
    end
end

(!!!:!).!(5) unless respond_to?('Just another ruby hacker,')

Chỉnh sửa: Bằng chứng


1

Con trăn

JAPH của tôi bằng Python

class Foo:
    def __init__(s, t='Just another Python hacker'):
        def g():
            return [100,101,102,32,102,
                    40,120,41,58,112,114,
                    105,110,116,32,120],t
        s.g = g()
        class Z():
            def __add__(s,x):return x
        s.z = sum((chr(i)for i in s.g[0]),Z())
    def __call__(s,t):
        return t.join(map(chr,s))
    def __iter__(s):
        return (ord(i) for i in `s`)
    def __repr__(s):
        return s.g[-1]
    def __getitem__(s, x):
        exec s.z
        f(s(x))
Foo()['']

0

JavaScript

eval (atob("ZnVuY3Rpb24gcHJpbnQoKSB7CmZ1bmN0aW9uIHRyKGEsYikgewogICAgcmV0dXJuIGEubWFwKGZ1bmN0aW9uKHgpewogICAgICAgIHJldHVybiB4LnRvU3RyaW5nKGIpOwogICAgfSkuam9pbignICcpOwp9CgoKdmFyIGEgPSJXemt5TmpNNE1Td3lNekl3TURJek1UYzNPU3d4TVRnMU5UTTNMREV3TkRVek1EYzBOelZkIjsKYSA9IGF0b2IoYSk7CmEgPSBKU09OLnBhcnNlKGEpOwphID0gdHIoYSwzNik7CmNvbnNvbGUubG9nKGEpOwp9"));
print();

0

Lua / RProgN

print "Just "           --                         Write Just to the Console--
print "Another "        --                      Write Another to the Console--
print "Lua "            --           Write Lua, definitely NOT  [ 'RProgN' ]--
print "Hacker "         -- Do u really thing u r an hacker like i [ ur NOT ]--

Tôi chắc chắn có một cách tốt hơn và lén lút hơn để kết hợp hai ngôn ngữ này. Ẩn trong ý kiến ​​chỉ là quá lạm dụng.

Hãy thử Lua Out

Hãy thử RProgN Out


0

Hoạt động ngôn ngữ kịch bản Flashpoint

removeAllWeapons player
s = primaryWeapon player
call = "scripting " else "language "

a = [if true, if false]
b = ["s=s+(call select 0)", format["s=s+(call select 1)%1%2=%3", {;}, "call", {nil}]]

a select 0 then b
a select 1 then b

a = a + getPos player + [{Just another} + format ([" %1 %2 "] + ("Operation" ELSE "Flashpoint"))]

"b = format[""%2%1%3."", s, _x, call""""""hacker""""""]" count a

titleText (b else "plain")

exit

Lưu dưới dạng ofp.sqs(hoặc bất kỳ tên nào khác) và gọi với [] exec "ofp.sqs".

Đầu ra:


0

Tranh sơn dầu

³{┤:js nte avshce@;utaohrcna akr@})∑╷

... sẽ hoạt động, nhưng trên chuỗi chưa được thực hiện. Hoan hô cho các dự án chết! Phiên bản làm việc sử dụng logic tương tự, nhưng hơi ... ít bị xáo trộn.

Hãy thử trực tuyến! (phiên bản làm việc)


0

Perl trên OSX 10.7+ (yêu cầu Xcode)

#!/usr/bin/perl
use Inline C=>q{int g(){atexit("j\31\350\31\0\0\0Just \
another Perl hacker\n1\300@\220\17\204\n\0\0\0j\1k\4\x\
cd\x80\203\304\20\303^j\1_Z\270\4\0\0\2\17\5\303");}};g
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.