একটি অবৈধ স্ট্রিং সন্ধান করুন


81

চ্যালেঞ্জটি হ'ল এমন অক্ষরের একটি স্ট্রিং সন্ধান করা যা আপনার পছন্দের প্রোগ্রামিং ভাষার কোনও আইনী প্রোগ্রামে উপস্থিত না হতে পারে । এর মধ্যে মন্তব্য, স্ট্রিং বা অন্যান্য "অ-এক্সিকিউটেবল" অংশ অন্তর্ভুক্ত রয়েছে।

চ্যালেঞ্জ

  • আপনার প্রোগ্রামটি কোনও নির্দিষ্ট সংস্করণ বা আপনার ভাষার সংকলক / দোভাষী / রানটাইম পরিবেশের প্রয়োগের জন্য নির্দিষ্ট হতে পারে। যদি তা হয় তবে দয়া করে বিশদটি নির্দিষ্ট করুন।
  • কেবলমাত্র স্ট্যান্ডার্ড সংকলক / দোভাষী / রানটাইম বিকল্পগুলি অনুমোদিত। নির্দিষ্ট ফলাফল পেতে আপনি আপনার সংকলকটিতে কিছু অদ্ভুত পতাকাটি প্রেরণ করতে পারবেন না (উদাহরণস্বরূপ সতর্কতাগুলিকে ত্রুটিতে রূপান্তর করতে একটি পতাকা পাস করা)।
  • যদি আপনার প্রোগ্রামিং ভাষার জন্য একটি নির্দিষ্ট এনকোডিং প্রয়োজন হয় (যেমন ইউটিএফ -8), আপনার স্ট্রিংটিও অবশ্যই সঠিকভাবে এনকোড করা উচিত (অর্থাত্ অক্ষর ডিকোডিং ত্রুটির কারণে এককভাবে ব্যর্থ হওয়া স্ট্রিংগুলি অনুমোদিত নয়)।
  • আপনার জমা দেওয়ার প্রতিটি স্বতন্ত্র চরিত্র অবশ্যই আইনী প্রোগ্রামে গ্রহণযোগ্য হতে হবে; এটি হল, আপনি কেবল এমন একটি অক্ষর ব্যবহার করতে পারবেন না যা সর্বদা প্রত্যাখ্যান করা হয়।
  • সংকলক / দোভাষী / রানটাইম অবশ্যই একটি স্ট্রিং হিসাবে আপনার স্ট্রিং ধারণ করে এমন কোনও সোর্স কোড দেওয়ার সময় একটি ত্রুটি দিতে হবে । প্রোগ্রামগুলিতে ত্রুটিটি একই রকম হয় না - আপনার স্ট্রিংয়ের একটি এম্বেডিং সিন্ট্যাক্স ত্রুটির কারণ হতে পারে, অন্যদিকে রানটাইম ত্রুটির কারণ হতে পারে।

স্কোরিং

  • প্রতিটি ভাষার জন্য সবচেয়ে ছোট অবৈধ স্ট্রিং জেতে।
  • আপনার স্ট্রিং কেন অবৈধ (এটি কোনও আইনি প্রোগ্রামে কোথাও প্রদর্শিত হতে পারে না) তা আপনাকে ব্যাখ্যা করা উচিত ।
  • মন্তব্যগুলিতে ভুল সমাধানগুলি বিতর্ক করুন। আরও সুনির্দিষ্টভাবে, আপনি টিআইও বা সমমানের কোনও লিঙ্ক সরবরাহ করতে পারেন যাতে কোনও আইনি প্রোগ্রাম প্রদর্শিত হয় (যেমন একটি যা কোনও ত্রুটি তৈরি করে না) যাতে প্রস্তাবিত স্ট্রিং থাকে।
  • কিছু ভাষা (যেমন বাশ, ব্যাচ, পার্ল) বৈধতা (যেমন __DATA__পার্ল ব্যবহার করে ) প্রভাবিত না করে একটি প্রোগ্রামে স্বেচ্ছাসেবী বাইনারি ডেটা যুক্ত করার অনুমতি দেয় । এই জাতীয় ভাষার জন্য, আপনি এমন একটি সমাধান জমা দিতে পারেন যা কেবলমাত্র এই জাতীয় অনুচ্ছেদে দেখা যায়। আপনার উত্তরে একটি নোট নিশ্চিত করে নিন। (এই "অনুচ্ছেদে বিভাগ" এর সংজ্ঞাটি ভাষা-নির্ভর, তবে সাধারণত পার্সার স্ক্রিপ্টটি সম্পূর্ণভাবে পড়া বন্ধ করার পরে কোনও পাঠ্য বোঝায়)।

উদাহরণ

পাইথনে, আমি জমা দিতে পারি

x
"""
'''

তবে এটি বৃহত্তর প্রোগ্রামে এম্বেড করা যেতে পারে

"""
x
"""
'''
y
'''

সুতরাং এটি গ্রহণযোগ্য নয়।


2
একটি পাল্টা উদাহরণ STDIN থেকে ইনপুট উপর নির্ভর করতে পারে?
জাকারি

5
এটি কি ভাল সিএনআর তৈরি করবে?
ক্যালকুলেটরফলাইন

2
খুব এখনই আমার অনুমান, তবে মনে হচ্ছে এটি পুলিশ এবং ডাকাতদের চ্যালেঞ্জ হতে পারে। বৈধ প্রোগ্রামগুলি করার প্রচেষ্টাতে প্রচুর দক্ষতা প্রমাণিত হওয়ার সাথে সাথে প্রথম স্থানে স্ট্রিংগুলি নিয়ে আসে।
ব্যবহারকারী 2390246

4
পারেলের প্রচেষ্টায় আমার সমবেদনা। :)
কাজ

2
আমি নিশ্চিত যে অশিক্ষিত হাস্কেলের পক্ষে এটি সম্পূর্ণ অসম্ভব, নেস্টেড মন্তব্যে ধন্যবাদ।
dfeuer

উত্তর:


57

চেঞ্জিং , 2 বাইট




এটি দুই লাইনফিড। বৈধ চেঞ্জিংয়ে অবশ্যই সর্বদা মুদ্রণযোগ্য এএসসিআইআই অক্ষরের একটি নিখুঁত বর্গ গঠন করতে হবে, সুতরাং এটিতে পর পর দুটি লাইনফিড থাকতে পারে না।

ত্রুটিটি সর্বদা একটি পার্সার ত্রুটি এবং সর্বদা একই:

This shape is unpleasant.

প্রস্থান কোড 1 সহ

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


এই সাথে কাজ করে 2Colএটি অনলাইন চেষ্টা করুন! । তবে এটি 2 কলামে বিভক্ত হওয়ার কারণটি হ'ল প্রতিটি লাইনে ঠিক 2 টি অক্ষর থাকা দরকার, তবে খালি লাইনটি এটি ভেঙে দেয়।
ক্রিটসি লিথোস

2
+1 কারণ এটি স্বয়ংক্রিয়ভাবে বিজয়ী, যেহেতু 1-বাইট সমাধানগুলি অনুমোদিত নয় কারণ "আপনি কেবল এমন অক্ষর ব্যবহার করতে পারবেন না যা সর্বদা প্রত্যাখ্যানিত হয়।"
জাকারি

1
@ কৌসকয়াক টিএফডব্লু আমি নিজের ভাষার কথা ভুলে গিয়েছিলাম
স্কিডেদেব

1
@ স্কিডসদেব টিএফডব্লু আমি আমার নিজের ভাষাটি আবার ভুলে গিয়েছিলাম এবং নিজের ভাষা সম্পর্কে ভুলে যেতে ভুলে গিয়েছিলাম
স্কিডেদেব

@ জাচারý 0-বাইট সমাধান সম্পর্কে কী?
পাইরুলেজ

32

জাভা, 4 বাইট

;\u;

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

এটি একটি অবৈধ ইউনিকোড পালানোর ক্রম এবং সংকলকটিতে একটি ত্রুটি ঘটায় will

error: illegal unicode escape

কাজ করে না - একটির মতো স্ট্রিং আক্ষরিক থাকতে পারে "\\u;"
শুক্রবার

@ ফিয়ারসাম একটি বাইটের দাম নির্ধারণ করুন
ক্রিটিক্সী লিথোস

21
@TheLethalCoder: জাভা সোর্স কোড পরিবর্তন করতে preprocesses \uXXXXবেরিয়ে কাজ করার আগে কিছু আর, তাই হ্যাঁ, এই এমনকি comments.za ভিতরে কাজ করবে
nneonneo

3
আমি মনে করি এটি এখনও এই সাইটের ইতিহাসের সবচেয়ে সংক্ষিপ্ত জাভা উত্তর ..
ম্যাজিক অক্টোপাস উরান

1
@ ম্যাজিক অ্যাক্টপাস ইউরান প্রকৃতপক্ষে, এখানে 0 টি বাইট জাভা উত্তর রয়েছে (যা বর্তমান মেটাতে আর প্রাসঙ্গিক নয়, যেহেতু এটি এসটিডিআউটির পরিবর্তে এসটিডিআরআরকে আউটপুট দেয়)। যদিও উভয়ই বেশ আশ্চর্যজনক এবং চালাক। :)
কেভিন ক্রুইজসেন 16'13

25

কোবল (জিএনইউ) , 8 বাইট


THEGAME

প্রথমত, আপনাকে আমার মন্তব্যে মন্তব্য করা লাইনে আটকাতে বাধা দেওয়ার জন্য একটি লাইনফিড।

তারপরে, icallyতিহাসিকভাবে, সিওবিএল প্রোগ্রামগুলি কোডিং শীটগুলিতে মুদ্রিত হয়েছিল, সংকলকটি 80-অক্ষর সীমাবদ্ধ লাইনের উপর অনেক বেশি নির্ভর করে, কোনও মাল্টলাইন মন্তব্য নেই এবং প্রথম 6 টি অক্ষর মন্তব্য (প্রায়শই সম্পাদনযোগ্য লাইন নম্বর হিসাবে ব্যবহৃত হয়) হয়, আপনি প্রায় কিছু সেখানে রাখতে পারেন , আমি যতদূর জানি. আমি THEGAMপরের লাইনের শুরুতে বেছে নিয়েছি ।

তারপরে, যে কোনও লাইনের 7 তম প্রতীক কেবলমাত্র অক্ষরের একটি খুব সীমিত তালিকা গ্রহণ করে: স্থান (কোনও প্রভাব নেই), অ্যাসিটার্ক (লাইনের বাকী অংশে মন্তব্য করে), হাইফেন, স্ল্যাশ, অন্য কেউ থাকতে পারে, তবে অবশ্যই তা নয় E

উদাহরণস্বরূপ, GnuCobol দ্বারা প্রদত্ত ত্রুটিটি হ'ল:

error: invalid indicator 'E' at column 7

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

এছাড়াও, আপনি সবেমাত্র খেলাটি হারিয়েছেন।


30
Also, you just lost the game.আমি প্রায় হ্রাস পেয়েছি
স্টিফেন

24

জাভাস্ক্রিপ্ট, 7 বাইট


;*/\u)

নেতৃস্থানীয় নিউলাইন নোট করুন।

  • \u) একটি অবৈধ ইউনিকোড পালানোর ক্রম এবং এই কারণেই এই স্ট্রিংটি অবৈধ
  • //প্রথম পংক্তিকে নতুন করে ছেড়ে দিয়ে প্রথম দিকে যুক্ত করা এখনও কার্যকর হবে না,
  • একটি যুক্ত যুক্ত /*স্ট্রিংটি সম্পূর্ণরূপে বন্ধ করে দেয় */যা এটি সম্পূর্ণ করে, \u)উন্মুক্ত রেখে দেয় completely
  • @ স্পা দ্বারা বর্ণিত হিসাবে, নীচের লাইনটি /স্ট্রিংয়ের পরে থাকার পরে একটি রেজেক্সে রূপান্তরিত করা যেতে পারে , সুতরাং )এর সামনের অংশটি রেখে \uআমরা নিশ্চিত করতে পারি যে রেজেক্স আক্ষরিক সর্বদা অবৈধ থাকবে
  • @ এসগ্যাল্যান্টের বক্তব্য অনুসারে, রেজেক্সকে 1||1(string)/মূল্যায়ন না করা থেকে কেউ এড়াতে পারেন। দ্বিতীয় লাইনের শুরুতে আধা-কোলনটি দ্বিতীয় লাইনে 1||1হিট হওয়ার আগে এক্সপ্রেশনটি শেষ করে ঘটে যাওয়া থামিয়ে দেয় , এভাবে একটি সিনট্যাক্সেরর সাথে জোর করে ;*

চেষ্টা করে দেখুন!


2
/* */\u0045 = 3বৈধ জাভাস্ক্রিপ্ট কোড বলে মনে হচ্ছে।
tsh

2
3 */\u;/এখনও বৈধ।
tsh

3
জবর খেয়াল করা জরুরী যে ES2018 (যা এই বছরের শেষ না হওয়া পর্যন্ত সরকারি হবে না) হিসাবে আপনি শুধু পুরো জিনিস ব্যাকটিক মধ্যে কারণে মোড়ানো পারেন এই । আপনি সম্ভবত এটি ঠিক করার পরেও কেবল ব্যাকটিক byোকানোর পরে /(আপনার এটি ঠিক করার দরকার নেই)। (এছাড়াও, এটি ;খারাপ রেজেক্সকে পার্সিং করার জন্য জোর করে না, এটি একটি *
সিন্ট্যাক্সেরর

1
@ লুশেনকো তবে #if 0এখানে দেখা হিসাবে এটি
ক্রিটিকি লিথোস

3
নতুন জেএস সংস্করণগুলিতে, টেমপ্লেট স্ট্রিং সহ স্ট্রিং.আরও এটিকে বিরতি ফেলতে পারে, কারণ অবৈধ পালানো ব্যর্থ হয়। করা হবে: String.raw`code here`
iovoid

15

পাইথন, 10 বাইট (সিপিথন নয়)


?"""?'''?

নেতৃস্থানীয় নিউলাইন নোট করুন। নতুন লাইনের কারণে মন্তব্য করা যায় না, এবং আমি যদি সঠিকভাবে এটি সম্পর্কে চিন্তা করি তবে ট্রিপল উদ্ধৃত স্ট্রিংগুলির কোনও সমন্বয় কাজ করা উচিত নয়।

@ ফেয়ারসাম মন্তব্যগুলিতে মনে হচ্ছে যে কোনও ফাইলের শুরুতে 0x1A অক্ষর যুক্ত করে উইন্ডোজের যে কোনও সিপিথন প্রোগ্রামটি পুরোপুরিভাবে ভেঙে ফেলেছি। মনে হয় যে সম্ভবত (?) এই চরিত্রটি অপারেটিং সিস্টেমের দ্বারা পরিচালিত হয়েছে, সম্ভবত কিছু ইওএফ-তে অনুবাদ করা হয়েছে কারণ এটি কিছু লিগ্যাসি ডস স্ট্যান্ডার্ডের কারণে স্টিডিনের মধ্য দিয়ে যায়।

সত্যিকার অর্থে এটি অজগর নিয়ে নয়, অপারেটিং সিস্টেমের সাথে সমস্যা। যদি আপনি একটি অজগর স্ক্রিপ্ট তৈরি করেন যা ফাইলটি পড়ে এবং এতে বিল্টিন ব্যবহার করে compileতবে এটি সিনট্যাক্স ত্রুটি ছুঁড়ে দেওয়ার আরও প্রত্যাশিত আচরণ দেয়। পাইপি (যা সম্ভবত অভ্যন্তরীণভাবে এটি করে) একটি ত্রুটিও ছুঁড়ে দেয়।

সম্পাদনা:

পাইথন দোভাষীকে ভেঙে ফেলার অস্পষ্ট উপায়গুলি খুঁজে পাওয়ার জন্য @ ফেয়ারসামের অধ্যবসায়ের কারণে, এই উত্তরটি যে কোনও সাধারণ সিপাইথন পরিবেশের জন্য আমি যতদূর বলতে পারি তা সম্পূর্ণরূপে অবৈধ! (উইন্ডোজ এবং লিনাক্স উভয়ের জন্য পাইথন 2 এবং 3) আমি এখনও বিশ্বাস করি যে এই ফাটলগুলি কোনও প্ল্যাটফর্মে পাইপির পক্ষে কাজ করবে না (আমি পরীক্ষা করেছি কেবলমাত্র পাইথন বাস্তবায়ন)।



3
আমি এই সাবস্ট্রিং দিয়ে একটি প্রোগ্রাম তৈরি করেছি যা আমার মেশিনে চলে। তবে আমি মনে করি এটি অনেক দোভাষী / প্ল্যাটফর্ম / সংস্করণে চলবে না। পাইথন ইন্টারপ্রেটার এবং ওএসের উত্তরটি লক্ষ্য করে কোন সংস্করণটি নির্দিষ্ট করতে পারে?
শুক্রবার

1
উইন্ডোজ on-এ পাইথন 3 হ'ল আমার ক্র্যাক যেখানে কাজ করছে ঠিক সেখানেই ঘটে। বেস 64-এনকোডেড প্রোগ্রামের
পাস্তবিন

1
আমি এটিকেও ক্র্যাক করতে পারি। কেবল ফাইলের শুরুতে একটি 0x1A অক্ষর রাখুন এবং এর সমস্ত অংশ উপেক্ষা করা হয় (এটি আসলে পাইথন 3-তেও কাজ করে)।
শুক্রবার

1
আমি জানি এটি সত্যই পুরানো, তবে পাইথন ডিসকর্ডে কিছু লোকের সাথে কাজ করার পরে আমরা এই ফাটলটি পেয়েছি , যদিও এনকোডিংটি পরিবর্তন করা প্রতারণা হিসাবে বিবেচনা করা যায় কিনা তা আমি জানি না
এডিএনর্ড

14

সি (ঝনঝন) , 16 বাইট

 */
#else
#else

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

*/কোনও /*মন্তব্য বন্ধ করে , এবং নেতৃস্থানীয় স্থানটি নিশ্চিত করে যে আমরা কেবল একটি শুরু করি নি। নিউলাইনটি কোনও //মন্তব্য বন্ধ করে এবং কোনও স্ট্রিং আক্ষরিক বিরতি দেয়। তারপরে আমরা একটি ত্রুটি #else without #ifবা #else after #elseত্রুটি সৃষ্টি করি (আমাদের অভ্যন্তরে কতগুলিই হোক না কেন #if 0)।



2
এছাড়াও যেহেতু সি ++ ১১ টি কাঁচা স্ট্রিং কাজ করছে বলে মনে হচ্ছে, সিসিসি সহ একটি সমাধান অসম্ভব।
শুক্রবার

@ ফেয়ারসাম হু, টিআইএল যে জিসিসি সি কোডের সাথে তাদের গ্রহণ করে। আমি নির্দিষ্ট করতে পারি -std=c99, তবে আসুন ঝনঝনিতে স্যুইচ করার চেষ্টা করি।
অ্যান্ডারস কাসেরগ

3
আমি সত্যিই অবাক হয়েছি যে জিসিসি সি ++ 11 টি কাঁচা স্ট্রিং গ্রহণ করে। সংকলক সংস্করণ বা বাস্তবায়ন নির্দিষ্ট করে দেওয়া পুরোপুরি ঠিক আছে, সুতরাং এটি যদি বেআইনীভাবে অবৈধ হয় তবে এটি সুষ্ঠু খেলা।
nneonneo

1
@ l4m2 আমি আপনার প্রশ্নের বিশ্লেষণ করতে পারছি না (তারা কে, এবং আপনি আবার কী বোঝাতে চাইছেন?) তবে লক্ষ করুন যে সি ++ কাঁচা স্ট্রিং আক্ষরিক একটি কাস্টম ডিলিমিটারকে সমর্থন করে: R"foobar(...)foobar"এবং কেবলমাত্র ডান পেরেনের সাথে মিলে যাওয়া ডিলিমিটার এবং একটি উদ্ধৃতি এটি বন্ধ হবে।
অ্যান্ডারস ক্যাসরগ

11

পাইথ, 6 বাইট

¡¡$¡"¡

¡একটি অবিবাহিত চরিত্র, যার অর্থ পাইথ পার্সার যদি কখনও এটি মূল্যায়ন করে তবে এটি পাইথ পার্সিরর দিয়ে ত্রুটিযুক্ত হবে। কোড নিশ্চিত করে যে ¡এটির যে কোনও একটিতে ঘটবে ।

পাইথ প্রোগ্রামে বাইট উপস্থিত থাকার তিনটি উপায় রয়েছে এবং পার্স করা যাবেনা: স্ট্রিং ল্যাটারিয়াল ( "বা .", যা সমানভাবে পার্স করা হয়), একটি পাইথন আক্ষরিক ( $) মধ্যে এবং এর পরপরই \

এই কোডটি \এটি ত্রুটি ছাড়াই মূল্যায়ন করতে বাধা দেয় , কারণ এটি কেবল তাত্ক্ষণিকভাবে নিম্নলিখিত বাইট এবং দ্বিতীয় ¡ত্রুটিগুলিকে প্রভাবিত করে ।

$এর মধ্যে কোডগুলি $সরাসরি সংকলিত পাইথন কোডে এম্বেড করে । সেখানে কী ঘটতে পারে সে সম্পর্কে আমি কোনও অনুমান করি না।

প্রোগ্রামটি যদি কোনও $প্রসঙ্গে এই কোডটিতে পৌঁছায় তবে এটি শেষ হবে $এবং ¡ঠিক পরেই এটি পার্সার ত্রুটি করবে। পাইথনের পাইথন লিটারেলগুলি সর্বদা পরবর্তী সময়ে শেষ হয় $, পাইথন কোডটি যা করুক না কেন।

প্রোগ্রামটি যদি কোনও "প্রসঙ্গে শুরু হয় , "তবে স্ট্রিংটি শেষ ¡করবে এবং ফাইনালটি পার্সার ত্রুটি করবে।


11

অ্যাডা - 2 বাইট

আমি এই কাজ করা উচিত:


_

এটি নিউলাইন-আন্ডারস্কোর। নিউলাইন মন্তব্যগুলি সমাপ্ত করে এবং স্ট্রিংয়ে অনুমোদিত হয় না। একটি আন্ডারস্কোর হোয়াইটস্পেস অনুসরণ করতে পারে না; কেবল অক্ষর এবং সংখ্যার পরে এটির অনুমতি দেওয়া হত তবে ইউনিকোডের প্রবর্তন বিষয়টিকে জটিল করে তুলেছিল।


2
সাইটে স্বাগতম! :)
ডিজেএমসিএমহেম

9

x86 32-বিট মেশিন কোড, 11 বাইট (এবং ভবিষ্যত-প্রমাণ 64-বিট)

90 90 90 90 90 90 90 90 90 0f 0b

এই times 9 nop/ ud2। এটি মূলত একটি এনওপি স্লেজ , সুতরাং এটি এখনও 0 বা তার বেশি হিসাবে চালিত হয় nopএবং তারপরে ud2একটি ব্যতিক্রম বাড়াতে, 0x90পূর্ববর্তী অপকোডের অপারেটর হিসাবে কতগুলি বাইট গ্রহণ করা হয়েছিল তা নির্বিশেষে exception অন্যান্য একক বাইট নির্দেশাবলী (যেমন times 9 xchg eax, ecx) কাজ করবে।

x86 -৪-বিট মেশিন কোড, 10 বাইট (বর্তমান সিপিইউ)

1৪-বিট মোডে কিছু 1 বাইট অবৈধ নির্দেশনা রয়েছে, যতক্ষণ না কিছু ভবিষ্যত আইএসএ এক্সটেনশানগুলি কেবল pre৪-বিট মোডে প্রিফিক্স বা মাল্টি-বাইট অপকডগুলির অংশ হিসাবে পুনরায় প্রকাশ করে, 32-বিট মোডে তাদের অর্থ থেকে পৃথক হয়। 0x0eহয় push cs32 বিট মোডে, কিন্তু বর্তমান সিপিইউ অবৈধ 64-বিট মধ্যে (ইন্টেল Skylake উপর পরীক্ষা)।

0e 0e 0e 0e 0e 0e 0e 0e 0e 0e

এক্সিকিউটেবল মেশিন কোডের বিধি বিধান :

  • বাইটগুলি উপরের দিকে লাফানো যাবে না ("পার্সড নয়" নিষেধাজ্ঞার মতো), কারণ সিপিইউগুলি ব্যর্থতা বাড়ায় না যতক্ষণ না তারা প্রকৃতপক্ষে ডিকোড / এক্সিকিউট করার চেষ্টা করে (অনু-অনুমানমূলকভাবে)।

  • অবৈধ অর্থ সর্বদা একটি ব্যতিক্রম উত্থাপন করে, উদাহরণস্বরূপ একটি অবৈধ-নির্দেশের ব্যতিক্রম। (বাস্তব প্রোগ্রামগুলি বেয়ার মেটালটিতে ব্যতিক্রম হ্যান্ডলার সহ এটি ধরতে পারে বা কোনও ওএস সিগন্যাল হ্যান্ডলার ইনস্টল করতে পারে তবে আমি মনে করি এটি চ্যালেঞ্জের মনোভাবকে ধারণ করে))


এটি কাজ করে কারণ একটি সংক্ষিপ্ত বাইট-স্ট্রিংটি শেষ হয়ে ud2অন্য কোনও নির্দেশের জন্য ইমিউন 32 এবং / অথবা অ্যাড্রেসিং মোডের অংশ হিসাবে উপস্থিত হতে পারে বা নির্দেশের একজোড়া জুড়ে বিভক্ত হতে পারে । কোনও নির্দেশনার অংশ হিসাবে বাইটগুলি "গ্রাস" করার জন্য স্ট্রিংয়ের আগে আপনি কী রাখতে পারেন তার দিক দিয়ে এ সম্পর্কে চিন্তা করা সবচেয়ে সহজ, এবং এমন কোনও কিছু ছেড়ে দিন যা দোষী হবে না।

আমি মনে করি একটি নির্দেশ স্বেচ্ছাসেবী স্টাফ 9 টি বাইট গ্রাস করতে পারে: একটি এসআইবি বাইট, একটি ডিসিপ 2, এবং একটি ইমি 32। অর্থাত্ এই নির্দেশের প্রথম 2 বাইট 8 টি এনওপি এবং একটি ইউডি 2 ব্যবহার করতে পারে তবে 9 নয়।

c7 84 4b 00 04 00 00 78 56 34 12        mov dword [rbx+rcx*2+0x400],0x12345678

9 টি থামাতে পারবেন না:

    db 0xc7, 0x84   ; opcode + mod/rm byte: consumes 9 bytes (SIB + disp32 + imm32)
    times 9 nop          ; 1-byte xchg eax, ecx or whatever works, too
    ud2
  ----
   b:   c7 84 90 90 90 90 90 90 90 90 90        mov    DWORD PTR [rax+rdx*4-0x6f6f6f70],0x90909090
  16:   0f 0b                   ud2    

-৪-বিট মোড:

 c7 84 0e 0e 0e 0e 0e 0e 0e 0e 0e        mov    DWORD PTR [rsi+rcx*1+0xe0e0e0e],0xe0e0e0e
 0e                      (bad)  

তবে 8 টি এনওপি + ইউডি 2 (বা times 9 db 0x0e) এর বাইটগুলি অন্যান্য ইনসনের অংশ হিসাবে উপস্থিত হতে পারে:

    db 0xc7, 0x84   ; defender's opcode + mod/rm that consumes 9 bytes

    times 8 nop          ; attacker code
    ud2

    times 10 nop    ;; defenders's padding to be consumed by the 0b opcode (2nd half of ud2)
----
  18:   c7 84 90 90 90 90 90 90 90 90 0f        mov    DWORD PTR [rax+rdx*4-0x6f6f6f70],0xf909090
  23:   0b 90 90 90 90 90       or     edx,DWORD PTR [rax-0x6f6f6f70]
  29:   90                      nop
  2a:   90                      nop
  ...

এএসএম / মেশিন কোড উত্তর পোস্ট করার বিষয়ে বিবেচনা করার জন্য এখানকার নিয়মগুলি আমার পক্ষে সত্যই যথেষ্ট পরিষ্কার ছিল না। উদাহরণস্বরূপ, কেন আপনি শুধু করতে পারবেন না ud2? মনে হচ্ছে আপনি বলছেন যে আপনি নিয়মগুলি বাইটের উপর দিয়ে জাম্প করা নিষেধ হিসাবে ব্যাখ্যা করেছেন, তাই ud2এটি নিজেরাই ঠিকঠাক কাজ করবে, না? ওহ ... আমার ধারণা আপনি সমস্যাটি বলছেন যে ud2এটি কোনও বৈধ নির্দেশের উপসর্গ হিসাবে উপস্থিত হতে পারে? এই উত্তরের দ্বিতীয় অংশটি বুঝতে আমার পক্ষে কিছুটা কঠিন ছিল।
কোডি গ্রে

@ কোডি গ্রে: ঠিক আছে, 2 টি বাইট যা এনকোড দেয় কোনও নির্দেশের ud2মধ্যে উপস্থিত হতে পারে imm32। আমি এই সম্পর্কে ভাবছিলাম যে বাইটস আপনি এই জাতীয় একটি স্ট্রিংয়ের আগে রাখতে পারেন 0f 0bযা ডিকোডিংয়ের পরিবর্তে আগের নির্দেশের অংশ হিসাবে "গ্রাস" করে ud2। আমি কীভাবে এটি উপস্থাপন শেষ করেছিলাম তা নিয়ে আমি পুরোপুরি খুশি ছিলাম না, তবে আমি কেবল 8 nopটি কেন পর্যাপ্ত নয় এবং 9 nopএস + এর সাথে কী ঘটেছিল তা চিত্রিত করতে চেয়েছিলাম ud2
পিটার

@ কোডি গ্রে: একটি এসএম উত্স প্রোগ্রামটি সম্পূর্ণ আলাদা উত্তর হবে। এতে অ্যাসেমব্লারারের ব্যবহৃত পার্সারটি ত্রুটিযুক্ত করতে হবে, ফল্টিং মেশিন-কোড তৈরি করবে না। সুতরাং %else/ এর মতো কিছু %elseপরাস্ত করতে কাজ করে %if 0যা সাধারণত কোনও অবৈধ পাঠকে পার্স করা থেকে রক্ষা করতে পারে। (সিপিপির উত্তর থেকে ধারণা)
পিটার

বেশ সন্তুষ্ট হয় না। আপনার সমাধানটি কেবলমাত্র ডেটায় থাকতে পারে। (যদিও এটি এটি অসম্ভব করে তোলে)
l4m2

@ l4m2: প্রশ্নটি উত্তরযোগ্য / আকর্ষণীয় করে তুলতে, আমাকে এটিকে মৃত্যুদন্ড কার্যকর করা কোডে সীমাবদ্ধ করতে হয়েছিল (এবং ঝাঁপিয়ে পড়ে না)। আমার উত্তরে বিধি বিধানের বুলেট পয়েন্টগুলি দেখুন। এটি অবশ্যই স্থির ডেটা বাতিল করবে। কারণ তখন এটি কোনও মেশিন কোড নয়, এটি কেবল ডেটা। এই প্রশ্নের মেশিন কোডের উত্তরটি বোঝার জন্য বেশিরভাগের চেয়ে বেশি অভিযোজন প্রয়োজন, কারণ কোনও সংকলন / একত্রিত করার পর্যায়ে নেই যেখানে আপনি পার্সারটিকে ত্রুটি করতে পারেন, আমরা কেবল মেমরিতে ইতিমধ্যে বাইট সম্পর্কে কথা বলছি।
পিটার কর্ডেস

7

সি #, 16 বাইট


*/"
#endif<#@#>

কাজ করে কারণ:

  • // মন্তব্য নতুন লাইনের কারণে কাজ করবে না
  • /* মন্তব্য কারণ কাজ করবে না */
  • আপনার একা কোডে ধ্রুবক থাকতে পারে না
  • #if falseশুরুতে যুক্ত করার কারণে কাজ করবে না#endif
  • "কোন স্ট্রিং আক্ষরিক বন্ধ
  • <#@#>একটি নামহীন নির্দেশ তাই T4 টেমপ্লেটের জন্য ব্যর্থ হয়।
  • নতুন লাইনটি কৌশলগুলি এটি /শুরুতে থাকার সাথে চালিত করবে না*/

প্রতিটি প্রকরণ সংকলন ত্রুটি দিয়ে ব্যর্থ হয়।


1
অদ্ভুত যে আপনি আপনার কোডে টি 4 টেম্পলেট অন্তর্ভুক্ত করার সিদ্ধান্ত নিয়েছেন। টি 4 কে আলাদা ভাষা হিসাবে বিবেচনা করা হয় না?
আর্টুরো টরেস সানচেজ

1
@ আর্টুরো টরেস সানচেজ আমি জানি না যে আমি তাদের সম্পর্কে কখনও শুনিনি। আপনি টি 4 টেমপ্লেটগুলি অন্তর্ভুক্ত করার সময় কেউ এই মন্তব্য করেছিল যাতে এটি কাজ করে না তাই আমি সংশোধন করেছি।
TheLethalCoder

6

APL এবং MATL এবং ফোরট্রান , 3 বাইট


'

নিউলাইন, উদ্ধৃতি, নিউলাইন সর্বদা একটি ত্রুটি ছুড়ে দেয় যেহেতু ব্লক মন্তব্যগুলির অস্তিত্ব নেই:


এটি এমএটিএল-তেও প্রযোজ্য
লুইস মেন্ডো

আমি মনে করি এটি ফোর্টরানেও কাজ করবে।
স্টেডিবক্স

5

সাহিত্যের হাস্কেল , 15 বাইট

একটি রিপেয়ারিং মোছা প্রয়াস nimi দ্বারা।


\end{code}
5
>

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

নিমির আসল প্রয়াসটি শেষ দুটি লাইন, লিটারেট হ্যাস্কেল >শৈলীর সাক্ষর কোডকে একটি পড়ুয়াদের কমেন্ট লাইনে ( 5এখানে) প্রতিবেশী লাইনে থাকতে দেয় না তার উপর ভিত্তি করে । এটি ব্যর্থ হয়েছে কারণ এটি বিকল্প ("ল্যাটেক্স") সাক্ষর কোডিং শৈলীতে একটি মন্তব্যে এম্বেড করা যেতে পারে:

\begin{code}
{-
5
>
-}
\end{code}

যাইহোক, \begin{code}শিক্ষিত Haskell, শৈলী আছে না নীড়, নিজেই কিংবা মধ্যে তন্ন তন্ন {- -}, তাই সঙ্গে একটি লাইন রেখে একাধিক লাইন মন্তব্য \end{code}শুধু সঙ্গে সঙ্গতিপূর্ণ সামনে 5, যে কার্যসংক্রান্ত ব্যর্থ হয়, এবং আমি একটি আলাদা দেখতে না।


4

ফ্রি পাস্কাল, 18 বাইট


*)}{$else}{$else}

প্রথমে সমস্ত সম্ভাব্য মন্তব্য বন্ধ করুন, তারপরে শর্তসাপেক্ষিত সংকলন পরিচালনা করুন।

আমি কিছু ভুলে গেলে দয়া করে এখানে মন্তব্য করুন।


3
@ user902383 আপনার উদাহরণে কি তার স্নিপেটের শীর্ষস্থানীয় নিউলাইন রয়েছে?
ব্রায়ান জে

@ ব্রায়ানজে না, আমি ভেবেছিলাম এটি কেবল ফর্ম্যাট করা ইস্যু, আমার খারাপ
ব্যবহারকারী 902383

আমি মনে করি না এটি ফ্রি পাস্কেলে সম্ভব। শুধু তাদের পরে রাখা begin end.
jimmy23013

@ jimmy23013 তবে মনে হয় end.বৈধ হওয়ার পরে কোডগুলি প্রশ্ন দ্বারা অনুমতিপ্রাপ্ত।
tsh

4

কমোডোর 64 বেসিক, 2 বাইট


B

(এটি "বি" অক্ষরের পরে একটি নতুন লাইন)।

কমোডোর program৪ প্রোগ্রামের যে কোনও লাইনটি একটি লাইন নম্বর বা বেসিক কীওয়ার্ড দিয়ে শুরু হওয়া উচিত এবং সঞ্চিত প্রোগ্রামগুলি কেবল লাইন নম্বরের অনুমতি দেয়। "বি" (বা "এইচ", "জে", "কে", "কিউ", "এক্স", "ওয়াই", বা "জেড") দিয়ে শুরু করে কোনও কীওয়ার্ড নেই।


যদি আমি সংযোজন করি =0তবে এটি কেবল একটি অ্যাসাইনমেন্ট স্টেটমেন্টে পরিণত হয় ...
নীল

1
@ নীল, এটি একটি বৈধ তাত্ক্ষণিক-মোড কমান্ড হবে, তবে কোনও বৈধ প্রোগ্রাম নয়।
চিহ্নিত করুন

4

মস্তিষ্ক-হ্যাক ( মস্তিষ্ক-ফ্ল্যাকের একটি প্রকরণ ), 3 2 বাইট

ব্রেইন-হ্যাক মন্তব্যগুলিকে সমর্থন করে না, আমাকে একটি বাইট সংরক্ষণ করে বলে গম উইজার্ডকে ধন্যবাদ ।

(}

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


মস্তিষ্ক-ফ্ল্যাঙ্কে আপনি কীভাবে মন্তব্য করবেন? আমি সেগুলি করার কোনও উপায় জানি না।
এরিক আউটগল্ফার

@ এরিকথ আউটগল্ফার # টিআইও
রাইলি

হু নথিভুক্ত আচরণ।
এরিক আউটগল্ফার 18

@ এরিকথ আউটগল্ফার আমি সর্বদা ধরে নিয়েছিলাম যে তারা কোথাও নথিভুক্ত হয়েছে। আমি এগুলি যুক্ত দেখব।
রিলে

ব্রেনহ্যাক বা ক্রেনফ্ল্যাকে আপনার নিউলাইন লাগবে না, রেইন-ফ্ল্যাক তিনটি সংস্করণের একমাত্র লাইন মন্তব্য রয়েছে। যদিও ক্রেনফ্লাক ফ্লাইতে পার্স করছে তাই ক্রেণফ্লাক এ সমাধান করা অসম্ভব, কোনও সমাধান প্রিপেন্ডিং দিয়ে মারতে পারে (()){()}
শ্রুতচিলিজম ও'জাইক


3

ভিবিএ, 2 বাইট

একটি আন্ডারস্কোর অনুসারে একটি লাইনফিড - ভিবিএতে _লাইন ধারাবাহিকতা চরিত্র হিসাবে ফাংশনগুলি এবং লাইন ধারাবাহিকতার উপরে সরাসরি বামে বা উপরে কিছু না থাকায় ভিবিএর মাল্টিলাইন মন্তব্যের অভাবের সাথে বোঝানো হয় যে এটি সর্বদা সংকলনটি ফেলে দেবে সময় ত্রুটিCompile Error: Invalid character


_

আপনি আপনার প্যাটার্ন একটি নতুন লাইনে শুরু উপর নির্ভর করে ... সুতরাং, একটি নতুন লাইন যুক্ত করুন।
Deduplicator

@ ডিডুকিপ্লেটারটিতে এরই মধ্যে একটি নতুন লাইন রয়েছে - এটি _কেবল তার অনুসরণ করে যা হয় তা নয় , কেবল বাম দিকে বা তার উপরে কোনও বৈধ লাইন নেই
টেলর স্কট

এটা ভালো এমবেড করা হয় তাহলে কি: myfunction( \n_ )?
Deduplicator

@ ডিডুকিপেটর রেখার ধারাবাহিকতা অক্ষরটি অবশ্যই একই লাইনে থাকতে হবে যেমনটি Public Function Foo( ByVal bar as Integer, _ (নতুন লাইন) চলছে bas as long) as double- তাই হ্যাঁ, আপনি বর্ণিত ফাংশনটি যদি কল করেন তবে এটির একটি ত্রুটি ঘটবে
টেলর স্কট

ঠিক আছে, এই ক্ষেত্রে এটি আরও পছন্দ myfunction( _ \n_ )। বিভ্রান্তির জন্য দুঃখিত. এটি অন্যভাবে বলতে গেলে আপনার দুটি নতুন লাইন ব্যবহার করা উচিত ছিল।
Deduplicator

3

স্মাইলব্যাসিক, 2 বাইট


!

কোনও লাইনের শেষের পরে কিছুই চলতে পারে না, সুতরাং আপনার যা দরকার তা হ'ল একটি লাইন বিরতি যার পরে কোনও বিবৃতি শুরু করা যায় না। !লজিকালটি অপারেটর নয়, তবে আপনাকে কোনও অভিব্যক্তির ফলাফল উপেক্ষা করার অনুমতি নেই, সুতরাং এর মতো কিছু !10অবৈধও থাকবে ( X=!10অবশ্যই কাজ করার সময় )

অনুরূপ জিনিসগুলি যে কোনও ভাষায় কাজ করবে যেখানে প্রতিটি লাইনের শেষে শেষ হয় যতক্ষণ না এটি কার্যকর করার আগে কোডটিকে বিশ্লেষণ করে।

এখানে প্রচুর বিকল্প চরিত্র ব্যবহার করা যেতে পারে, সুতরাং আমি মনে করি যে এগুলি বৈধ হতে পারে তার তালিকা করা আরও আকর্ষণীয় হবে।

@একটি লেবেলের শুরু, উদাহরণস্বরূপ @DATA; (কোনও অভিব্যক্তির অংশ হতে পারে (X)=1যা কোনও কারণে অনুমোদিত; কোনও চিঠি বা _একটি চলক নাম X=1, ফাংশন কল LOCATE 10,2, বা কীওয়ার্ড হতে পারে WHILE 1; 'একটি মন্তব্য; এবং এর ?জন্য সংক্ষিপ্ত PRINT


ওহ, কোনও কারণে যখন আমি পোস্টটি সম্পাদনা করেছি তখন এটি নকল হয়ে গিয়েছিল ...
12

3

ইন্টারকল , 12 বাইট

DOTRYAGAINDO

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

সিনট্যাক্স ত্রুটিগুলির জন্য ইন্টারকলের দৃষ্টিভঙ্গি কিছুটা বিশেষ। মূলত, প্রোগ্রামটি কার্যকর করার চেষ্টা না করে একটি অবৈধ বিবৃতি আসলে ত্রুটি করবে না। প্রকৃতপক্ষে, মন্তব্যগুলির জন্য আইডিয়োমেটিক সিনট্যাক্সটি তাদের দিয়ে শুরু করা হয় PLEASE NOTE, যা সত্যই একটি বিবৃতি শুরু করে, ঘোষণা করে যে এটি কার্যকর করা হবে না, এবং তারপরে এটি চিঠিটি দিয়ে শুরু করে E। যদি আপনার DODOকোডটির মাঝখানে থাকে তবে আপনি DOABSTAINFROM(1)(1)কোনও বৈধ বিবৃতিটি প্রান্তে আটকে DODODOদিতে পারবেন এবং আপনি ঠিক হয়ে যাবেন, যদি আপনি কেবল তার চারপাশে কার্যকরভাবে বাঁকতে পারেন (1)DON'TDODODOCOMEFROM(1)। যদিও ইন্টারকলের এড়ানোর জন্য স্ট্রিং আক্ষরিক সিনট্যাক্সের অভাব রয়েছে, অবৈধ স্ট্রিং তৈরি করতে সিনট্যাক্স ত্রুটি ব্যবহার করার কোনও উপায় নেই, এমনকি প্রতিটি সম্ভাব্য লাইন নম্বরও ক্লান্ত করে দেওয়া(1)DO(2)DO...(65535)DODODO, যেহেতু দেখে মনে হচ্ছে যে COME FROMকারও সাথে কাজ করার সাথে সদৃশ লাইন নম্বরগুলি পাওয়া সম্ভব ।

একটি অবৈধ স্ট্রিং করতে, আমরা আসলে একটি পুরোপুরি বৈধ স্টেটমেন্ট ব্যবহার করা প্রয়োজন: TRY AGAIN। এমনকি যদি এটি কার্যকর করা না হয় তবে কোনও প্রোগ্রামে এটি যদি একেবারেই থাকে তবে এটি অবশ্যই কঠোরভাবে শেষ প্রোগ্রাম হতে হবে। 12 বাইটটি আমার জ্ঞানের কাছে হ'ল সংক্ষিপ্ততম কোনও অবৈধ স্ট্রিংটি ব্যবহার করতে পারে TRY AGAIN, কারণ এটির গ্যারান্টি দেওয়া দরকার যে এটির পরে একটি বিবৃতি রয়েছে (মৃত্যুদন্ড কার্যকর করা হয় না) তাই DOTRYAGAINকেবল সাধারণ কোড, এবং এটি নিশ্চিত হওয়া দরকার যে পুরো বিবৃতিটি প্রকৃতপক্ষে TRY AGAIN, তাই TRYAGAINDOএটি কাজ করে না কারণ এটি সহজেই একটি উপেক্ষিত, সাধারণ বাক্য গঠন ত্রুটিতে রূপান্তরিত হতে পারে: DON'TRYAGAINDOGIVEUPবা PLEASE DO NOT TRY TO USE TRYAGAINDO NOT THAT IT WOULD WORK। কোন ব্যাপার কি উভয় দিকে করা DOTRYAGAINDO, হয় আপনি সঙ্গে, ত্রুটি করব ICL993I I GAVE UP LONG AGO, ICL079I PROGRAMMER IS INSUFFICIENTLY POLITEঅথবা ICL099I PROGRAMMER IS OVERLY POLITE


আরও কয়েকটি সংকলন-সময় ত্রুটি থাকতে পারে যা আগে গুলি চালাতে পারে ICL993I I GAVE UP LONG AGO
অসম্পূর্ণ স্ট্রিং

যদি প্রতিটি লাইন লেবেল ব্যবহার করার সময় আপনি প্রতিটি লাইন লেবেল ব্যবহার করেন COME FROMতবে ব্লকের চারপাশে নিয়ন্ত্রণ প্রবাহকে অন্যদিকে ফিরিয়ে আনা কিছুটা কঠিন হতে পারে তবে আপনাকে কেবল থামানো থেকে বিরত থাকার কিছুই নেই GIVING UP!
অপ্রকাশিত স্ট্রিং

3

এডাব্লু কে , 4 বাইট



/

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

যেহেতু AWKমাল্টি-লাইন মন্তব্য করার কোনও পদ্ধতি নেই, তাই মন্তব্য /মন্তব্য করা বা এটিকে একটি রেজেক্সে রূপান্তর করতে বাধা দেওয়ার জন্য 2 এর আগে এবং 1 এর আগে 2 টি নতুন লাইন প্রয়োজন , যেমন অ্যাড 1/। সর্বাধিক সাধারণ বার্তা হ'ল অপ্রত্যাশিত নিউলাইন বা স্ট্রিংয়ের শেষ।

আগের ফাটল সহ


2

ফরট্রান, 14 বাইট


end program
e

ফরট্রানে কোনও মাল্টলাইন মন্তব্য বা প্রাক প্রসেসর নির্দেশিকা নেই।


1
অনলাইনে এটি পরীক্ষা করার কোনও ভাল উপায় আছে কি? এছাড়াও, ফোর্টরানের কোন সংস্করণ / সংকলক?
রবার্ট বেনসন

2

জাভাস্ক্রিপ্ট (নোড.জেএস) , 9 8 বাইট

`*/
\u`~

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

আমি মনে করি এটি পর্যাপ্ত অবৈধ হওয়া উচিত।

পূর্ববর্তী জেএস অন্যান্য উত্তরের চেষ্টা করে

; * / \ প)

@ গায়েদের কোচ

একটি ES5 উত্তর হিসাবে এটি বৈধ হওয়া উচিত, তবে ES6 এ কোডটি একজোড়া ব্যাকটিক্সের সাথে মোড়ক করে এটি ক্ষয় করে। ফলস্বরূপ বৈধ ES6 উত্তরগুলিতে অবশ্যই ব্যাকটিক্স জড়িত থাকতে হবে।

`
`* /} '" `\ তোমার দর্শন লগ করা!

@ আইভয়েড দ্বারা

এটি ব্যাকটিক্স জড়িত একটি উন্নত সংস্করণ। তবে /কোডটি ভেঙে যাওয়ার পরে একটি একক (এটি একটি টেমপ্লেট আক্ষরিক হয়ে উঠল একটি রেজেক্স দ্বারা গুণিত হয়, অকেজো তবে সিনট্যাকটিক্যালি বৈধ হয় e) @ নীল একটি পরামর্শ দিয়েছেন যা পরিবর্তিত !হয় )। এটি তাত্ত্বিকভাবে কাজ করা উচিত কারণ /শেষে যুক্ত করা আর কাজ করে না (ত্রুটিযুক্ত রেজেক্সের কারণে))

ব্যাখ্যা

`*/
\u`~

এটি নিজেই অবৈধ, এবং সমস্ত একক এবং দ্বৈত উদ্ধৃতিগুলিকেও অবরুদ্ধ করে কারণ এই উক্তাগুলি \একটি লাইনের শেষে ছাড়া লাইন জুড়ে বিস্তৃত হতে পারে না

//`*/
\u`~

এবং

/*`*/
\u`~

অবৈধভাবে পালানোর ক্রমগুলি প্রবর্তন করে মন্তব্যগুলিকে ব্লক করে ocks

``*/
\u`~

অবসানহীন RegExp আক্ষরিক পরিচয় করিয়ে প্রাথমিক ব্যাকটিক ব্লক করে

console.log`*/
\u`~

দুটি ব্যাকটিকের মধ্যে একটি প্রত্যাশিত অপারেটর প্রবর্তন করে ব্লকগুলি ট্যাগ টেম্পলেট লিটারালগুলি


2

রকস্টার , 4 5 বাইট

ক্রস করা 4 এখনও 4 :(

)
"""

রকস্টার একটি খুব ... শব্দযুক্ত ভাষা।
যদিও "যেমন একটি স্ট্রিং, সংজ্ঞায়িত করতে ব্যবহার করা যেতে পারে Put "Hello" into myVar, আমার জ্ঞান আছে 3 কোট একটি মন্তব্য বাইরে উপস্থিত হওয়ার জন্য কোন উপায় নেই, এবং বন্ধ paren নিশ্চিত করে যে ঘটবে না হয় (রকস্টার মন্তব্য মতো বন্ধনীর মধ্যে ঘিরা হয় এই).

রকস্টারের একটি কাব্যিক আক্ষরিক বাক্য গঠনও রয়েছে, যেখানে বিরামচিহ্নগুলি উপেক্ষা করা হয়, সুতরাং নতুন লাইনটি নিশ্চিত করে যে 3 টি উদ্ধৃতি কোডের একটি রেখার সূচনা, যা সর্বদা অবৈধ হওয়া উচিত


কি (()""")হবে, যে কোনও অপ-বিকল্প হবে না?
ბიმო

@ বিএমও প্রথম পেরেন একটি মন্তব্য খোলেন, ২ য় পেরেন মন্তব্য করার কারণে কিছুই করেন না, তৃতীয় পেরেন মন্তব্যটি বন্ধ করে দেন, তারপরে আপনাকে """)কোড হিসাবে
বিভক্ত করা হয়েছে

হুম, নেস্টেড মন্তব্যগুলি চশমাগুলিতে নেই। মন্তব্যগুলি যাইহোক নিরুৎসাহিত বলে মনে হচ্ছে। তবে আপনি কাব্যিক স্ট্রিং লিটারালগুলি পর্যবেক্ষণ করেছেন যা কোনও স্ট্রিংকে অনুমতি দেয় তাই Goethe says )"""বৈধ
ბიმო

@ বিএমও পয়েন্টটি, নতুন লাইনের অভ্যন্তরীন )"""
প্রবেশদ্বার

2

পাওয়ারশেল, 10 8 12 14 13 14 16 বাইট

-2 বাইট ধন্যবাদ এটি ভাঙ্গার আরও ভাল উপায় খুঁজে পাওয়ার জন্য
ধন্যবাদ +4 -1 বাইটস আইসটিগ্রিওরগ্রিকে ধন্যবাদ

$#>
'@';
"@";
@=

আশা করি এটি কাজ করবে. 'এবং "কোট বিরুদ্ধে সতর্ক, #>ব্লক-মন্তব্য বিরতি, নতুন লাইন একক লাইন মন্তব্য বন্ধ করতে উভয় '@এবং "@স্ট্রিং অন্য শৈলী ধরা, এবং তারপর একটি বাক্য গঠন ত্রুটি নিক্ষেপ করা একটি অপ্রকৃত অ্যারের শুরু হয়।

যুক্তিযুক্ত যেহেতু তারা প্রবেশের জন্য কোটগুলির সেট ব্যবহার করতে পারে না, তারা এটি ব্লক-মন্তব্য করতে পারে না, যদি @"এটি ব্যবহার করা হয় তবে এটি এখানে একটি স্ট্রিং তৈরি করবে যার পরে টোকেন থাকতে পারে না, এবং যদি তারা এটিকে একা ছেড়ে দিন, এটি একটি ভাঙা অ্যারে করার চেষ্টা করবে। এই বিবৃতিটি এত শক্তভাবে বাঁচতে চায়, আমি বর্মটিতে আরও বেশি ছিদ্র খুঁজে পাই।


1
বা সুরক্ষাকারী +@=
মজজি

1
@IsItGreyOrGray AAAAAAAAAAAAW হ্যাক he
ভেসকাঃ

2
দেখে মনে হচ্ছে যে এটি #> থেকে $ #> এ পরিবর্তন করা "সেমিডলেট এর নাম হিসাবে স্বীকৃত নয় ..." হিসাবে এটি ভেঙে যাবে এটি আবার কোনওভাবে আইনী হয়ে উঠতে পারে, তবে আমার কোনও উপায় নেই। এখনো. :)
গ্রেইর গ্রে

1
@ আইসআইটগ্রিওগ্রিগ সোনাফাগুন। এখন আধা কোলন বর্ম বৈশিষ্ট্যযুক্ত?
ভেস্কাহ

1
নিস! আমি কিছুই পেলাম না। আমি চেষ্টা করেছিলাম সব ব্যর্থ হয়েছে।
গ্রেইরগ্রি

2

রুনিক এনেক্যান্টমেন্টস, 3 বাইট

অনেকগুলি সম্ভাব্য প্রকরণের মধ্যে একটি।

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

রুনিক একটি "ইউনিকোডের অক্ষরগুলির সংমিশ্রণ" " Mআচরণের পরিবর্তন করে C" (যেখানে Cএকটি আদেশ রয়েছে) ব্যবহার করে। সেই হিসাবে, কোনও দুটি সংশোধককে একই কমান্ডটি সংশোধন করার অনুমতি নেই এবং পার্সার যদি এরকম কোনও ঘটনা খুঁজে পাওয়া যায় তবে ত্রুটি ছুঁড়ে ফেলবে।

একইভাবে, নির্দিষ্ট আদেশগুলি যা আইপি পুনঃনির্দেশিত করে কোনওভাবেই সংশোধন করা যায় না, দিকনির্দেশক সংশোধক অক্ষরগুলির অস্তিত্বের কারণে (এবং একই ঘরে উভয়ই বোঝায় না)।

স্ট্রিংটিকে বৈধ করে তোলার কোনও উপায় বা আক্ষরিক-আইজ নেই। টিও লিঙ্কটিতে ;উচ্চ-অগ্রাধিকার "কোনও টার্মিনেটর নয়" ত্রুটিটি বাইপাস করার জন্য একটি রয়েছে ।


2

টিআই-বেসিক (83 + / 84 + / এসই, 24500 বাইট)

A

(24500 বার)

টিআই (-83 + / 84 + / এসই)-বেসিক কেবল পৌঁছনো বিবৃতিতে সিনট্যাক্স চেক করে না, তাই একক Endসারিতে 5000 টি স্টেটমেন্টও একটি দিয়ে এড়িয়ে যেতে পারে Return। এটি বিপরীতে, একটি TI-83 + / 84 + / SE এর র্যামের সাথে ফিট করতে পারে না, সুতরাং কোনও প্রোগ্রাম এই স্ট্রিংটি ধারণ করতে পারে না। চরিত্রের গণনাটি এখানে কিছুটা রক্ষণশীল হওয়া।

আসল টিআই -83 এর র‌্যামের 27000 বাইট রয়েছে, সুতরাং আপনার Aক্ষেত্রে 27500 এস প্রয়োজন ।

টিআই-বেসিক (89 / টিআই / 92 + / ভি 200, 3 বাইট)

"

নিউলাইন, উদ্ধৃতি, নিউলাইন। নিউলাইনটি কোনও মন্তব্য বন্ধ করে (এবং স্ট্রাইকটিতে অবৈধ চরিত্রটি এম্বেড করা নিষেধ করে, যেহেতু আফাইক মাল্টলাইন স্ট্রিং ধ্রুবকগুলিকে অনুমতি দেওয়া হয় না), অন্য নতুন লাইনটি স্ট্রিংটি বন্ধ করার অনুমতি দেয় না, এবং উদ্ধৃতিটি একটি বাক্য গঠন ত্রুটি দেয়।

আপনি 2 বাইট সঙ্গে পেতে পারেন

±

নিউলাইন ছাড়া, তবে আমি নিশ্চিত না যে এটি গণনা করা হয়েছে কারণ ±কেবল স্ট্রিং ধ্রুবকগুলিতে বৈধ।


সম্পন্ন, ধন্যবাদ :)
bb94

2

যান , 6 বাইট


*/```

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

গ্রাভ অ্যাকসেন্ট (`) একটি কাঁচা স্ট্রিং আক্ষরিক চিহ্নিত করে, যার ভিতরে নিউলাইনস এবং ব্যাকস্ল্যাশ সহ except ব্যতীত সমস্ত অক্ষর অক্ষরে অক্ষরে স্ট্রিংয়ের অংশ হিসাবে ব্যাখ্যা করা হয়। তিন `একটি সারিতে এর কোর আছেন: সংলগ্ন স্ট্রিং লিটারেল অবৈধ এবং` সবসময় একটি প্রচেষ্টা ` স্ট্রিং, তাই তাদের জানার কোনো উপায় নেই। প্রতিরোধ বিরোধী জন্য আমাকে আরও 3 বাইট ব্যবহার করতে হয়েছিল, একটি নিউলাইন যাতে আমরা একটি একক-লাইনের মন্তব্য বা একটি সাধারণ উদ্ধৃত স্ট্রিংয়ের ভিতরে থাকতে পারি না, এবং একটি * / যাতে আমরা বহু-লাইনের মন্তব্যে থাকতে পারি না।


1

সিলোস , 4 বাইট

সিলোস প্রতিযোগিতামূলক \ o /


x+

SILOS একটি দুটি পাস দোভাষী / সংকলক চালায়। মৃত্যুদন্ড কার্যকর করার পূর্বে একটি "সংকলক" উত্সটিকে সরাইতে একটি অ্যারেতে সরল করার চেষ্টা করে যা প্রতিটি লাইন পৃথকভাবে চিকিত্সা করে। এক্স + এ হ'ল একটি অ্যাসাইনমেন্ট অপারেটর যা এক্স এর মানতে ইএ যোগ করবে এবং এটি এক্সে সংরক্ষণ করবে। তবে "সংকলক" ব্রেক হবে। অতএব, আমরা এই স্ট্রিংটি নিয়েছি এবং এটির নিজের লাইনে রয়েছে তা নিশ্চিত করার আগে এবং পরে একটি নতুন লাইন যুক্ত করি এবং সংকলকটি ভেঙে দেয়।

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


ax+ত্রুটি কেন বের হচ্ছে না ?
এরিক আউটগল্ফার

অনির্ধারিত কম্পাইলার আচরণ @EriktheOutgolfer
রোহান Jhunjhunwala

1

অটোহটকি , 5 বাইট

the হ'ল পালানোর চরিত্র। কোনও ভেরিয়েবলকে নির্ধারণের সময় আপনি কেবল "পালাতে পারবেন।

\ n * / এটিকে মন্তব্য করা বা কোনও ভেরিয়েবলের কাছে নিযুক্ত করা থেকে বাধা দেয়।


*/`"

1

জাভাস্ক্রিপ্ট, 11 টি অক্ষর

`
`*/}'"`\u)

ব্যাকটিকগুলি টেমপ্লেট স্ট্রিংগুলি মেরে ফেলার বিষয়টি নিশ্চিত করে, উদ্ধৃতিগুলি স্ট্রিংগুলি থেকে মুক্তি পায়, নিউলাইন মন্তব্য করা লাইনগুলি এড়ায়, মন্তব্যের সমাপ্তি ব্লক করা মন্তব্যগুলি এড়ায় এবং শেষ ব্যাকটিক এবং পলায়ন (একটি সংখ্যায় সংযোজন এড়ানোর জন্য) একটি অবৈধ শুরু করার চেষ্টা করুন স্ট্রিং।

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



ES5 উত্তর এর )পরেও ব্যবহৃত হয়েছিল \u, সম্ভবত এটি এখানে কাজ করবে?
নিল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.