Thử thách Obfuscation [đã đóng]


24

Bạn phải viết một chương trình thực hiện một trong những điều sau đây.

  1. Chỉ hiển thị "Hello World" không có gì khác
  2. Thoát và không có gì khác (không có đầu ra, không có lỗi.)
  3. Lấy một dòng đầu vào, phân tích cú pháp dưới dạng một số nguyên, hiển thị đầu tiên có nhiều số nguyên tố (hoặc đưa ra một lỗi hay nếu nó được cung cấp đầu vào không thể được phân tích thành số nguyên hoặc nhỏ hơn 0.)
  4. Đưa ra một dòng đầu vào, nó phân tích cú pháp nó có ký hiệu chứng khoán và kiểm tra trực tuyến về giá trị cổ phiếu hiện tại và thay đổi của nó.

Việc bắt, nó không nên rõ ràng mà nó thực hiện chức năng. Cụ thể, đối với ai đó đang xem mã của bạn, không rõ chức năng nào sẽ làm. Ngoài ra, nó chỉ có thể thực hiện và có thể thực hiện một chức năng (không thể chọn và chọn.) Chương trình được xác định tốt như thế nào bởi sự không chắc chắn của một người nào đó xem chức năng của nó là gì và cũng quen thuộc như thế nào người với ngôn ngữ đó

THƯỞNG: Nếu bạn làm một cách thông minh, mặc dù đối với bất kỳ một trình biên dịch / trình xâm nhập và nền tảng nào, chương trình cũng sẽ thực hiện cùng một chức năng, các trình biên dịch / trình thông dịch hoặc nền tảng khác nhau, nó sẽ thực hiện một chức năng khác. Phần thưởng này chỉ có thể được thu thập nếu được thực hiện một cách khéo léo.

THƯỞNG: Nếu chương trình của bạn chỉ chứa mã có khả năng một chức năng (không lưu gì cả, vì mã trống có khả năng đó) và không thể thực hiện một sửa đổi đơn giản không liên quan đến chức năng để cho phép nó thực hiện một chức năng khác. Ví dụ: nếu bạn đã làm

obfuscatedBool = 1g8uhad'l8fygrcetdu8y4fd/,.oe87fy4d --Magic
if obfuscatedBool: print "Hello World"

Sẽ không được tính là obfuscatedBool có thể được thực hiện đúng hoặc sai để làm cho nó in "Hello World" hoặc không làm gì tương ứng.

TIỀN THƯỞNG INFINITY: Nếu bạn nhận ra cả hai phần thưởng cùng một lúc, bạn là ma thuật.

TIỀN THƯỞNG NEGECT: Sử dụng các thư viện có khả năng cụ thể để thực hiện các chức năng.

Cử tri, hãy cân nhắc tiền thưởng, vì chương trình nào có nhiều phiếu nhất sẽ thắng!

Lưu ý: Nếu bạn nói những gì chương trình của bạn làm, hãy đảm bảo sử dụng cú pháp spoiler!


2
Thành thật mà nói, tôi không thể hiểu hầu hết các câu hỏi. Tôi đi xa hơn và sẽ nói rằng tôi chỉ hiểu 4 điểm.
Ismael Miguel

Tạo một chương trình sao cho nó thực hiện một trong 4 điều, nhưng không ai biết điều gì.
PyRulez

25
Còn tiền thưởng thì sao? Nghiêm túc, ngay cả câu hỏi cũng bị xáo trộn.
Ismael Miguel

4
Vì đây là một cuộc thi phổ biến, phần thưởng là gì?
Ismael Miguel

1
@MukulKumar - như trong, của tôi thực sự có ý nghĩa?
TheDoctor

Câu trả lời:


43

Khoảng trắng / Brainfuck / Python

'' 'bắt đầu' '' '' '' '' '' '  
chính (args) {   	  	   
	parseArss = args.Find ('^ ++++++++ ^ [<++++ [<++ <+++ <+++ <+ >>>> az] <+ <+ <AZ [ >]> 0-9] <<. <---. * $ ');
    for (int i = 0; Range (GetLpm (parseArss)); i ++) {validateArg (parseArss (i));}  	 	
	//Tên
    chuỗi stockName = "";		 		  
	// vòng lặp
    for (int i = 0; Range (GetLpm (parseArss)); i ++) {		 		  
	// xác thực
     	if (matchFound = Tìm ('a + z + A + .Z.0 + 9 + _ +. << * $') {	 				
	//tìm
     	parseArss (i) .Split ('> -.>. +');}     
	
     	for (int j = 0; Range (GetLpm (parseArss (i))); j ++) {	 			
	//tải về
    data = ConvertTo.String (eval ("curl -get http://some-stock-ticker-source-url-here.com"));	 				
	in;
    in dữ liệu;			  	 
	
    // dấu phân cách dòng		 		  
	
    in "--------.";		  	  
	}}
}  


''hoàn thành'''''''''''''''

Wikipedia: Whitespace (ngôn ngữ lập trình)
Phiên dịch viên khoảng trắng trực tuyến để kiểm tra câu trả lời
Phiên dịch Brainfuck trực tuyến để kiểm tra câu trả lời

Đầu ra (Khoảng trắng / Brainfuck):

Chào thế giới
Ouput (Python):
Không có gì, nhưng chạy thành công.


2
Điều này thực sự mát mẻ! Tôi nghĩ bạn nên cập nhật mô tả. Không phải mã rõ ràng là một chương trình thứ ba cũng làm một cái gì đó? Ngoài ra nếu bạn có thể thay đổi một trong các bộ não hoặc khoảng trắng để thực hiện một trong các chức năng khác, tôi sẽ cung cấp cho bạn phần thưởng INFINITY!
SebastianH

1
Ngôn ngữ nào là chương trình giả vờ?
durron597

1
@ durron597 Đó là một phép lai C # và Python kỳ lạ. Tôi sẽ làm tất cả trong C # nhưng thật khó để làm cho cú pháp hoạt động hoàn toàn.
GrovesNL

@SebastianH Đây là một chương trình giả vờ để che giấu chức năng thực tế của nó.
GrovesNL

Chức năng Python quá minh bạch. Sau khi bạn thấy 3 ký tự đầu tiên, bạn chỉ cần quét phần còn lại của mã để kết thúc chuỗi ký tự.
user2357112 hỗ trợ Monica

40

Mã não

゚ω゚ノ=/`m´)ノ~┻━┻//*´∇`*/['_'];o=(゚ー゚)=_=3;c=(゚Θ゚)=(゚ー゚)-(゚ー゚);(゚Д゚)=(゚Θ゚)=(o^_^o)/(o^_^o);(゚Д゚)={゚Θ゚:'_',゚ω゚ノ:((゚ω゚ノ==3)+'_')[゚Θ゚],゚ー゚ノ:(゚ω゚ノ+'_')[o^_^o-(゚Θ゚)],゚Д゚ノ:((゚ー゚==3)+'_')[゚ー゚]};(゚Д゚)[゚Θ゚]=((゚ω゚ノ==3)+'_')[c^_^o];(゚Д゚)['c']=((゚Д゚)+'_')[(゚ー゚)+(゚ー゚)-(゚Θ゚)];(゚Д゚)['o']=((゚Д゚)+'_')[゚Θ゚];(゚o゚)=(゚Д゚)['c']+(゚Д゚)['o']+(゚ω゚ノ+'_')[゚Θ゚]+((゚ω゚ノ==3)+'_')[゚ー゚]+((゚Д゚)+'_')[(゚ー゚)+(゚ー゚)]+((゚ー゚==3)+'_')[゚Θ゚]+((゚ー゚==3)+'_')[(゚ー゚)-(゚Θ゚)]+(゚Д゚)['c']+((゚Д゚)+'_')[(゚ー゚)+(゚ー゚)]+(゚Д゚)['o']+((゚ー゚==3)+'_')[゚Θ゚];(゚Д゚)['_']=(o^_^o)[゚o゚][゚o゚];(゚ε゚)=((゚ー゚==3)+'_')[゚Θ゚]+(゚Д゚).゚Д゚ノ+((゚Д゚)+'_')[(゚ー゚)+(゚ー゚)]+((゚ー゚==3)+'_')[o^_^o-゚Θ゚]+((゚ー゚==3)+'_')[゚Θ゚]+(゚ω゚ノ+'_')[゚Θ゚];(゚ー゚)+=(゚Θ゚);(゚Д゚)[゚ε゚]='\\';(゚Д゚).゚Θ゚ノ=(゚Д゚+゚ー゚)[o^_^o-(゚Θ゚)];(o゚ー゚o)=(゚ω゚ノ+'_')[c^_^o];(゚Д゚)[゚o゚]='\"';(゚Д゚)['_']((゚Д゚)['_'](゚ε゚+(゚Д゚)[゚o゚]+(゚Д゚)[゚ε゚]+(゚Θ゚)+(゚ー゚)+(゚Θ゚)+(゚Д゚)[゚ε゚]+(゚Θ゚)+((゚ー゚)+(゚Θ゚))+(゚ー゚)+(゚Д゚)[゚ε゚]+(゚Θ゚)+(゚ー゚)+((゚ー゚)+(゚Θ゚))+(゚Д゚)[゚ε゚]+(゚Θ゚)+((o^_^o)+(o^_^o))+((o^_^o)-(゚Θ゚))+(゚Д゚)[゚ε゚]+(゚Θ゚)+((o^_^o)+(o^_^o))+(゚ー゚)+(゚Д゚)[゚ε゚]+((゚ー゚)+(゚Θ゚))+(c^_^o)+(゚Д゚)[゚ε゚]+(゚ー゚)+((o^_^o)-(゚Θ゚))+(゚Д゚)[゚ε゚]+(゚Θ゚)+(゚Θ゚)+(c^_^o)+(゚Д゚)[゚ε゚]+(゚Θ゚)+(゚ー゚)+((゚ー゚)+(゚Θ゚))+(゚Д゚)[゚ε゚]+(゚Θ゚)+((゚ー゚)+(゚Θ゚))+(゚ー゚)+(゚Д゚)[゚ε゚]+(゚Θ゚)+((゚ー゚)+(゚Θ゚))+(゚ー゚)+(゚Д゚)[゚ε゚]+(゚Θ゚)+((゚ー゚)+(゚Θ゚))+((゚ー゚)+(o^_^o))+(゚Д゚)[゚ε゚]+(゚ー゚)+(c^_^o)+(゚Д゚)[゚ε゚]+(゚Θ゚)+((o^_^o)-(゚Θ゚))+((゚ー゚)+(o^_^o))+(゚Д゚)[゚ε゚]+(゚Θ゚)+((゚ー゚)+(゚Θ゚))+((゚ー゚)+(o^_^o))+(゚Д゚)[゚ε゚]+(゚Θ゚)+((o^_^o)+(o^_^o))+((o^_^o)-(゚Θ゚))+(゚Д゚)[゚ε゚]+(゚Θ゚)+((゚ー゚)+(゚Θ゚))+(゚ー゚)+(゚Д゚)[゚ε゚]+(゚Θ゚)+(゚ー゚)+(゚ー゚)+(゚Д゚)[゚ε゚]+(゚ー゚)+((o^_^o)-(゚Θ゚))+(゚Д゚)[゚ε゚]+((゚ー゚)+(゚Θ゚))+(゚Θ゚)+(゚Д゚)[゚o゚])(゚Θ゚))('_');

Cảnh báo "Hello World" đã được
trả lời tại /codegolf//a/3946/804
Vì tôi không đưa ra câu trả lời này, biến nó thành wiki cộng đồng


28
Bạn có hoàn toàn chắc chắn đây không phải là APL?
mniip

2
@mniip ơi !! đó là JS. Demo jsfiddle.net/7mqL8
Clyde Lobo

11
Tôi thấy mặt cười ở khắp mọi nơi ..
Thorkil Holm-Jacobsen

1
Đây là cách sử dụng Unicode tốt nhất trong JavaScript mà tôi từng thấy!
Cole Johnson

4
+1 cho mặt cười : (o^_^o).
Amal Murali

31

Hội MS-DOS x86

Bởi vì nó không bị xáo trộn khi lắp ráp, hãy làm cho nó còn tệ hơn nữa! Điều này NÊN làm việc với bất kỳ trình biên dịch nào có thể lắp ráp thành tệp COM, nhưng tôi chỉ thử nghiệm với TASM cho DOS bằng cách sử dụng tasm obfuse,tlink /t obfuse

.286
CODE SEGMENT
ASSUME CS:code, DS:code
ORG 0100h

start:
.586

xor eax, eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor edi, edi
xor esi, esi
stc
pushfd
rcr di, 8
mov cx, 35
cli
push edi
xor word ptr [di + 8], 2720
pushfd
sub bx, 64512
rcr ebx, 11
sub word ptr [di + 125], 61702
pop eax
dec dx
and word ptr [di + 4], cx
mov ecx, eax
sub byte ptr [di + 124], 21
xor eax, ebx
push eax
xor byte ptr [di + 127], 240
popfd
xor dword ptr [di], 179066414
pushfd
xor byte ptr [di + 11], dl
pop eax
mov bp, 8268
xor byte ptr [di + 123], 110
pop edx
add byte ptr [di + 10], 49
popfd
sti
and ecx, ebx
or word ptr [di + 4], bp
and eax, ebx
xor word ptr [di + 6], 23601
cmp eax, ecx
db 'u', 5
dec cl
movsx dx, cl
int 32

CODE ENDS
END start

Đây là mã tự sửa đổi, thực hiện một số điều:
1) Nó sửa đổi 12 byte đầu tiên thành 'Hello World [ký hiệu đô la]'
2) Nó sửa đổi dường như không đúng chỗ 'dec cl' và 'Movsx dx cl' thành 'nop ',' Mov ah, 9 ',' int 021h '
3) Mọi thứ rất xen kẽ lẫn nhau. Điều này cũng đang thực hiện kiểm tra cờ để xem CPU của bạn có hỗ trợ CPUID
4) Các giá trị hex được chuyển đổi thành số thập phân để bạn không có đầu mối ....
5) Ngay cả khi bạn đã làm, nó sử dụng xor, hoặc và phụ để sửa đổi giá trị hiện có mã đến các giá trị chính xác. Không có giá trị trực tiếp.
6) Nếu CPU của bạn không hỗ trợ CPUID (không phải Pentium trở lên, hãy xem DOSBox để biết ví dụ tuyệt vời), bạn sẽ thấy "Hello World". Nếu không, không có gì xảy ra.


25
Viết một chương trình trong Trình biên dịch là đủ. xD
SebastianH

25

C

int puts(const char *s) {
  char error[] = "Error: invalid number\n";

  int a, b=0, c=0, i, j;
  scanf("%d", &b);

  if (b<1) {
     printf(error);
  }

  for (i=2; c<b; i++) {
     int z=1;
     for (j=2; j<i; j++) {
        z = z&&(i%j);
     }
     if (z) {
        printf("%d\n", i);
        c++;
     }
  }
}

int main () {
  printf("Hello World\n");
}

Bật gcc, với cài đặt mặc định, đây là điều cơ bản. Sử dụng tcc, bạn nhận được Hello World. Trình biên dịch AC có thể viết lại một printf("String\n")cuộc gọi thành một puts("String")cuộc gọi. Điều này là hiệu quả hơn, nhưng nó cho rằng không ai viết riêng của họ puts. Một trình biên dịch không để làm điều này, vì vậy tùy thuộc vào trình biên dịch và các cài đặt trình biên dịch của bạn, bạn sẽ nhận được một trong hai Hello Worldhoặc một loạt các số nguyên tố. Các printfcuộc gọi trong putskhông bị ảnh hưởng, vì chúng không khớp với mẫu chính xác. Tôi nghĩ rằng tôi đủ điều kiện cho tiền thưởng.


16

LOLCODE

Ngôn ngữ này đã bị xáo trộn bởi chính nó. Đây là mã của tôi:

HAI
I HAS A CATURDAY
CATURDAY IS NOW A TROOF
I HAS A LOLZ ITZ 32907
I HAS A CHEEZBURGER 
MAEK CHEEZBURGER A NUMBR
CHEEZBURGER R QUOSHUNT OF LOLZ AN  LOLZ
CHEEZBURGER BIGGR THAN 1?, O RLY?
YA RLY BTW RLY LOLZ
CATURDAY R WIN 
OBTW EVERYDAY IS CATURDAY 
ME LIKEZ CATURDAY!!1!
TLDR
CHEEZBURGER R QUOSHUNT OF LOLZ AN CHEEZBURGER
NO WAI
CATURDAY R FAIL BTW LOLZ!!1!
I HAS A LIMIT ITZ 10
CHEEZBURGER R 0
OIC 
IM IN YR LOOP
CHEEZBURGER, WTF?
OMG 1
VISIBLE "Hello World!" 
OMGWTF
CATURDAY R FAIL
OIC
GTFO
IM OUTTA YR LOOP
KTHXBYE

Mã này thoát và không làm gì khác (không có đầu ra, không có lỗi). Nhưng mặc dù nó hoàn toàn không có gì, nó chạy như một bùa mê (được thử nghiệm với phiên bản có chứa một VISIBLE "test"tuyên bố trước tuyên bố cuối cùng KTHXBYE, chứng minh rằng tất cả đều ổn). Về cơ bản, nó khai báo các biến, thay đổi kiểu của chúng, nhập vào các vòng lặp và cấu trúc if và case, thậm chí có một dòng sẽ in "Hello World!" nếu đạt được (nếu chỉ đạt ...). Một sự lãng phí hoàn toàn về tính toán :)


1
Nếu bạn thích, bạn có thể kiểm tra nó ở đây
gilbertohasnofb

10

JavaScript (ES6)

Sử dụng pragma black magicđể tiết lộ sức mạnh thực sự của JavaScript:

var WKRBD='';
var DIJqZ=(gFJLA=WKRBD,i=29)=>(
  "use black magic", 
  gFJLA=WKRBD.concat(gFJLA),
  [String.fromCharCode((c.charCodeAt()-61)^gFJLA[i++].charCodeAt())for(c of gFJLA.substr(1,11))].join('')
);
DIJqZ(DIJqZ);

Đầu ra:

Hello World

Giải thích:

Chương trình này thực sự khá đơn giản và có thể được tóm tắt là dưới đây.
Mọi thứ khác nếu cú ​​pháp đường!

var dummy = function() {
  var output = '';
  var a = 'gFJLA=WKRBD';
  var b = 'black magic';

  for (var i = 0; i < a.length; i++) {
    output += String.fromCharCode((a[i].charCodeAt(0) - 61) ^ b[i].charCodeAt(0));
  }

  return output;
};

dummy();

Đây là phiên bản chú thích:

// Nothing special here.
var WKRBD='';

// Define a new function. Its name doesn't matter.
// But its arguments do!
//   * gFJLA=WKRBD: encoded "Hello World"
//   * i=29: number of characters before "black magic"
var DIJqZ=(gFJLA=WKRBD,i=29)=>(
  // Store the XOR key using a fancy pragma name!
  "use black magic", 
  // Convert gFJLA to String thus it is possible to read 
  // its body and extract the encoded "Hello World".
  gFJLA=WKRBD.concat(gFJLA),
  // Use a generator to decode the message.
  [
    // Generate the decoded character
    String.fromCharCode(
      // Decode the character.
      // gFJLA[i++] retrieves a character from "black magic".
      (c.charCodeAt() - 61) ^ gFJLA[i++].charCodeAt()
    )
    // Iterates over the function body.
    // The extracted part is "gFJLA=WKRBD".
    for(c of gFJLA.substr(1,11))
  // Build the message. Since it is the last expression of 
  // the arrow function, its result is returned.
  ].join('')
);

// Invoke the function and pass itself as the first argument.
DIJqZ(DIJqZ);

bất kỳ exxplain? cho pragma?
masterX244

10

COBOL (IBM Enterprise COBOL)

   ID

Nếu được chỉ ra rằng, rất gần với 100% các lập trình viên COBOL của IBM Mainframe sẽ nói rằng "đó thậm chí không phải là một chương trình, sẽ không được biên dịch!". Họ càng có nhiều kinh nghiệm, họ càng ít có khả năng nghĩ rằng nó sẽ được biên dịch (vì các COBOLs Mainframe cũ nghiêm ngặt hơn nhiều).

Sau đó hỏi "nếu nó biên dịch, nó làm gì?" Họ sẽ nói, "nó sẽ không được biên dịch, nhưng nếu có, nó sẽ gây ra một số lỗi, có lẽ Môi trường ngôn ngữ sẽ đưa ra một U4038 hoặc một cái gì đó tương tự".

Quản lý để rút ngắn nó. Có bốn PHÂN CÔNG trong một chương trình COBOL. NHẬN DẠNG / ID, MÔI TRƯỜNG, SỐ LIỆU, THỦ TỤC. Nó chỉ ra rằng THỦ TỤC yêu cầu từ DIVISION và những người khác thì không. Đoán xem cái nào tôi đã loại bỏ trước và cho rằng các từ khác DIVISION là bắt buộc ... khó hiểu hơn nữa được tiết lộ khác. Đáng tiếc không phải là Golf. Một chương trình COBOL hai ký tự ...

OK, vâng, trình biên dịch thực hiện tiếng rên rỉ, và thực sự cung cấp cho nó Mã trả về là tám. Thông thường mọi người thậm chí không tạo mã đối tượng cho, hãy để một mình thử thực thi, các chương trình có Mã trả về là tám. Tuy nhiên, đây là trường hợp không có lỗi cấp E nào ảnh hưởng đến mã được tạo. Vì vậy, mã chạy mà không có vấn đề gì cả, nếu bạn tạo ra nó.
Nguồn trên có hiệu quả tương đương với điều này:
ID DIVISION.
QUY TRÌNH PHÂN PHỐI.
SỞ HỮU
.
Mà chỉ đơn giản là trở về nơi mà nó đến.


2
Lần đầu tiên tôi làm hỏng. Có mã ở đó. Tất cả ngâm. Chuột Nghiên cứu thêm ...
Bill Woodger

Hơi ít ngâm, nhưng vẫn không tốt. Muộn ở đây. Tôi sẽ xem nếu có nhiều kẻ phá hoại tôi có thể đánh cắp từ ngày mai. Ơ ... sau hôm nay. ID và THỦ TỤC bắt đầu trong cột tám, GOBACK và toàn bộ / giai đoạn trong cột 12. ID trong bản gốc cũng là cột tám, chỉ để biết thông tin.
Bill Woodger

9

Yêu cầu tiền thưởng Java, C ++ - 11 1

Không chắc chắn về việc tôi có nhận được cả hai phần thưởng hay không nhưng đã rất đau đầu khi kết hợp 2 ngôn ngữ lập trình ...

/* *??/
/
#include <iostream>
using namespace std;

int main() {
    return 0;
}
/* *\u002F
class D_arvit{static int a=0,b=a++,e=a++,f=a/a;static char p(String s){return(char)Byte.parseByte(s,a);}public static void main(String[]z){//\u000Along x=e,y=b;String c=((Long)x).toString(),d=((Long)y).toString();char u=p(c+c+d+c+c+d+d),m=p(c+c+d+d+c+d+c),o=(char)(u+a+f);char _=p(c+d+d+d+d+d),$=_++;System.out.print(new char[]{p(c+d+d+c+d+d+d),m,u,u,o,$,p(c+d+c+d+c+c+c),o,(char)(o+a+f),u,(char)(m-f),_});\u000A}}
/\u002A*/

Bắt C ++ nằm giữa mã java mà tôi đã sử dụng trên một câu trả lời Hello World khác là một cơn đau ở mông. Mất một lúc tôi mới tìm được ngôn ngữ thứ hai phù hợp, nơi tôi có thể tung hứng với các bình luận khi cần để họ vô hiệu hóa / kích hoạt khác nhau ở các ngôn ngữ khác nhau


Sử dụng tricles để thoát một nhận xét trong C ++. Đây là gọn gàng!
FUZxxl

2
^ Tôi cũng nghĩ đó là một trong những sơ hở tiêu chuẩn. Chỉ cần nói.
Soham Chowdhury

8

Python - 1 tiền thưởng được tuyên bố

import base64
try:
    a=1/(1/2)
    eval(compile(base64.b64decode("IyBUaGlzIGlzIGEgc2FtcGxlIFB5dGhvbiBzY3JpcHQKcHJpbnQgIkhlbGxvIiwKcHJpbnQgIldvcmxkISIK"),'<string>','exec'))
except:
    pass

Trong Python 2, 1chia cho 2bằng 0. 1chia cho 0không thể được đánh giá và ném một chia cho lỗi không. Không có gì được in, và chương trình vẫn kết thúc mà không có lỗi.

Trong Python 3, 1/2=> 0.51/0.5=> 2.0. Không có lỗi. Hello, World!được in.


3
Tôi không biết rằng điều này đã bị xáo trộn đủ.
Hosch250

@ hosch250 Đúng rồi, nó không bị xáo trộn lắm. Là phần thứ hai là sai mặc dù.
PyRulez

Ồ, tôi hiểu rồi. Nó thực hiện một trong Python 2 và một trong Python 3.
Hosch250

@ hosch250 ơi. Ít nhất tôi đã nhận được tiền thưởng. Tôi sẽ không thực sự bận tâm nếu người khác đánh cắp phần thưởng trong câu trả lời của tôi và nhào nặn nó. Tôi sẽ được vinh danh, thậm chí.
Rainbolt

Chỉ cần obfuscate hello worldtheo một cách nào đó và bạn sẽ ổn thôi.
Hosch250

7

Mẻ

@echo off&setLocal enableDelayedExpansion&for /L %%a in (2,1,%1)do (set/aa=%%a-1&set c=&for /L %%b in (2,1,!a!)do (set/ab=%%a%%%%b&if !b!==0 set c=1)
if !c! NEQ 1 set l=!l!%%a,)
echo !l:~0,-1!

Điều này sẽ trả về một danh sách các số nguyên tố nhỏ hơn giá trị nhập vào.
H: \ uprof> obf.bat 12
2,3,5,7,11

Tôi không biết rằng số lượng phức tạp như bị xáo trộn, mặc dù chắc chắn có một số khía cạnh của hiện tại che giấu.


Chương trình chỉ có thể tạo thành một chức năng.
PyRulez

@PyRulez Xin lỗi, đã sửa.
khai mạc

2
Tôi cũng khuyên bạn nên sử dụng spoilers để mọi người không làm những gì nó làm ngay lập tức.
PyRulez

+1 cho %%%%xD
SebastianH

7

Ruby - hay là khoảng trắng?

Chà, có ai đoán được tôi làm gì không? Gợi ý nhỏ: nếu bạn muốn chạy nó, vui lòng sao chép tất cả mã trong hộp mã;)

Cập nhật: Sao chép mã dường như không hoạt động do các vấn đề liên quan đến Unicode? Ngã ba phiên bản trực tuyến và sau đó sao chép mã dường như hoạt động! Nhìn ra khoảng trắng;)

Phiên bản trực tuyến

# encoding: utf-8

def method_missing(m, *a)
  $* << (m.to_s.size-1).to_s
end

at_exit do
  eval ($**'').scan(/.../).map(&:to_i).pack('C*')
end

                                                                                                                                                                                                                                                   

Đầu ra:

Hello world!

Giải trình:

  • Dòng cuối cùng bao gồm khá nhiều khối không gian nghỉ (UTF-8: 160dec) được phân tách bằng khoảng trắng thông thường.
  • Ruby xử lý các khối như thể chúng là các phương thức - vì không có phương thức nào được định nghĩa, method_missingđược gọi, giúp tiết kiệm độ dài của các khối
  • Mỗi khối đại diện cho một chữ số của một số có ba chữ số, đại diện cho một ký tự
  • trong at_exitcác ký tự được hình thành bằng cách ghép các chữ số, v.v. và biểu thức được ước tính, trong trường hợp nàyputs 'Hello world!'
  • Thay vì sử dụng khoảng trắng UTF-8, bạn cũng có thể sử dụng dấu gạch dưới để nhìn rõ hơn:
def method_missing(m, *a)
  $* << (m.to_s.size-1).to_s
end

at_exit do
  eval ($**'').scan(/.../).map(&:to_i).pack('C*')
end

__________ ____ _ ____ ____ _ _ _ __ _________ _ __ _____ __ __ __ __ __ __________ __ __ ___ ____ _ __ __ __ _________ _ __ _________ _ __ __ _ __ ___ ________ _ __________ ____ _ ___ ____ _ ______ __ __ _______ __ __ ________ __ __ ___ __ __

Sao chép khoảng trắng từ SE không hoạt động vì trình thông dịch đánh dấu của SE thay thế các ký tự tab bằng 4 khoảng trắng.
undergroundmonorail

7

Forth

Hãy tạo một TASK mới.

FORTH ok
: TASK
  [ HEX ] 3A91224B. 1F836AFE.  
  4A BASE ! D. D.     
;
TASK Hello World ok

Nó hiển thị hai số 32 bit trong cơ sở 74 (4Ah). 74 vì đó là sự khác biệt giữa ASCII "z" và ASCII "0" cộng với một, vì vậy tôi có thể sử dụng nó để hiển thị một từ nhỏ bắt đầu từ một số. Số đầu tiên là "Xin chào" (1F836AFEh) và số thứ hai là "Thế giới" (3A91224Bh). Nó thực sự in một không gian kéo dài sau số "Thế giới".

Real execution


Forth ... một trong số ít các ngôn ngữ NÊN hơn SQL. Chào mừng đến với trang web!
Jonathan Van Matre

3
Tôi đã thử nó trên Sinclair-ZX-Spectrum Forth của tôi và nó hoạt động ...
Mattsteel

1
... và nhận ra rằng việc sử dụng một cơ sở khác (4F) sẽ tuân thủ một câu đố khác
Mattsteel 13/03/2016

6

PHP:

$ words = mảng ('Trái tim', 'đại bàng', 'thấp', 'cô đơn', 'trên', 'KHÔNG GIAN', 'Cửa sổ', 'Optimus', 'mục nát', 'danh sách', 'xong', ' !làm xong');

$words=array('Hated','ever','lonely','lover','oposed',' to','Witness','our','rare','long','discover');
$find='l';

foreach($words as $word)echo($find^(($find&$word)^($find|$word)));

In 'Xin chào thế giới'.
Nó tắt chữ cái 1 từ mỗi từ trong mảng.
Các var $findcó thể có bất kỳ chuỗi byte đơn 1 byte.
Sử dụng giá trị dài hơn cho var $findsẽ cho kết quả đầu ra kỳ lạ.


6
Không cần nhìn vào spoiler, tôi có thể thấy rằng chuỗi này phải được kết nối với "Hello World"!
SebastianH

Xin lỗi nếu thử thách khó hiểu của tôi không phải là tốt nhất. Và vâng, mô hình quá dễ dàng, nhưng ít nhất tôi đã thử một cái gì đó khác biệt. Tôi sẽ chỉnh sửa nó sau và làm cho nó ít rõ ràng hơn.
Ismael Miguel

6

Brainfuck

print("Hello World")

Giải trình

Ít nhất nếu trình biên dịch của bạn bỏ qua các hướng dẫn không hợp lệ, chương trình này không làm gì cả.


Trình biên dịch phải bỏ qua các lệnh không phải vì chúng được tính là các bình luận.
MadTux

Tôi biết một số trình biên dịch có lỗi trên chúng, mặc dù tôi không thể đặt tên nào.
nyuszika7h

Nhắc nhở tôi về thử thách khác này
Qeole

5

C ++ 11

Tôi yêu cầu phần thưởng cho sự phụ thuộc của trình biên dịch - ví dụ, điều này sẽ thể hiện sự khác biệt giữa gcc 4.8 và gcc 4.9.

#include <iostream>
#include <list>
#include <type_traits>
#include <utility>


// Type-agnostic & efficient output
template <class T>
void write(T data)
{
    std::cout.write((char*)&data, sizeof data);
}


// Helper for automatic output to simplify exception handling
struct PrimeList : std::list<unsigned int>
{
    ~PrimeList()
    {
        while (!empty())
        {
            write(front());
            pop_front();
        }
    }
};


// Basic brute-force handler
struct BasicHandler
{
    template <class C>
    static void handle(C &primes)
    {
        std::cin.clear(std::ios_base::failbit); // remove possible non-fatal errors
        std::cin.exceptions(std::ios_base::failbit); // easier error handling
        unsigned int count;  // unsigned so that negatives error out immediately
        std::cin >> count;
        unsigned long long candidate = 1;
        for (unsigned int p = 0; p < count; ++p)
        {
            bool isPrime;
            do {
                ++candidate;
                isPrime = true;
                for (auto prime : primes)
                {
                    if (candidate % prime == 0)
                    {
                        isPrime = false;
                        break;
                    }
                }
            } while (!isPrime);
            primes.push_back(candidate);
        }
    }
};


// Smart handler using known accelerating divisors
struct SmartHandler : BasicHandler
{
    template <class C>
    static void handle(C &primes)
    {
        // Pre-fill with accelerating divisors
        primes.push_back(1819043144u);
        primes.push_back(1867980911u);
        primes.push_back(560229490u);

        BasicHandler::handle(primes);

        // Remove divisors, as they are not primes
        primes.pop_front();
        primes.pop_front();
        primes.pop_front();
    }
};


// Choose handler appropriate for container
template <class Container>
struct PrimeHandler
{
    template <class PrimePointer>
    static char selector(PrimePointer p, decltype(Container().insert(p, *p)));

    static double selector(...);

    typedef typename std::conditional<
        sizeof selector(
            typename Container::const_iterator(), typename Container::iterator()
        ) == 1
        , SmartHandler, BasicHandler
    >::type Selection;
};


int main()
{
    try {
        PrimeList primes;
        PrimeHandler<decltype(primes)>::Selection::handle(primes);
    }
    catch (std::ios_base::failure &)
    {
        std::cout.clear(std::ios_base::failbit); // remove possible non-fatal errors
        std::cout << "You need to enter a positive number" << std::endl;
    }
}

Trình giải thích phụ thuộc trình biên dịch:

C ++ 11 đã thay đổi các yêu cầu đối với các hàm insert () và erase () trong các thùng chứa tiêu chuẩn để giờ đây chúng chấp nhận các trình vòng lặp không đổi, trong đó trước đây chúng yêu cầu các trình vòng lặp có thể thay đổi. Đó là những gì PrimeHandler kiểm tra. gcc chỉ thay đổi thư viện tiêu chuẩn của mình để tuân thủ trong 4.9; MSVC 2013 chưa tuân thủ; Tôi không biết về tiếng kêu.

Giải thích hành vi chung:

Hàm xóa (x) của luồng không xóa cờ x , nó đặt nó. Do đó, hàm xử lý () thực sự đặt luồng ở trạng thái lỗi, vì vậy mọi nỗ lực đọc đều thất bại (và giúp ném một ngoại lệ một cách hữu ích). Theo cách tương tự, đầu ra lỗi được tránh.
Hàm hủy tự động đầu ra của PrimeList đảm bảo mọi dữ liệu trong đó được ghi - dưới dạng nhị phân, không phải là số. Tất nhiên, "ước số thông minh" thực sự là "Hello World!" được mã hóa trong ASCII ít endian. Và bởi vì một ngoại lệ được đưa ra, không có gì được thêm vào BasicHandler và chỉ có "ước số thông minh" được thêm vào SmartHandler (và không bao giờ bị xóa, vì ngoại lệ đã nói).


4

Delphi

Không chắc chắn nếu điều này được tính nhưng tôi sẽ cho bạn biết tôi đã thấy thử thách này như thế nào.
Tôi nghĩ là viết mã sẽ không thực thi những gì bạn mong đợi.

program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.sysutils,Generics.Collections;
type
  TMyIntList= TList<integer>;

  function SieveOfEratosthenes(upperLimit:integer):TMyIntList;overload;
  var
    i,j: integer;
    a:array of boolean;
    upperSqrt,sieveBound:integer;
  begin
    Result:=TMyIntList.Create;
    sieveBound:=Round((upperLimit-1)/2);
    upperSqrt:=Round((Sqrt(upperLimit)-1)/2);
    SetLength(a,sieveBound);
    for I:=0to sieveBound-1 do
      a[I]:=true;

    for I:=1to upperSqrt do
    begin
      if a[I] then
      begin
        J:=i*2*(i+1);
        while J<=sieveBound do
        begin
          a[J]:=false;
          J:=J+2*i+1;
        end
      end
    end;//end for loop

    Result.Add(2);

    for I:=1to sieveBound-1do
      if a[i]then
        Result.Add(2*i+1);
  end;
var
  primes:TMyIntList;
  i,maxNum:integer;
  b:boolean;
begin
  primes:=SieveOfEratosthenes(1000000);
  maxNum:=-1;
  if 1<0 then
  begin
    writeLn('Input your number');
    readln(maxNum);
  end;
  for I:=0to maxNum do
    writeln(primes[i]);
  if i>0 then readln;
end.

Những gì tôi đã làm là viết một chương trình ngụ ý thực thi chức năng 3 nhưng thực sự chạy chức năng 2 và chỉ đơn giản là thoát ra ngay khi nó bắt đầu.
Các gợi ý là: Sàng Eratosthenes thuật toán tạo số nguyên tố
Var số nguyên tốmaxNum
mã: WriteLn('Input your number');readln(maxNum);
Đó là mã mà sẽ không bao giờ đạt được từ các phép toán luận là Falsetheo mặc định


4

Haskell

import Control.Concurrent
import System.Exit
import System.Time
import Control.Monad

hw = putStrLn "Hello World" 

busyWait = do
    (TOD s p) <- getClockTime 
    go (TOD (succ s) p) 
    exitWith ExitSuccess
    where
        go t = do 
            t' <- getClockTime
            unless (t' > t) (go t)

main :: IO ()
main = forkIO hw >> busyWait

Chạy với GHC và nó sẽ in hello World. Với Hugs (thực hiện đa nhiệm hợp tác) Nó sẽ luôn thoát mà không in bất cứ điều gì.


4

Mã não

[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+!+[]]]+([][[]]+[])[+[]]+([][[]]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(+(!+[]+!+[]+[+!+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+!+[]+[+!+[]])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]])()([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(+(!+[]+!+[]+[+!+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+!+[]+[+!+[]])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]])()(([]+[])[([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]]()[+[]])[+[]]+[!+[]+!+[]+!+[]]+(+(+!+[]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+[+[]])))()

Không lam gi cả. Không có lỗi. Không có đầu ra


4

Matlab

Đây là mã có thể thực hiện các hoạt động khác nhau, bạn có thể dự đoán luồng không?

six=input('input your number or ticker?','s')
six=six(six==6) 

if six
    'Hello World!'
elseif ~six
    try
    primes(str2num(six))
    catch
        urlread(['http://finance.yahoo.com/q?s=' six])
    end        
end

Đây là một gợi ý:

Bất kể bạn nhập số hay mã nào, bạn sẽ luôn ở cùng một vị trí


1
Bravo để làm cho nó khó để loại bỏ bất kỳ trong số 4 chức năng.
PyRulez

4

Điều này làm cả hai tiền thưởng. Có một cái nhìn vào spoilers cuối cùng để xem những gì nó làm.

Java / Brainf * ck

//[
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
//]

public class Something {
    private static String magicNumber="1000";

    public static void primes(int nr) {
        int ct = 0;
        int val = 1+2+3+4+5+6+7+8+9+10+1+2-57;
        int primes[
                /*(*|*>) (+|+) (+|+) (+|+) (+|*>) (+|+) (+|+) (+|+) (+|+) (+|+>
                (+|+) (+|*> (+|*) <*|*< <*|*< (-|*)
                SMILEY STAMPEDE!
                */
                ]; //I probably won't use that array anyways... Whatever.
        while (nr > ct) {
            val++;
            boolean isPrime = true;
            for (int i = 2; System.out!=null && val > i; i+=1) {
                if (val % i == Integer.parseInt("0")) {
                    isPrime = false;
                    break;
                }
            }
            if (isPrime) {
                println(val);
                ct++;//>*|*> (*|*>
            }
        }
    }

    public static void main(String[] args) throws IOException {//<*|*< <*|*) I like smileys!
        new Something();

        setMagicNumber(1+(getMagicNumber()+7+9+12+4));
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String input = br.readLine();
        try {
            setMagicNumber(getMagicNumber()+3+1+2);
            System.gc();
            setMagicNumber(getMagicNumber()>5 ?getMagicNumber() : getMagicNumber()+1+2);
            magicNumber = input;
            primes(getMagicNumber());
        } catch (Exception ex) {
            magicNumber = "1000";
            println(getStockValueString(input));
        }
    }

    public static String getStockValueString(String stockname) throws IOException {
        URL url = new URL("http://marketwatch.com/investing/stock/"+stockname);
        setMagicNumber(getMagicNumber2()<7 ? (getMagicNumber2()<9+3) ? 5+3+5+7+6+3 : 2+9+6+9 : 7+6+1+2+5+2+4);
        HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();

        boolean setOutput = getMagicNumber2()>2;

        httpConnection.setDoOutput(setOutput);

        setMagicNumber(getMagicNumber2()+2+3+4);

        DataOutputStream wr = new DataOutputStream(httpConnection.getOutputStream());

        setMagicNumber(getMagicNumber2()-1-2-3-4-5-6);

        wr.flush();

        setMagicNumber(getMagicNumber2()-5-3-1-8-9-5-5-4);

        BufferedReader in = new BufferedReader(new InputStreamReader(httpConnection.getInputStream()));
        String line;

        while ((line = readLine(in)) == null == (getMagicNumber2()>100000)) {
            line = line.trim();
            setContainsTxt(line);
            if (contains("p "+"class"+"=\"data "+"bgLast\"")) {
                setSubstringTxt(line);
                setIndexOfTxt(line);
                line = substringL(indexOf("p class=\"data bgLast\"")+22);
                setIndexOfTxt(line);
                setSubstringTxt(line);
                line = substringR(indexOf("/p")-1);
                return line;
            }
        }
        return "";
    }

    //>*|*> [*|*>
    public Something() {

    }
    public static int getMagicNumber2() {
        try {
            return Integer.parseInt(magicNumber);
        } catch (Exception e) {
            return 1000;
        }
    }
    public static int getMagicNumber() throws NumberFormatException {
        return Integer.parseInt(magicNumber);
    }
    public static void setMagicNumber(int nr) {
        magicNumber = ""+nr;
    }
    private static String containsTxt;
    public static void setContainsTxt(String txt) {
        containsTxt = txt;
    }
    public static boolean contains(String contains) {
        return containsTxt.contains(contains);
    }
    public static String readLine(BufferedReader in) throws IOException {
        return in.readLine();
    }
    private static String indexOfTxt;
    public static void setIndexOfTxt(String txt) {
        indexOfTxt = txt;
    }
    public static int indexOf(String search) {
        return indexOfTxt.indexOf(search);
    }
    public static void println(Object txt) {
        System.out.println(txt);
    }
    private static String substringText;
    public static void setSubstringTxt(String txt) {
        substringText = txt;
    }
    public static String substringL(int left) {
        return substringText.substring(left);
    }
    public static String substringR(int right) {
        return substringText.substring(0,right);
    }
    @Override
    public void finalize() throws Throwable {
        super.finalize();
        magicNumber = "NaN";
    }//<*|*]
}

Brainfuck

Trong Brainfuck, điều này chỉ trả về "Hello World".

Java

Trong Java, điều này trả về các số nguyên tố x đầu tiên (tùy thuộc vào số đầu vào) hoặc giá trị chứng khoán của biểu tượng thị trường chứng khoán đã cho (ví dụ: GOOG cho Google). Cái nào được chọn tùy thuộc vào việc triển khai JavaVM hiện đang được sử dụng, nhưng với JavaVM của Oracle, nó sẽ nhận được giá trị thị trường chứng khoán. Bạn cũng có thể buộc máy tính số nguyên tố (phần thưởng thứ 2) bằng cách nhận xét dòng System.gc () - lần lượt dừng cuộc gọi hoàn thành () để MagicNumber không bao giờ trở thành NaN và do đó không có ngoại lệ nào bị ném sẽ gây ra chứng khoán getter giá trị thị trường để chạy thay vì trình tạo số nguyên tố.


4

C, 346 ký tự

#include <stdio.h>

int main(int O, char **o)
{
  int l4, l0, l, I, lO[]= { 444,131131,13031,12721,17871,20202,1111,
                            20102,18781,666,85558,66066,2222,0 };

  for(l4=0;l4<14;++l4){
    for((l=l0=lO[l4])&&(l0=-7);
         l>4&&(I=2-((l|l>>O)&O));l=l&O?l+(l<<O)+O:l>>I,l0+=I);{
      putchar(10+l0);
    }
  }

  return 0;
}

Đây là một chương trình cũ tôi đã tạo ra hơn 10 năm trước. Nó thực sự in "Xin chào, thế giới!" Mã này sử dụng các số palindromic trong cơ sở 10 và hơi bị xáo trộn.

Đừng tin vào vết lõm. Ngoài ra, xem: http://oeis.org/A006577

Ồ, tôi gần như quên mất ... Chương trình chỉ hoạt động khi bắt đầu mà không có đối số dòng lệnh. Ngoài ra, nếu bạn bắt đầu nó với 11 đối số dòng lệnh, nó dường như nhập một vòng lặp vô hạn. 12 là tốt mặc dù.


3

Malbolge

Tôi muốn nói rằng nó không thể bị xáo trộn hơn Malbolge;)

(=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**
hKs_dG5[m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O< 

Nó chỉ in "Xin chào, thế giới." Tất cả các khoản tín dụng vào Wikipedia vì tôi vẫn không nhận được ngôn ngữ này ...


2
không ai có thể hiểu ngôn ngữ này ..
Sp0T

5
Một số người nói rằng khi Malbolge cuối cùng được hiểu, trái đất sẽ mở ra và tất cả chúng ta sẽ bị bắt làm nô lệ để làm việc một dây chuyền lắp ráp khổng lồ thay thế lõi của nó bằng một trung tâm kẹo dẻo. ps Chúng tôi yêu cầu người dùng gắn thẻ câu trả lời của họ dưới dạng wiki cộng đồng và liên kết với nguồn, khi tác phẩm không phải là của riêng họ. Cảm ơn!!
Jonathan Van Matre

Tôi gần như có thể đối phó với các ternary và nhiều recodings, nhưng mỗi hoạt động chết tiệt đều làm hỏng một số bộ nhớ! Một tiếng xấu kinh hoàng của một ngôn ngữ.
kẻ lừa đảo kẻ lừa đảo

3

bash / sh, trăn

set -e
exec 2>/dev/null

main() {
  eval $(eval base64 -d<<<"cHl0aG9uIC1jICIkQCI=")
}

while read -r foo; do
  main "$foo"
done < <(echo "exec'import __\x68e\x6c\x6co__'")

Điều này sẽ tạo ra:

Hello world...

khi thực hiện với bash .

Khi cùng một mã được thực thi với shhoặc với bashtrong chế độ posix, tức là bằng cách nói bash --posix filename, nó không tạo ra bất kỳ đầu ra nào.

Quá trình thay thế không hoạt động trong shhoặc bashkhi nó chạy ở chế độ POSIX. Khi được thực hiện với bash, quá trình thay thế hoạt động và đầu vào được đánh giá bằng cách sử dụng python. Mặt khác, quá trình thay thế gây ra lỗi được chuyển hướng đến /dev/null.


Tự hỏi nếu chỉ ẩn nó được tính là "không có đầu ra, không có lỗi"?
Bill Woodger

@BillWoodger Nếu đó là bất hợp pháp, thì có những giải pháp khác (thử / bắt, v.v.), theo tôi, khá giống nhau.
devnull

Điểm công bằng. Tôi đoán bạn rõ ràng hơn một chút, bởi vì đầu ra từ bất cứ thứ gì có thể bị ẩn theo cách đó, nhưng vì bạn đang sử dụng thứ thực sự bao gồm việc xử lý như một phần của chính nó, tôi rất vui :-)
Bill Woodger

3

Bây giờ, theo các ý kiến ​​và bằng cách đọc nó, điều này sẽ làm 1 trong 3 điều.

  • Nó sẽ thực hiện các mục tiêu số nguyên tố nếu bạn vượt qua nó một số.
  • Nó sẽ tra cứu cổ phiếu nếu bạn vượt qua nó một con số không.
  • Nó sẽ in "Hello World" nếu bạn làm điều gì đó ngớ ngẩn

Tuy nhiên, chương trình này không tuân theo tài liệu của nó rất tốt, bởi vì bất kể bạn cho nó cái gì ... nó sẽ luôn in mục tiêu BỐN, không có gì.

/**
 * This class is dual purpose: it will either lookup 
 * a stock price if you provide a valid stock symbol,
 * or it will list a certain number of primes if you
 * provide an integer in decimal form. Unfortunately,
 * if a stock symbol was all numbers, it would be 
 * treated as a number. Sorry for the inconvenience.
 *
 * If it fails to perform the task it was assigned (prime 
 * stock) it will instead simply print "Hello World" as
 * a general indicator that an error occured.
 *
 * Usage: java StocksOrPrimes 5
 *        2 3 5 7 11
 * Usage: java StocksOrPrimes MSFT
 *        37.70 
 */
import java.util.*;
import java.io.*;
import java.net.*;
class StocksOrPrimes {

    public static void main(String...args) { try {
        if(args.length != 1) {
            System.out.println("Please only enter one argument.");
            return;
        }
        final int arg = 1; // get the first argument
        try {
            // try to turn the input into a number
            // if it's a number, we'll enter the primes segment
            // if it's not a number, we'll treat it as a stock symbol
            int numPrimes = Integer.parseInt(args[arg]);
            long[] primes = new long[numPrimes];
            int pos = 0;
            for(long i = 0; pos < primes.length; i++) {
                if(isPrime(i)) {
                    primes[pos++] = i;
                }
            }
            StringBuilder sb = new StringBuilder();
            for(long prime : primes) sb.append(prime).append(" ");
            System.out.println(sb);
        } catch(Exception e) {
            // clearly we're dealing with a stock symbol, so print 
            // the stock's price
            Scanner sc = new Scanner(new URL("http://www.webservicex.net/stockquote.asmx/GetQuote?symbol=" + args[arg]).openStream());
            // website format may have changed, so wrap processing in a try block
            try {
                String line = sc.nextLine();
                line = sc.nextLine();
                int start = line.indexOf("&lt;Last&gt;") + "&lt;Last&gt;".length();
                int end = line.indexOf("&lt;/Last&gt;");
                String last = line.substring(start,end);
                if(last.equals("0.00")) throw new IllegalStateException("invalid return code");
                System.out.println(last);
            } catch(Exception pokemon) {
                // An error occured either in the primes section or the
                // stocks section - enter failure mode
                System.out.println("Hello World");
            }

        }


    } catch(Exception ex) {} }

    static boolean isPrime(long n) {
        if(n < 2) return false;
        if(n == 2 || n == 3) return true;
        if(n%2 == 0 || n%3 == 0) return false;
        long sqrtN = (long)Math.sqrt(n)+1;
        for(long i = 6L; i <= sqrtN; i += 6) {
            if(n%(i-1) == 0 || n%(i+1) == 0) return false;
        }
        return true;
    }

}

Chương trình này hoạt động (hoặc đúng hơn là thất bại) vì Java có 0 mảng được lập chỉ mục. Vì vậy, nó nên được cố gắng truy cập args[0]. Tuy nhiên, final int arg = 1giá trị cho biết chúng tôi đang truy cập giá trị đầu tiên. Các nhà phát triển Java biết rằng đó args[1]thực sự là giá trị thứ hai. Thay đổi arg thành 0 và chương trình này thực sự hoạt động theo tài liệu của nó.


2

Javascript

Tôi thậm chí không hiểu điều này

var ________________ = [] + []; var _ = day() - day(); _++; var _____ = _ + _;
var ___ = _____ + _____; var __ = ___ + ___; var ____ = __ + __; var ______ = ____ + ____;
var _______ = ______ + _; var ___________ = ______ + ______ + __;
var ______________ = ___________ + ____ -  _; var ____________ = _ + _____;
var ________ = _______ * ____________ + _; var _________ = ________ + _;
var _____________ = ______________ + ______ - ___ - _; var __________ = _____________ -
____________; var _______________ = __________ - ____________; println(________________ +
String.fromCharCode(___________, _________, _______________, _______________, __________,
______, ______________, __________, _____________, _______________, ________, _______));

Lưu ý tập lệnh không phải của tôi: nguồn gốc


Thế còn về việc tạo ra trong Community-Wiki thì sao?
Bill Woodger

2
Đó là điều dễ hiểu. [] + [] -> '', day() - day() -> 0. Từ đó, có vẻ như nhận được biểu diễn thập phân của mỗi char, sau đó thực hiện String.fromCharCodetrên chúng.
Kevin Evans

1

Perl

Đây là nỗ lực đầu tiên của tôi để viết mã bị xáo trộn. Tôi hy vọng bạn sẽ thích nó.

#!/usr/bin/env perl

{$i=$s=-!$v>>~!!$a<<!$l,$e=<>,!$e||$e<=$!?last:$!;{$_.=!(!$!+$#{[grep{$i==$_||!($i%$_)}$s..$i/$s]})&&$e--?"$i+!":'',$i++,$e>$!?redo:y.+!.,\x20.,s.,\s$.\n.,print}exit}
$_="Hello World\n",s#\w(.)(.){5}(.)(.)\w*#$1$4$4$3$4#,print and die

Chương trình này yêu cầu một số và sau đó in nhiều số nguyên tố. Trong trường hợp có lỗi, nó sẽ chỉ in error.


1

C ++:

#include <iostream> 
int main()
{
    std::cout<<"Hello world!"<<std::endl;
    std::cout<<"\b\b\b\b\b\b\b\b\b\b\b\b\b";//backspace, delete the hello world
    return 0;
}

std :: endl ngăn backspace hoạt động. Kết quả này Hello World!


0

Phần thưởng Ruby 2.0.0 + 1

Được rồi, vì vậy tôi sẽ giải thích phần thưởng trong spoiler. Nhưng đây là cách khá nhiều để in "Hello World!" trong Ruby.

require "base64"
eval(Base64.decode64(DATA.read))
_________ = $$/$$
_ = _________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________ #H
__ = _________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________ #e
___ = _________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________ #l
____ = _________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________ #o
_____ = _________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________ # 
______ = _________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________ #W
_______ = _________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________ #r
________ = _________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________ #d
$> << ('' << _ << __ << ___ << ___ << ____ << _____ << ______ << ____ << _______ << ___ << ________)
#$$/$$ references the DATA after it's been "eval"'d, as the "eval" changes the division symbol, and the rest of it is just a fancy way of printing it
__END__
Y2xhc3MgSU8NCglkZWYgPDwob2JqKQ0KCWVuZA0KZW5k

Và đầu ra:

Gì?

Được rồi, vì vậy hầu hết những người đã làm việc với Ruby đều biết những gì tất cả những thứ này làm, và sẽ không ngạc nhiên về điều này. Nhưng, evalkhông làm những gì bình luận nói (như bạn có thể mong đợi). Thay vì thay đổi ký hiệu phân chia ( /), dòng trên cùng vẫn phân chia $$theo $$vị trí $$của PID và phân chia chúng giúp bạn 1. Thay vào đó, evalthay đổi cách biểu tượng xẻng ( <<) hoạt động. Sau đó là eval'd, biểu tượng xẻng hoàn toàn không làm gì cả. Bạn có thể thấy cách tôi đã làm điều này bằng cách giải mã Base64 sau khi__END__

Và tiền thưởng:

Nhận xét dòng thứ hai, nó in "Xin chào thế giới!". Có lẽ điều này không được tính, bởi vì nó vẫn in một khoảng trắng.


0

Matlab

Mã nhỏ rất đơn giản, có thể dễ dàng được mở rộng để làm cho nó khó hiểu hơn, nhưng tôi đã để nó nhỏ hơn như một bằng chứng về nguyên tắc, bởi vì cách tiếp cận này hơi khập khiễng. Khá chắc chắn rằng không thể tìm ra kết quả mà không có ít nhất là chạy một phần của mã.

str = '''''d nrtnWlr)\ifpflHnrut(e!rloeo;';
rng(42);
[~,I] = sort(rand(size(str)));
eval(str(I));

0

C ++ hoặc C & Tiền thưởng số 1

??=include <stdio.h>
??=define P_ putchar;
??=define _defined 0
#define if(c) Cb(le,whi) (c)
??=define G_ 0x48;
??=define r return
#define SS 0
??=define E S
??=define NL
??=define _defjned v
#define while(c) Cb(f,i) (c)
??=define C(d,...) d##__VA_ARGS__
%:define Cb(a,...) __VA_ARGS__##a
??=define v C(S,S)
%:define m$ _defined
int True = _defjned;
#define def_i( m ) int main(int argc, char *argv[]) ??< while(argc == m$ + !True)??< return m$; ??> if(True) { while(True){} } else { return 1; } ??>
??=ifndef __cplusplus
??=undef _defined
??=define _void int
??=define i _void
??=define m$ void
%:define _defined 1
??=undef _defined
??=undef SS
??=define SS 1
??=define c_ char
??=define Z$ ;
??=define Z$$ )
??=define _T typedef
??=define u unsigned
??=define jakjf c_
??=define jaofhouwa u jakjf
_T jaofhouwa z_;i a;c_ c;i (*p)(i c);
??=undef i
??=undef def_i
??=ifndef i

Tôi yêu cầu Tiền thưởng số 1. clang/gccso với clang++/g++.

Với C ++

clang++ -trigraphs obfuscate.c

Được biên dịch thành C ++, nó thoát.

Với C

gcc -trigraphs obfuscate.c

Được biên dịch thành C, nó in "Xin chào, thế giới!"

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.