ফল আউট টার্মিনাল হ্যাকিং


13

এখানে কেউ ডাই-হার্ড বেথেসদা ভক্ত? আপনি কি Obsidian বিনোদন পছন্দ? ঠিক আছে, আপনি যদি নীচের ছবির তুলনায় সেই জিনিসগুলির মধ্যে থাকেন তবে আপনার তুলনামূলকভাবে পরিচিত হওয়া উচিত।

ফলআউট টার্মিনাল

আমি বরং একটি অনন্য এএসসিআইআই-আর্ট চ্যালেঞ্জ প্রস্তুত করার স্বাধীনতা নিয়েছি, তাই আমি আপনাকে কী করতে চাই তা সম্পর্কে এখানে প্রথম সূত্রটি দেওয়া হয়েছে:

  _____________________________________________________
 /                                                     \ 
|     _____________________________________________     |
|    |                                             |    |
|    | Welcome to ROBCO Industries (TM) Termlink   |    |
|    | Password Required                           |    |
|    | Attempts Remaining:                         |    |
|    |                                             |    |
|    | 0x01                 | 0x0D                 |    |
|    | 0x02                 | 0x0E                 |    |
|    | 0x03                 | 0x0F                 |    |
|    | 0x04                 | 0x10                 |    |
|    | 0x05                 | 0x11                 |    |
|    | 0x06                 | 0x12                 |    |
|    | 0x07                 | 0x13                 |    |
|    | 0x08                 | 0x14                 |    |
|    | 0x09                 | 0x15                 |    |
|    | 0x0A                 | 0x16                 |    |
|    | 0x0B                 | 0x17                 |    |
|    | 0x0C                 | 0x18                 |    |
|    |_____________________________________________|    |
|                                                       |
\_______________________________________________________/ 
       \_______________________________________/        

খাঁটি ASCII এ রবকো ফলআউট টার্মিনাল ডিজাইনের জন্য এটি একটি খুব বেসিক (ফাঁকা) টেমপ্লেট, আপনার কাজটি হ'ল:

  • প্রথমে এই টেম্পলেটটি তৈরি করুন।
  • তারপরে, স্ট্রিংগুলির একটি তালিকা lএবং 0 <= n <= 4এটি পূরণ করার জন্য একটি নম্বর দেওয়া!

ফলআউট হ্যাকিং টার্মিনালের দুটি গতিশীল অংশ হ'ল:

চেষ্টা সংখ্যা

  • আপনার অবশিষ্ট প্রচেষ্টাগুলির সংখ্যা (স্থান সীমিত বাক্সগুলি দ্বারা নির্দেশিত)।
    • এই চ্যালেঞ্জের উদ্দেশ্যে আপনি এর Xপরিবর্তে ব্যবহার করবেন

পাসওয়ার্ড

  • দ্বারা সংজ্ঞায়িত পাসওয়ার্ডগুলি lএলোমেলোভাবে মুদ্রণযোগ্য ASCII চিহ্নগুলির সাথে ছেদ করা হয়।
  • পাসওয়ার্ডগুলি, উদাহরণ হিসাবে আপনি বলতে পারেন, একাধিক সারি ( NAMES) সজ্জিত করতে পারে ।
  • টার্মিনাল স্ক্রিনের সমস্ত পাসওয়ার্ডের যে কোনও জায়গায় থাকার সমান সুযোগ থাকা উচিত।
  • সমস্ত পাসওয়ার্ড সমান দৈর্ঘ্যের হতে পারে বলে আশা করা যায়, যদিও এটি কোনও ব্যাপার নয়।
  • পৃথক পাসওয়ার্ডে ব্যবহারযোগ্য চিহ্ন তালিকা দেওয়া হল: !"#$%&'()*+/:;<=>?@[\]^_{|}
  • সমস্ত পাসওয়ার্ড lঅবশ্যই সমান দৈর্ঘ্যের হতে হবে।
  • পাসওয়ার্ডগুলি অবশ্যই দুটি কলেজের মধ্যে আবৃত করার সম্ভাবনা থাকতে হবে।
    • এটি সারিগুলির জন্যও যায় তবে কেবলমাত্র একটি উচ্চতর বাইট ঠিকানায় (0x18-> 0x01 অবৈধ)।
  • উভয় পাশের পাসওয়ার্ডগুলির প্রদর্শনের স্থানটি 15 প্রশস্ত (উভয় পাশের স্থান সহ)।
    • আপনি ধরে নিতে পারেন যে কোনও শব্দই এর lচেয়ে দীর্ঘ হবে না।
  • পাসওয়ার্ড কেবল বর্ণমালার অর্থ, কেবলমাত্র অক্ষর।

উদাহরণ:

l = ["SMART","ENACT","SWORE","PITYS","SMELL","CARTS","RACES"], n = 4

  _____________________________________________________
 /                                                     \ 
|     _____________________________________________     |
|    |                                             |    |
|    | Welcome to ROBCO Industries (TM) Termlink   |    |
|    | Password Required                           |    |
|    | Attempts Remaining: X X X X                 |    | # N = 4 drives these X's.
|    |                                             |    |
|    | 0x01 $?_/%$ENACT||"} | 0x0D TYS"_'$\#|^%&{} |    |
|    | 0x02 }:!*@{/_<"[]#>; | 0x0E #{!"^&\]'|}_[$% |    |
|    | 0x03 $%&'()*+/:;<\_' | 0x0F }|[(%SMELL/_$@( |    |
|    | 0x04 ^SMART(!@$*'^_@ | 0x10 []_#!"{|}'%$\&^ |    |
|    | 0x05 (*@#%}*(!%)^(_! | 0x11 %$}[!\#'^&_]{|" |    |
|    | 0x06 $%&'()*+/:;<_@) | 0x12 \SWORE|%'_!}\^" |    |
|    | 0x07 "/')=*%!&>#<:$+ | 0x13 ^{['&$|!_]%\"#} |    |
|    | 0x08 ;'*$&"(<%!#)RAC | 0x14 ']!|^#[$"_\}&{% |    |
|    | 0x09 ES:($&';%#+"<*/ | 0x15 @)($!CARTS*!@$_ |    |
|    | 0x0A ;'*$&"(<%!#)/+: | 0x16 !#%${"'}&[]^|_\ |    |
|    | 0x0B |'_!}$\%["#^{&] | 0x17 ]"_#$&}^%[{|\'! |    |
|    | 0x0C #{!"^&\]'|}_[PI | 0x18 _![&#{$%\^'|}"] |    | # Notice how PITYS wrapped.
|    |_____________________________________________|    |
|                                                       |
\_______________________________________________________/ 
       \_______________________________________/        

যদি n = 2একই উদাহরণে:

  _____________________________________________________
 /                                                     \ 
|     _____________________________________________     |
|    |                                             |    |
|    | Welcome to ROBCO Industries (TM) Termlink   |    |
|    | Password Required                           |    |
|    | Attempts Remaining: X X                     |    | # N = 2 drives these X's.
|    |                                             |    |
|    | 0x01 $?_/%$ENACT||"} | 0x0D TYS"_'$\#|^%&{} |    |
|    | 0x02 }:!*@{/_<"[]#>; | 0x0E #{!"^&\]'|}_[$% |    |
|    | 0x03 $%&'()*+/:;<\_' | 0x0F }|[(%SMELL/_$@( |    |
|    | 0x04 ^SMART(!@$*'^_@ | 0x10 []_#!"{|}'%$\&^ |    |
|    | 0x05 (*@#%}*(!%)^(_! | 0x11 %$}[!\#'^&_]{|" |    |
|    | 0x06 $%&'()*+/:;<_@) | 0x12 \SWORE|%'_!}\^" |    |
|    | 0x07 "/')=*%!&>#<:$+ | 0x13 ^{['&$|!_]%\"#} |    |
|    | 0x08 ;'*$&"(<%!#)RAC | 0x14 ']!|^#[$"_\}&{% |    |
|    | 0x09 ES:($&';%#+"<*/ | 0x15 @)($!CARTS*!@$_ |    |
|    | 0x0A ;'*$&"(<%!#)/+: | 0x16 !#%${"'}&[]^|_\ |    |
|    | 0x0B |'_!}$\%["#^{&] | 0x17 ]"_#$&}^%[{|\'! |    |
|    | 0x0C #{!"^&\]'|}_[PI | 0x18 _![&#{$%\^'|}"] |    | # Notice how PITYS wrapped.
|    |_____________________________________________|    |
|                                                       |
\_______________________________________________________/ 
       \_______________________________________/        

এই উদাহরণগুলি ম্যানুয়ালি তৈরি করা হয়েছিল, সুতরাং বিতরণটি এলোমেলোভাবে করা হয়নি, দুঃখিত।


এটি , সর্বনিম্ন বাইট-কাউন্টটি গ্রহণযোগ্য বিজয়ী হবে। মোট 250 টি আরইপি-র জন্য কোনও উত্তর জমা না দেওয়া হলে আমি 3 দিন পরে এটি বরাদ্দ করব।


কুইক! 3 দিন কেউ উত্তর দেয় না! (দুষ্টুমি). এটি আমার নতুন প্রিয় আসকি-শিল্প চ্যালেঞ্জ।
nmjcman101

2
@ nmjcman101 আপনার শেষ প্রিয়টি কী ছিল?
ম্যাজিক অক্টোপাস উরান

কী NAMES2nd বুলেট পয়েন্ট এর অর্থ? " সমস্ত পাসওয়ার্ড সমান দৈর্ঘ্যের হতে পারে, যদিও এটি বিবেচনা করে না doesn't " বা " l এর সমস্ত পাসওয়ার্ড অবশ্যই সমান দৈর্ঘ্যের হবে " " এটি কেবল আমার অন্ধ হয়ে যেতে পারে (আবার!) তবে আমি RACESকোনও ফলকে দেখতে পাচ্ছি না - আমরা কী এটি বোঝাতে চাই যে কোনও পাসওয়ার্ড ব্যবহার না হওয়ার সম্ভাবনা রয়েছে? Math.random(এবং সমতুল্য) কি এই চ্যালেঞ্জের উদ্দেশ্যে যথেষ্ট এলোমেলো?
শেগি

2
দুটি পাসওয়ার্ডের মধ্যে অ-অক্ষরবিহীন স্পেসার থাকতে হবে বা তারা একে অপরের ঠিক পাশেই তৈরি করলে তা ঠিক আছে (নন-ওভারল্যাপিং)?
হাইপারনিউট্রিনো

5
পাসওয়ার্ডগুলিতে কি 0x18 থেকে 0x01 থেকে ডানদিকে মোড়ানোর সম্ভাবনা থাকা দরকার?
জোনাথন অ্যালান

উত্তর:


6

জাভাস্ক্রিপ্ট (ES8), 575 568 564 বাইট

3 শে বাইট সংরক্ষিত হয়েছে @ শেগগিকে ধন্যবাদ

সিনট্যাক্স সংবাহন ইনপুট লাগে (r)(a), যেখানে R অবশিষ্ট প্রয়াসের সংখ্যা এবং একটি পাসওয়ার্ড অ্যারে।

r=>a=>[...C=`!"#[]^$%&'*+;<{}=`].reduce((s,c)=>(x=s.split(c)).join(x.pop()),`  "%%__
 /;;# \\ 
[ "} $Welcome to ROBCO Industries (TM) Termlink'!Password Required#}'!Attempts Remaining:${" X".repeat(r).padEnd(9)};[$^1=^D<2=^E<3=^F<4*0<5*1<6*2<7*3<8*4<9*5<A*6<B*7<C*8='+"[|
|;;#'|
\\"{_/ 
}'\\&%/= ]]]]] | }' {%%%<='+ ^#}}}+|
[|*=0x1'   "{{{%___$+;#}} !^0x0]ZZZ[|}#;}"&{![+ `).replace(/Z/g,(c,i)=>a.join``[(i%58>>5?y++:x++)%L],x=(R=n=>Math.random()*n|0)(L=360),y=x+180,[...Array(L-(n=a.sort(_=>R(3)-1).length)*a[0].length)].map(_=>a[R(n)]+=(C+`>?@()/:\\_|`)[R(27)]))

উদ্দেশ্যে সিনট্যাক্স হাইলাইটার অক্ষম। এটি দিয়ে কী করা যায় তার কোনও ইঙ্গিত নেই।

ডেমো


আপনি পূরণ করতে প্রচেষ্টা তাই মত ES8 ব্যবহার কিছু সংরক্ষণ করা যায়নি: Attempts Remaining:${" X".repeat(r).padEnd(8)}?
শেগি

1
@ শেগি যা 3 বাইট সংরক্ষণ করে ধন্যবাদ!
আর্নল্ড

Welcome to ROBCO Industries (TM) Termlink'!Password Required#}'!Attempts Remaining:ওফ ... নন-গল্ফিং ল্যাং বাইটস সংরক্ষণ করার জন্য আমার প্যারাফ্রেজ করা উচিত ছিল।
ম্যাজিক অক্টোপাস উরান

4

এসওজিএল ভি0.12 , 225 বাইট

R“EC"+w╗─║Z⁰2BΥø‘▓"▲╔⁸‘'²∙+"⅟Δλ≤LK⅟ΗΠ.JN║«⁸⅟‘▓+╬⁷"№D↓tι▲‛Q─Ρδν∙υ4Ρψ▲¦‽↑√Ε┐Ζ5↔‛⅟≤š▼¦⁾○ΔΡ%³‘ū91 tž85ž.ΖX Ο'⁹7žø]Xe@*c{leκψI1ž}_:@øŗ⁄c∑⁄≠}l{"T-)⅞↑°Χpjζ⅓īa0ε+Μ‛⁶ρ\=↔⅟¹‘ψ}¹K@Gŗ'¹nο²²Z+8«m«ο+I{@∑"0x0”Κ}¹6«n_'⁷1ž'⁵16«┐∙ž'⁸4 19∙ž89╬5

এখানে চেষ্টা করুন!
স্ট্যাক এবং অ্যারে সংখ্যার ইনপুট একটি ইনপুট এ অ্যারে ইনপুট আশা করে, তাই →"সহজেই ব্যবহারযোগ্যতার জন্য অনলাইন প্রোগ্রামে যুক্ত করা হয়।


4

পার্ল 5 , 588 560 + 1 (-এ) = 589 561 বাইট

ডোম নির্দেশিত পরামর্শ সহ 28 বাইট কেটে নিন

$,=$/;$_=" X"x pop@F;say"  "."_"x53," /".$"x53 ."\\",$q="|     ".'_'x45 ."     |",$e=($b="|    |").$"x45 .$b,"$b Welcome to ROBCO Industries (TM) Termlink   $b
$b Password Required".$"x27 .$b,"$b Attempts Remaining:$_".$"x(25-length).$b,$e;map{$s.=(grep/[^\w,.`-]|_/,map{chr}33..125)[rand 27]}1..360;($t=substr$s,$r=rand 360-($l=length),$l,$_)=~/[a-z]/i&&(substr$s,$r,$l,$t)&&push@F,$_ while$_=pop@F;@o=$s=~/.{15}/g;printf"$b 0x0%X %s | 0x%02X %s $b\n",$_,$o[$_-1],$_+12,$o[$_+11]for 1..12;say$b.'_'x45 .$b,$q=~y/_/ /r,$q=" \\"."_"x54 ."/",$"x6 .$q=~s/_{15}//r

এটি অনলাইন চেষ্টা করুন!

পূর্বে:

$,=$/;$_=" X"x pop@F;say"  "."_"x53," /".($"x53)."\\",$q="|     ".('_'x45)."     |",$e=($b="|    |").($"x45).$b,"$b Welcome to ROBCO Industries (TM) Termlink   $b
$b Password Required".($"x27).$b,"$b Attempts Remaining:$_".($"x(25-length)).$b,$e;$s=join'',map{(split//,'!"#$%&\'()*+/:;<=>?@[]^_{|}\\')[int rand 27]}1..360;while($_=pop@F){if(($t=substr$s,$r=rand 360-($l=length),$l,$_)=~/[a-z]/i){substr$s,$r,$l,$t;push@F,$_}}@o=$s=~/.{15}/g;printf"$b 0x0%X %s | 0x%02X %s $b\n",$_,$o[$_-1],$_+12,$o[$_+11]for 1..12;say$b.('_'x45).$b,$q=~y/_/ /r,$q=" \\".("_"x54)."/",($"x6).$q=~s/_{15}//r

এটি অনলাইন চেষ্টা করুন!

ইনপুটটি এক লাইনে রয়েছে, স্থান পৃথক করা হয়েছে: প্রথমে স্ট্রিংগুলি, তারপরে সংখ্যাটি

কিভাবে?

$,=$/;          # delimiter between fields is newline
$_=" X"x pop@F; # set number of attempts left
say             # output the header
"  "."_"x53,
" /".($"x53)."\\",
$q="|     ".('_'x45)."     |",
$e=($b="|    |").($"x45).$b,
"$b Welcome to ROBCO Industries (TM) Termlink   $b
$b Password Required".($"x27).$b,
"$b Attempts Remaining:$_".($"x(25-length)).$b,
$e;
$s=join'',map{(split//,'!"#$%&\'()*+/:;<=>?@[]^_{|}\\')[int rand 27]}1..360; # create random string long enough for entire screen
while($_=pop@F){  # for each given string
if(($t=substr$s,$r=rand 360-($l=length),$l,$_) # attempt to insert it
=~/[a-z]/i)                                    # but check if it overlaps another string
{substr$s,$r,$l,$t;                            # if it does, take it out
push@F,$_}}                                    # and put it back in line
@o=$s=~/.{15}/g;                               # split "memory dump" into chunks
printf"$b 0x0%X %s | 0x%02X %s $b\n",$_,$o[$_-1],$_+12,$o[$_+11]for 1..12; #output the grid
say                                            # output the footer
$b.('_'x45).$b,$q=~y/_/ /r,
$q=" \\".("_"x54)."/",
($"x6).$q=~s/_{15}//r

একটি জটিল সমস্যার চমৎকার উত্তর! পুনরাবৃত্তি অপারেটরের চারপাশে বন্ধনীগুলি সরিয়ে আপনি প্রায় 30 বাইট সংরক্ষণ করতে সক্ষম হবেন, আপনি একটি স্থান যুক্ত করতে পারেন যাতে .দশমিক পয়েন্ট হিসাবে ব্যবহৃত হয় না। বিরামচিহ্ন পেতে আপনি এর মতো কিছু ব্যবহার করতে পারেন (grep/[^\w,.`-]|_/,map{chr}33..125)এবং আপনাকে intঅ্যারে সূচীতে কল করার দরকার নেই ! whileলুপটি পোস্টফিক্সে পরিবর্তন করা এবং এর &&পরিবর্তে ব্যবহার করা ifখুব কয়েকটি সাশ্রয় করা উচিত। যখন আপনি নির্মাণ করছেন $s, যদি $s.=মানচিত্রের অভ্যন্তরে আপনার joinআরও কয়েকটি ড্রপ ব্যবহার না করে থাকে । আশা করি এইটি কাজ করবে!
ডম হেস্টিংস

4

পাইথন 3 , 585 বাইট

from random import*
def f(l,n,r=range):
	u,c='_ ';a=[choice('!"#$%&\'()*+/:;<=>?@[\\]^_{|}')for i in c*360];L=len(l[0]);i={*r(360-len(l[0]))};p=lambda x:'0x%02X'%x+c+''.join(a[15*x:][:15])
	for q in l:s=choice([*i]);a[s:s+L]=q;i-={*r(s+~L,s+-~-~L)}
	return'''  %s
 /%s\\
|# %s #|
?%s?
? Welcome to ROBCO Industries (TM) Termlink   ?
? Password Required   ######?
? Attempts Remaining:%-25s?
?%s?
%%s?%s?
|%s|
\%s/
#   \%s/'''.replace('?','|#|').replace('#',c*4)%(u*53,c*53,u*45,c*45,' X'*n,c*45,u*45,c*55,u*55,u*39)%('|    | %s | %s |    |\n'*12)%sum([(p(x),p(x+12))for x in r(12)],())

এটি অনলাইন চেষ্টা করুন!

-70 বাইট জোনাথন অ্যালানকে
ধন্যবাদ -9 বাইটস আমাকে ধন্যবাদ (শেষ পর্যন্ত!)
-72 বাইট ধন্যবাদ নটজাগানকে




আরও 16 টি সরানো হয়েছে! (একাধিক মন্তব্যের চেয়ে এটি করার আরও ভাল উপায় থাকতে হবে)
notjagan

আমার অন্য পরিবর্তনগুলির মধ্যে অর্ধেকটি ফেরত দিয়ে আরও 6 বাইট বন্ধ (আমার সত্যিই মন্তব্য করা উচিত) should
notjagan

@ নোটজাগান আমার মন্তব্যগুলিতে আপত্তি নেই :) ধন্যবাদ!
হাইপারনিউট্রিনো

2

জাভাস্ক্রিপ্ট (ES8), 639 বাইট

(w,n,r=i=>Math.random()*i|0,s=b=>{for(i=b[k];i;i--)[b[i-1],b[j]]=[b[j=r(i)],b[i-1]]},a=Array(360-w[k="length"]*--w[0][k]),m=[...a].map((j,i)=>~(j=d.slice(0,w[k]).indexOf(i))?w[j]:`!"#$%&'()*+/:;<=>?@[\\]^_{|}`[r(27)],s(w),s(d=[...a.keys()])).join``.match(/.{15}/g).map((v,i)=>"0x"+(i+1).toString(16).padStart(2,0)+" "+v))=>`  _53
 / 53\\
| 5_45 5|
${["","Welcome to ROBCO Industries (TM) Termlink","Password Required","Attempts Remaining:"+" X".repeat(n),"",...m.slice(0,12).map((x,i)=>x+" | "+m[i+12])].map(x=>"| 4| "+x.padEnd(43)+" | 4|").join`
`}
| 4|_45| 4|
| 55|
\\_55/
 7\\_39/`.replace(/[_ ]([1-9]+)/g,(m,n)=>m[0].repeat(n))

হেক্স লেবেলগুলি ছোট হাতের অক্ষরে রয়েছে; যদি বড় হাতের অক্ষর প্রয়োজন হয় তবে এটি অতিরিক্ত 14 বাইট হবে .toUpperCase()

পরীক্ষার স্নিপেট

কোডপেনে আরও ভাল দেখা ।


আপনি 2 টি প্যারামিটারটি কারি করে এবং আপনার ভেরিয়েবলগুলিকে প্রথমটিতে স্থানান্তরিত করে একটি বাইট সংরক্ষণ করতে পারেন repeat
শেগি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.