짜여진 소스 코드 찾기 (고무)


13

이것은 강도의 실입니다. 경찰의 실은 여기 로 이동 하십시오 .

소개

이 경찰 / 로버 도전에, 경찰은 출력 생산 프로그램을 작성하고 함께 짜다 것입니다. 경찰의 프로그램을 골라 원하는 결과물을 만들어내는 것이 강도의 일이다.

강도 규칙

강도는 사람들이 경찰 스레드에 제출할 때 게시하는 다른 프로그램을 찾으려고 시도합니다 (위 링크 됨). 강도가 경찰의 코드를 해결하는 경우 분리 된 프로그램을 게시하고 여기의 답변에 출력과 일치시키고 경찰의 답변에서 코드를 해독했다고 게시해야합니다.

채점

크랙 제출을 채점 할 때 함께 추가되는 두 가지 구성 요소가 있습니다.

  • 경찰의 답변에 사용되는 다른 프로그램의 수의 2
  • 뒤섞임의 바이트 수 라운드 다운 이의 가장 가까운 전원.

예를 들어, 강도 TIliGoEnRTIGER및 로 균열 lion되면 강도는 2 ^ 2 + 8 = 12 점을받습니다.

강도 도전의 승자는 사람들이 참여하기에 충분한 시간이 지나면 가장 많은 점수를 얻은 사람이됩니다.


(스 니펫에 도움을 원하는 사람은 누구입니까?)

답변:


6

비시 , 12 포인트

'o'2\I/NO

온라인으로 사용해보십시오!

a5F\aZ

온라인으로 사용해보십시오!

그만큼 NaN에서이 NaNo죽은 공짜이었다.

밀어 넣는 확실한 방법 NaN0 을 자체 로 나누고 2\I입력 길이 를 밀어 넣는 것입니다 ( 0 )를 두 번/ 나누기를 수행 N하고 플로트를 인쇄하는 것입니다.

우리는 인쇄 남아 o , 그리고 'o'그 리터럴 문자열로 O인쇄합니다.

남은 문자는 다른 프로그램에 속해야합니다. 실제로, 계승 5 ( 120 ) 인 a줄 바꿈을 푸시하여 120 줄 바꿈으로 바꾸고 전체 스택을 인쇄합니다.5F\aZ


너무 아름다워요 잘 했어. +1
Addison Crump

4

비트 시프트 , 2 ^ 2 + 64 = 68 포인트

경찰 실

0101100110110101001001010110111011101110111011101101010

인쇄물 ! ?

1011101110111011101110110101000000000110010101101101010

인쇄물 ? !

암호

0101100110110101001001010110111011101110111011101101010 # '! ?'
01011001101101010 # '! '
0101              # XOR 0 with 128 
                  # Making current value 128 (1000 0000)
    10            # Bitshift 1 to left making 10000000 -> 01000000
      01          # Bitshift 1 to left making 01000000 -> 00100000  
        101       # XOR 00100000 with 1 making it 00100001
           101010 # print 00100000 which is binary for !
010010101         #
010               # XOR 00100001 with 1 making it 00100000
   010101         # print 00100000 which is binary for <space>
10111011101110111011101101010  # '?'
101               # XOR 00100000 with 1
   1              # Bitshift 1 to left making 00100001 -> 01000010
                      # This gets repeated till 01000010 becomes 0111111
101010                # print 0111111 which is binary for ?

나중에 설명을 추가하겠습니다 (개별 부품을 인쇄하는 부품에 코드를 분할)


누군가 계산을 이해하지 못하는 점수를 계산하는 방법을 설명 할 수 있습니까
Dennis_J

1
잘 했어. 점수는로 계산됩니다 2^programs + 256/bytes=points. 이 경우에는 2^2 + 256/128=6 points입니다. 바이트 수 프로그램이 적을수록 강도에 대한 보너스가 높아지기 때문에 이것이 편집 될 것이라고 생각합니다. 어떤 느낌
Bassdrop Cumberwubwubwub

1
@Bas 어제 기준으로 변경되었습니다.
Arcturus

4

PHP , 68 포인트

$c=tR;$h=s;$c=$h.$c._.$h.plit;echo$c($h);

산출: Array

echo quotemeta('^/]'.co.'[$');

산출: \^/\]co\[\$


이 제출물 은 PHP의 기능이 적다는 몇 가지 덜 알려진 기능에 의존하기 때문에 좋아합니다 . PHP는 함수 참조를 변수에 할당 할 수 있습니다. 예를 들면 다음과 같습니다.

$f = function($a, $b) { return pow($a, $b); };
echo $f(2, 4);

정확히 당신이 기대하는 것을 할 것입니다. 그렇듯이

$f = pow;
echo $f(2, 4);

... 네가 생각하지 않는 것을 제외하고. $f = pow함수 참조를 할당하지 않고 $f(너무 의미가 있습니까?) 문자열이 아닙니다 'pow'. 의미는 정의 된 함수의 이름을 나타내는 경우 모든 문자열을 함수 호출로 사용할 수 있다는 것입니다. 잘못된 코드가 발생하기를 기다리고 있습니다. 왜 당신 이 이것을 허용 하고 싶은지 모르겠습니다 .

PHP의 또 다른 오해는 함수 이름과 키워드는 대소 문자를 구분하지 않는다는 것입니다. 농담했으면 좋겠다. 그래서 echo pow(2, 4),ECHO POW(2, 4) 그리고 EcHo PoW(2,4)모든 기능적으로 동일합니다.

쇼케이스의 마지막 오해는 인쇄와 같이 배열을 문자열로 입력 할 때마다 결과가 항상 놀랍도록 유용한 문자열이라는 것입니다 Array 입니다. 누군가 실제로 의도적으로이 작업을 수행했다는 사실을 생각해보십시오.

따라서 첫 번째 프로그램 인 @insertusernamehere는 문자열을 빌드하며 stR_split,이 문자열은 함수 참조 (위의 이유로 실제로 작동 함)로 사용되며 결과 배열이 출력됩니다.


1
훌륭한 설명이 담긴 멋진 작품. :)
insertusernamehere

3

루비 , 68 포인트

먼저:

p %w(b n n s)*?a%?}

둘째:

w,=?(.ord,40,?);"jivivi{2".bytes{|b|putc b-w}

와 함께 끝까지 운동을하면서 자연스럽게 이어졌습니다 putc.


1
혹시, 나는 하나 더 이상한 구문 트릭으로 약간 다른 의도 된 솔루션을 가지고 있었지만, 다른 도전을 위해 백 포켓에 그것을 유지할 것이라고 생각합니다. 잘 했어!
histocrat

3

자바 스크립트, 68 포인트

경찰 실

첫 번째 프로그램

산출: ffttff

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

두 번째 프로그램

산출: 1010

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

짜다

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

2

자바, 132 포인트

경찰 실

첫 번째 프로그램 :

interface c{static void main(String[]g){System.out.println("Hell"\u002bg.length);}}

두 번째 프로그램 :

class i{public static void main(String[]n){System.out.print("Bye!\n");}}

첫 번째 프로그램 출력 Hell0및 두 번째 프로그램 출력Bye!


아, 한 시간이 너무 늦었 어 잘 했어.
Arcturus

2

자바 스크립트 , 132 포인트

프로그램 1

var x;{;alert((f=>(f.reverse(f+~~f,Math.pow(2,Math.E))))(new Array(99).fill(0).map((x,i,f)=>i/3)).join("").replace(/../g,""))}

프로그램 2

try{"function";Object.keys(f)}catch(e){f=s=>!s?f(1):"";alert(f(f(f(0/0) +f(7/5)))+f(f)+`${f}`.split``.map(e=>e.charCodeAt()*23))}

아휴. 이것은 끔찍했다.

많은 디버깅 후 두 번째 프로그램 (일부)을 호출 한 후 다시 실행되지 않는다는 것을 알았습니다. 전역 변수 f가 여전히 할당 되었기 때문 입니다. 의이 있기 때문에 f할당되는의 시도 / 캐치에 실패하지 않았다 Object.keys(f). 이것이 비열한 속임수인지 의도하지 않은 것인지 모르겠지만 두통을 일으켰습니다.

또한 첫 번째 프로그램의 출력은 플랫폼마다 다릅니다.
/../g문자 .를 의미 하는 정규 표현식으로 인해 내 컴퓨터의 모든 문자를 제거합니다 . /\../g그러나 작품으로 탈출하면 누군가가 이것에 더 많은 빛을 비출 수 있기를 바랍니다. 또한 내 출력은 반올림 오류가 발생하기 쉽습니다. 일부 글로벌 자바 스크립트 변수가이를 변경할 수 있습니까?

산출

32666666666666643233333333333336323166666666666668313333333333333231306666666666666830333333333333323029666666666666682933333333333332292866666666666668283333333333333228276666666666666827333333333333322726666666666666682633333333333332262566666666666668253333333333333225246666666666666824333333333333322423666666666666682333333333333332232266666666666668223333333333333222216666666666666821333333333333322120666666666666682033333333333332201966666666666668193333333333333219186666666666666818333333333333321817666666666666681733333333333332171666666666666668163333333333333216156666666666666615333333333333341514666666666666661433333333333334141366666666666666133333333333333413126666666666666612333333333333341211666666666666661133333333333334111066666666666666103333333333333410966666666666666933333333333334986666666666666683333333333333487666666666666677333333333333337666666666666667633333333333333656666666666666753333333333333354666666666666674333333333333334366666666666666533333333333333353266666666666666523333333333333352166666666666666713333333333333331066666666666666603333333333333330

이것은 크롬 46 (내 유일한 브라우저), Windows 7에서 테스트되었습니다.

다른 결과에도 불구하고 이것이 여전히 유효한 제출이기를 바랍니다.


거기에 슬래시가 있었는데 어떻게 빠졌는지 모르겠습니다. 그래도 잘 했어! 맞습니다. 모바일이 아닌 경우 제출물을 업데이트합니다.)
Conor O'Brien

2

자바 스크립트 (ES6) , 68 포인트

프로그램 1

alert((c=>c.replace(/[a-z]/gi,a=>String.fromCharCode(("Z">=a?90:122)>=(a=a.charCodeAt(0)+13)?a:a-26)))("fvzcyr"))

프로그램 2

alert((b=>b.replace(/[a-zA-Z]/g,s=>String.fromCharCode(s.charCodeAt(0)+(s.toLowerCase()<'n'?13:-13))))("gbnfg"))

짜여진 프로그램

 alaelretrt((((cb=>c=>b.replace(/.replace[a-(/[azA-Z]-z]/gi/g,a,s=>String=>String.fromCharCode(s.fromCharCode(("Z">=a.charCodeAt(0)?90:122)>=(a=a.charCodeAt(0+(s.toLowerCase())+13)?a<'n'?13:-13:a-26)))))))((""gfvbznfcyrg""))))
 al e r t  ( ( c =>c             .replace   (/[a     -z]/gi  ,a  =>String                       .fromCharCode(("Z">=a              ?90:122)>=(a=a.charCodeAt(0                 )+13)?a           :a-26)))    ( "  fv z  cyr " ))
   a l e rt ( ( b   =>b.replace(/        [a-    zA-Z]      /g  ,s        =>String.fromCharCode(s                     .charCodeAt(0)                           +(s.toLowerCase()       <'n'?13:-13        )))) ( "g  b nf   g "  ))

경찰이 키워드를 찢어 버린 것은 훨씬 어려웠을 것입니다. ;)


나는 그것을 수동으로 끼워 넣고 게으르지 만 잘했습니다. 나는 몰래 노력했다. 오 잘 실제로 내가 엮지 않은 원래 프로그램을 잃어 버렸기 때문에 이것 하나를 크랙 해 주셔서 감사합니다.
일반 사용자


1

파이썬 2 , 320 포인트

print "This"
print "hello"
print "well"
print "no"
print "alas"
print "but"
print "oh"
print "done"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.