চ্যালেঞ্জ: কোডের একটি টুকরো লিখুন যা নিজেকে ছেড়ে দেয় [বন্ধ]


39

আমি একদম কোডের জন্য অনুসন্ধান করছি (আমি?) যা অবিলম্বে প্রস্থান করে - একেবারেই অপ্রচলিত উপায়ে।

এর অর্থ এই নয়: System.exit((int) 'A');(জাভা)।

এর অর্থ হতে পারে:

#!/usr/bin/env python3
# NOTE: This kills ALL RUNNING Python processes. Be careful!
def exit():
    import os
    os.system("killall python3")
    # Windows addon
    os.system("taskkill /im python.exe /f")
exit()

সর্বাধিক উত্সাহিত উত্তর জয়! সমস্ত ভাষা, সমস্ত আর্কিটেকচার।

সম্পাদনা করুন: ব্যতিক্রম ছুঁড়ে ফেলে দেওয়া আর মেনে নেওয়া হবে না!


3
তবে মৃত্যুদন্ডের অবসান ঘটানোর জন্য এটি প্রচলিত নয় ... ঠিক আছে, এটি বিকল্প exit(), তবে এটি একটি বাস্তবায়িত বৈশিষ্ট্য ...
s3lph

13
এটি কোড-ট্রোলিং নয় - আমরা জানি আমরা এটির কাছ থেকে অদ্ভুত উত্তর চাই।
লিয়াম ডসন

6
সিস্টেম বন্ধ করে দেওয়া কি কাজ করে না?
হোশেচ 250

8
অপারেটিং সিস্টেমের মাধ্যমে আমি একবার দুর্ঘটনাক্রমে ডিএমএতে একটি নেটওয়ার্ক কার্ড তৈরি করেছিলাম। যখন এটি ঘটেছিল আপনি তাত্ক্ষণিকভাবে BIOS এ ফিরে এসেছিলেন, পুনরায় চালাবেন।
বেন জ্যাকসন

3
আমার মনে হচ্ছে শানন এখানে আমাদের পরাজিত করেছে;)
উজ্জ্বল-তারকা

উত্তর:


44

বাশ, 6 টি অক্ষর

exec [

execবর্তমান প্রক্রিয়াটিকে অন্য কিছু দিয়ে প্রতিস্থাপন করে। [সবচেয়ে ক্ষুদ্রতম আদেশটি আমি দেখতে পেলাম যে এটি নির্দোষ নয় (এটির একটি নাম test)


অন্য একটি ব্যতিক্রম?
জোহানেস কুহান

না, কেবল exec' [কমান্ডটি যুক্ত করা হচ্ছে :)
ডেনিস কার্সেমেকার

1
এটা কেন কাজ করছে? কি করতে চাচ্ছ?
s3lph

@ থেপ্পি এটি বর্তমান প্রক্রিয়াটির পরিবর্তে [(ওরফে পরীক্ষা)
টিমটেক

~ $ echo $PATH/?-> /bin/X /bin/[ /bin/w। ফিশ শেল আমাকে আরও দুটি কমান্ড দিয়েছে। wআমার মতে আকর্ষণীয়।
কনরাড বোরোস্কি

46

সজোরে আঘাত

echo "Turn off your computer or i'll wipe your harddrive..."
echo 3;sleep 1
echo 2;sleep 1
echo 1;sleep 1
dd if=/dev/random of=/dev/hda

ব্যবহারকারী যত তাড়াতাড়ি প্রতিক্রিয়া জানাতে পারে তত দ্রুত প্রোগ্রামটি বন্ধ করে দেয় ;-)


10
উত্সাহ দেওয়া কারণ এটি আমাকে হাসায়।
মাইকেল স্টারন

5
এটি লিনাক্সে চালাবেন না।
কেনারব

1
ডিডি: / দেব / এইচডি: পাওয়া যায় নি
জোশুয়া

39

Redcode

(পটভূমি: রেডকোড হ'ল সিউডো-এসেম্বলি ভাষা যা এ কে দেউডনি 1984 সালে প্রবর্তিত কোর ওয়ার প্রোগ্রামিং গেমটিতে ব্যবহৃত হয় । এটি সাধারণত স্ব-পরিবর্তনকারী কোডের ভারী ব্যবহার করে। বেশ কয়েক বছর আগে আমি রেডকোড প্রোগ্রামিংয়ের একটি সুন্দর ছোট টিউটোরিয়াল লিখেছিলাম । )

MOV 1, 0

এই একক-নির্দেশাবলী প্রোগ্রামটি কেবল নিজেকেই হত্যা করে না, মেমরি থেকে নিজের প্রোগ্রাম কোডও মুছে দেয়, স্মৃতিতে নিজের কোনও চিহ্ন রাখে না।

বিরক্তিকর, আপনি বলেন? সর্বোপরি, উপরের প্রোগ্রামটি যেভাবেই মারা যাবে, এমনকি যদি এটি এর কোডটি ওভাররাইট না করে। ঠিক আছে, এখানে এমন একটি যা অবশেষে নিজেকে মুছা এবং মারা যাওয়ার আগে পুরো কোরটিকে পরিষ্কার করে দেয়:

loop: MOV  ptr+1, >ptr 
      JMN  loop, loop
      SPL  1
      SPL  1
      MOV  ptr+1, >ptr
ptr:  DAT  0, 1

প্রথম দুটি নির্দেশাবলী আসলে বেশিরভাগ কাজ করে: এটি কেবলমাত্র একটি সাধারণ অনুলিপি / জাম্প লুপ যা ফাঁকা নির্দেশিকা সেলটি (যা প্রাথমিককরণ করা হয় DAT 0, 0) প্রতিটি পরবর্তী কক্ষে প্রোগ্রামের পরে (পোস্ট-ইনক্রিমেন্ট পরোক্ষ প্রত্যক্ষ ঠিকানা মোড ব্যবহার করে) অনুলিপি করে ies >), অবধি পয়েন্টার অবশেষে মেমরির শুরুতে প্রায় MOVগুটিয়ে যায় এবং লুপটিতে নিজেই ওভাররাইট করে rit এটি হয়ে গেলে, JMN(জিউএমপি যদি শূন্য না হয়) এটি সনাক্ত করে এবং এর মধ্যে পড়ে।

সমস্যাটি হ'ল এটি এখনও JMNনিজেকে অচিহ্নিত করে। এটি পরিত্রাণ পেতে, আমরা অন্য প্রয়োজন MOVমুছা JMN... কিন্তু তার মানে আমরা এখনও অন্য দরকার MOVমুছা যে MOV , ইত্যাদি। পুরো প্রোগ্রামটি কোনও চিহ্ন ছাড়াই অদৃশ্য হয়ে যাওয়ার জন্য, আমাদের নিজের এবং কমপক্ষে অন্য একটি নির্দেশ উভয়ইMOV মুছতে কোনও একক নির্দেশের ব্যবস্থা করতে হবে।

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

এই সমস্তটির ফলশ্রুতিটি হ'ল দুটি SPL 1নির্দেশ কার্যকর করার পরে, সারিটিতে এখন চারটি প্রক্রিয়া রয়েছে, শেষেরটি কার্যকর করা সম্পর্কে MOV। এটি JMNউভয় SPLএবং MOVনিজেই মুছতে যথেষ্ট , এবং এটি চারপাশের খালি কোর থেকে পৃথক পৃথক - ptrনির্দেশ কক্ষকেও ছেড়ে দেয় DAT 0, 0

(বিকল্পভাবে, আমরা সেই ptrনির্দেশাবলীর সাথে প্রতিস্থাপন করতে পারতাম MOV 1, 1, যা MOV 1, 0পূর্ববর্তী নির্দেশাবলীতে রূপান্তরিত হত এবং তাই উপরের প্রথম প্রোগ্রামের মতোই নিজেকে মুছে ফেলতে পারে))

গীত। আপনি যদি এই প্রোগ্রামটি পরীক্ষা করতে চান তবে একটি রেডকোড সিমুলেটর (ওরফে এমএআরএস ) ডাউনলোড করুন । আমি কোয়ারউইন বা শ্রদ্ধেয় পিএমআরএস উভয়েরই সুপারিশ করব , যদিও আরও বেশ কয়েকটি ভাল সিমুলেটর রয়েছে।


এটি কি কেবল অ্যাক্সেস লঙ্ঘন ছুঁড়ে ফেলবে?
ড্যানি ভারোড

12
অ্যাক্সেস লঙ্ঘন? কি আশ্চর্য জিনিস এটি? (। আসলেই Redcode একটি প্রশংসনীয় বিমূর্ত VM- র রান সকল অ্যাড্রেসিং আপেক্ষিক, অ্যাড্রেস স্পেস সংলগ্ন (এবং আবর্তনশীল) এবং যে ঠিকানা বৈধ।)
Ilmari Karonen

MOV 1, 0 ঠিকানা 0 বা অন্য উপায়ে অনুলিপি করে 1? সমস্ত জমায়েত ভাষায় আমি জানি ঠিকানা 0 অবৈধ (NULL ঠিকানা)।
ড্যানি ভারোড

4
বাক্য গঠনটি হ'ল MOV source, dest। তবে আমি যেমন বলেছি, রেডকোডে সমস্ত ঠিকানা আপেক্ষিক, সুতরাং ঠিকানার 0অর্থ আসলে "এই নির্দেশের ঠিকানা", তবে ঠিকানাটির 1অর্থ "এই নির্দেশের ঠিকানা +1" means (এবং নিখুঁত ঠিকানা 0 কোনওভাবেই রেডকোডে বিশেষ নয়; বাস্তবে, "সমস্ত আপেক্ষিক সম্বোধন" নকশার একটি আকর্ষণীয় পরিণতি হ'ল মূলত একটি রেডকোড প্রোগ্রামটির নিজের সম্পূর্ণ নিখুঁত ঠিকানা খুঁজে পাওয়া অসম্ভব ! )
ইলমারি করোনেন

2
ম্যান, আমি আপনার প্রতি অনেক কৃতজ্ঞ। কোর ওয়ারের কথা আমি কখনও শুনিনি।
seequ

32

সি

#include <conio.h>  /* Computer-Operated Nuclear Installation Options */
int main () {
    clrscr();       /* Commence Launch (Remote Systems Console Request) */
    kbhit();        /* Keep Busy until hit */
}

মনে রাখবেন যে এটি পোর্টেবল কোড নয়। এটি এআরটি ডিএস9000 এ জেডওজি সি নিয়ে কাজ করে । আমি বিশ্বাস করি যে প্রচলিত অস্ত্র ব্যবহার এই চ্যালেঞ্জের জন্য এই কোডটিকে যোগ্য করে তোলে । আপনি যদি উদ্বিগ্ন হন যে এই কোডটির টুকরোটির পেডলোডটি সরবরাহ করতে যে বিলম্ব হয়, তা অবিলম্বে যোগ্যতা অর্জন করে না , পূর্ববর্তী স্ট্রাইক সম্পর্কিত পরামর্শের জন্য আমাদের সাথে যোগাযোগ করুন।

প্রবর্তনের প্রভাব

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


2
সেরা উত্তর, হাত নিচে!
ভেক্টর

3
+1। (0) 1; প্রথমে, আমি মনে @Gilles এখানে trolling করা হয় ... কিন্তু তারপর আমি শৈল্পিক ইনক ওয়েবপেজ চেক করা ... এবং এটি ছিল তারপর যখন আমি বুঝতে কিভাবে প্রচন্ডভাবে আমি trolled হয়!
ভ্যাক্সকুইস


28

সি শার্প

নিজেই প্রতিটি প্রক্রিয়া মেরে হত্যা করে।

foreach (Process p in Process.GetProcesses()) {
    string myexe = Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
    if (p.ProcessName == myexe) continue;
    p.Kill();
}

এটি একটু মশালার জন্য আমরা TerminateProcessব্যবহারের পরিবর্তে পিনভোক করতে পারিProcess.Kill


4
অন্য প্রতিটি জিনিসকে হত্যার খুব অপ্রচলিত পদ্ধতির জন্য +1, সুতরাং আপনার নিজের প্রোগ্রামটি সিস্টেমের সাথে নেমে আসবে (বা কমপক্ষে, আমি ধারণা করি যে এটি?)। এই মেশিনে আমার কাছে সি # রানটাইম নেই, তবে আমাকে জিজ্ঞাসা করতে হবে ... বাস্তবে, এটি কি সিস্টেমটি নিচে নেবে বা কেবল সমস্ত চলমান প্রক্রিয়া শেষ করবে? (আমি ভেবেছিলাম সি # প্রোগ্রামগুলি দোভাষীকে তাদের কাছে ডেকেছে, সুতরাং এটি কোনও নির্দিষ্ট জেআইটি / সিআইএল প্রক্রিয়াটির অস্তিত্বের উপর নির্ভর করে না ...)। আবার, মহান পেশা চিন্তা এই এক :) উপর (হর হর) 'বক্সের বাইরে'
সাফল্যদায়ক

4
-1 (যদি আমার কাছে প্রতিনিধি থাকে): কোড ট্রোলিংয়ের মেটা বলে যে লোকেরা তাদের নিজস্ব মেশিনে চেষ্টা করার ঝুঁকির কারণে ধ্বংসাত্মক উত্তরগুলির অনুমতি দেওয়া হয় না। বিধিনিষেধের তালিকার দ্বিতীয় বুলেটটি দেখুন: কোডগলফ.স্ট্যাকেক্সেঞ্জ
কেভিন - মনিকা

প্রশাসনিক অধিকার ব্যতীত সিস্টেম প্রক্রিয়াগুলি হত্যা করা যায় না, তাই না?
সার্জে বোর্শ

3
@ কেভিন কোড-চ্যালেঞ্জ এবং কোড- ট্রোলিং বিভিন্ন বিধি সহ আলাদা ট্যাগ।
osvein

3
@ ব্যবহারকারী1981338: প্রশ্নটিতে মূলত কোড-ট্রোলিং ট্যাগ ছিল, তবে এটি সম্পাদিত হয়েছে। ট্যাগটি এখন চলে গেছে, +1।
কেভিন - মনিকা

21

BASH - 12 টি অক্ষর

:(){ :|:&};:

ক্লাসিক কাঁটাচামচ। কম্পিউটার লক করে এবং ব্যবহারকারীকে (বা প্রশাসক) পুনরায় বুট করতে বাধ্য করে।


5
বিরক্তিকর - তবে এখনও আমার ব্যক্তিগত প্রিয়। আমি লাইভ সিস্টেমগুলি বন্ধ করতে এটি ব্যবহার করি
s3lph

3
এটি যতবার সম্ভব নিজেকে শুরু করে, এটি ছাড়ছে না।
মেরিনাস

1
কম্পিউটারটি ক্র্যাশ না হওয়া পর্যন্ত এটি যতটা সম্ভব প্রক্রিয়া শুরু করবে এবং সুতরাং প্রোগ্রামটি
ছাড়বে না

14
+1 যেমন :():|
স্মাইলি

1
@ কার্তিক: প্রথম স্থান ব্যতীত আপনি একটি বাক্য গঠন ত্রুটি পাবেন। আপনি দ্বিতীয়টি মুছে ফেলতে পারেন।
ডেনিস

20

পাইথন (পুরানো ল্যাপটপে)

একক কোর প্রসেসর এবং খারাপ শীতল সহ পুরানো ল্যাপটপে:

while True:
    print("CPU Temperature rising")

যখন ল্যাপটপ কয়েক ঘন্টা পরে বিস্ফোরিত হয় (বা কেবল স্যুইচ অফ), প্রোগ্রামটি চলবে না।

(সেরা ফলাফলের জন্য, কম্বল বা কোনও কিছুর মধ্যে ল্যাপটপটি জড়ান)


18

চুনি

kill* নিক্সে চলমান রুবি / আইআরবি প্রক্রিয়া।

`kill #{$$}`

2
আমি এই এক এর কমনীয়তা পছন্দ। +1
ডোরকনবব

18

অ্যাপল 2 বেসিক

1 PRINT "HELLO"
2 POKE 2053,128
3 POKE 2054,58
4 GOTO 1

এটি এর সাথে একটি নির্দেশকে ওভাররাইট করে END


কিভাবে এই এক কাজ করে?
জোহানেস

5
@ জোহানেস: অ্যাপলসফট বেসিকে, প্রোগ্রামটি স্মৃতিতে টোকানযুক্ত আকারে সংরক্ষণ করা হয়। কোনও ওএস বা মেমরির সুরক্ষা নেই বলে, এটি সর্বদা একই জায়গায় সঞ্চিত থাকে এবং আপনাকে সেই স্মৃতিতে লেখতে বাধা দেওয়ার মতো কিছুই নেই। সুতরাং প্রথমটি টোকেনের উপরে POKEএকটি ENDটোকেন লেখায় PRINTএবং তারপরে দ্বিতীয়টি POKEপ্রথমটির উপরে একটি কমান্ড টার্মিনেটর লেখেন "। যখন GOTOমৃত্যুদন্ড কার্যকর করা হয়, এটি ENDপরিবর্তে চলমান শেষ হয় PRINTএবং প্রোগ্রামটি শেষ হয়।
মেরিনাস

14

সমাবেশে, সম্ভবত এর মতো কিছু কাজ করবে:

jmp 0

আমার মনে আছে যে এটি কার্যকরী ডস সংকলন করে। তারপরে, এটি কম্পিউটারটিকে পুনরায় বুট করে।


ret চেষ্টা করুন; আসলে আমি একটি উত্তর হিসাবে এটি পোস্ট করতে যাচ্ছি: পি
জুলিয়ান লেবোট

retf কাজ করবে, আমি ইতিমধ্যে একটি উত্তরে রেখেছি :) আধুনিক অপারেটিং সিস্টেমে যেভাবে মেমরি বিভাজন কাজ করে (বা কাজ করে না, আমার কি বলা উচিত) কারণ এটি মেরে
ফেলেছে

OS jmp 0 D ডস নিয়ে কাজ করে, 'কারণ কোনও কোড সেগমেন্টের প্রথম দুটি বাইট ছিল সিডি 20, বা' INT 20 'যা প্রস্থান প্রোগ্রামের কোড। »ধাক্কা 0; ret «যার একই প্রভাব থাকে।
ড্যানিয়েল

13

পিএইচপি

function quit(){unlink(__FILE__);posix_kill(getmypid(),15);}

প্রভাবগুলি:
আপনার ক্রপ্প স্ক্রিপ্ট ফাইলটি মুছে ফেলে এবং তারপরে আপনার প্রোগ্রামটিকে হত্যা করে।
লোককে বিভ্রান্ত করার জন্য এই খারাপ ছেলেগুলির মধ্যে একটিকে কিছু কোডবেসে ফেলে দিন।


এটি বৈধ পিএইচপি সিনট্যাক্স নয়। আপনি কোনও ফাংশন সংজ্ঞায়িত করার চেষ্টা করছেন quitতবে প্যারামিটার তালিকাটি চালানোর কোড। এটি চালানোর চেষ্টা করার সময় আমি একটি বিশ্লেষণ ত্রুটি পেয়েছি।
এমিল বিক্রস্টম

@ এমিলভিক্রাস্টম - এখনই স্থির।
donutdan4114

12

সি, 9 টি চর

ফাংশন না হওয়ার gccমতো ক্ষুদ্র বিশদ সম্পর্কে কিছু মনে করেন না এমন সংস্থাগুলি এবং অন্যান্য সংকলকগুলি main। প্ল্যাটফর্মগুলিতে
কাজ করে x86- প্রোগ্রামটি তত্ক্ষণাত উপস্থিত হয়।

main=195;

195 টি retনির্দেশের অপকোড ।


4
আমার জন্য Segfaults। mainমধ্যে অবস্থিত .dataকারণ এটা কোন int, তাই না মধ্যে .text, এবং .dataএকটি অ এক্সিকিউটেবল পৃষ্ঠাতে লোড করা হয়।
mniip

10

আমি সর্বদা এটি কোথাও পোস্ট করতে চেয়েছিলাম, আমার ধারণা এটি ইতিমধ্যে স্বীকৃত উত্তর থাকলেও এটি এখানে ফিট করে fits

int
main(int argc, char **argv)
{
        revoke(*argv);
}

এটি কোনও পোস্ট 4.3BSD সিস্টেম এবং অন্যদের revokeএকইভাবে কার্যকর করে works লিনাক্স এর প্রোটোটাইপ সত্ত্বেও তা করে না, ম্যাকোস অতীতে করেছে তবে সাম্প্রতিক সংস্করণগুলিতে কেবল ত্রুটি প্রদান করে।

revokeকোনও ফাইলে যাওয়ার পথে নিয়ে যায় এবং জোর করে সেই ফাইলটির সমস্ত উল্লেখ নষ্ট করে দেয়। এর মধ্যে সেই ফাইলটির যে কোনও মেমরি ম্যাপিংস অন্তর্ভুক্ত রয়েছে, এমনকি নিজে নিজে এক্সিকিউটেবলও। স্পষ্টতই, আপনাকে প্রোগ্রামটি একটি পাথ দিয়ে শুরু করতে হবে, এটি যদি PATH তে ঘটে থাকে তবে এটি কাজ করবে না।

বেশিরভাগ ইউনিক্স-মতো সিস্টেমে কাজ করা উচিত এটির একটি বৈকল্পিকতা:

#include <sys/mman.h>
#include <inttypes.h>
#include <unistd.h>

int
main(int argc, char **argv)
{
        intptr_t ps = getpagesize();
        munmap((void *)(((intptr_t)main)&~(ps - 1)), ps);
}

আমরা কেবল সেই পৃষ্ঠাটিকেই ম্যাপম্যাপ করি না mainযাতে কলটি কখন munmapফিরে আসে, এতে ফিরে যাওয়ার আর কোথাও নেই। একটি সামান্য সুযোগ রয়েছে যে ফাংশনটির কলটি munmapকেবল একটি পৃষ্ঠার সীমানায় রয়েছে এবং প্রত্যাবর্তন সফল হবে, সুতরাং এটি নিশ্চিতভাবে কাজ করতে আমাদের প্রথমে দুটি পৃষ্ঠা আনম্যাপ করার চেষ্টা করতে হবে।

এবং অবশ্যই, একই থিমের একটি বৈচিত্র:

#include <sys/mman.h>
#include <inttypes.h>
#include <unistd.h>

int
main(int argc, char **argv)
{
        intptr_t ps = getpagesize();
        munmap((void *)(((intptr_t)&ps)&~(ps - 1)), ps);
}

কেবল স্ট্যাকটি আনম্যাপ করুন যাতে আমাদের আর ফিরে আসার মতো কোথাও না থাকে। আনম্যাপিং হিসাবে একই সতর্কতা main- আমাদের দুটি পৃষ্ঠাগুলি আনম্যাপ করার প্রয়োজন হতে পারে, কেবলমাত্র আমাদের মনে রাখতে হবে যে স্ট্যাকটি সম্ভবত কমতে চলেছে (যদি আপনি পিএ-আরআইএসসি বা অন্য কোনও অদ্ভুত স্থাপত্যের উপরে না থাকেন)।

আপনার নিজের পায়ের নীচে থেকে গালিচাটি টানানোর আরও একটি উপায়:

#include <sys/resource.h>

int
main(int argc, char **argv)
{
        setrlimit(RLIMIT_CPU, &((struct rlimit){ 0 }));
        while(1);
}

এটি সিস্টেমটি কীভাবে 0 সেকেন্ডের সিপিইউ সীমা পরিচালনা করে এবং কতবার সিপিইউয়ের জন্য অ্যাকাউন্টিং হয় তার সাথে নির্ভর করে এটি অপারেটিং সিস্টেম। ম্যাকোস তত্ক্ষণাত প্রক্রিয়াটি মেরে ফেলবে, লিনাক্সের সময় লুপের প্রয়োজন হয়, অন্য একটি সিস্টেমের চেষ্টা করার পরেও আমি একটি দ্বিতীয় সীমা এবং কিছুক্ষণ লুপ দিয়ে কিছু করি নি, আমি আরও ডিবাগ করিনি didn't


9

SH

sudo kill -SEGV 1

লিনাক্সে তাত্ক্ষণিক কার্নাল আতঙ্ক। নিজেই সহ সমস্ত প্রক্রিয়া ধ্বংস করে দেয়

cmd

pskill csrss.exe

উইন্ডোজ তাত্ক্ষণিক নীল পর্দা। সমাপ্ত করে Client/Server Runtime SubSystem। Pskill ইনস্টল করা আবশ্যক।


চান killall initএছাড়াও কাজ করে?
s3lph

1
@ থি_এসপিপি ১. কেবলমাত্র একটি মূল-স্তরের ব্যবহারকারী সংকেত প্রেরণ করতে পারে ২. ইনিশাল কেবল একটি কর্নাল আতঙ্ক সৃষ্টি করবে যদি এটি সংকেত 11 (সেগমেন্টেশন ফল্ট) পায়
মাল্টিপ্লাইবাইজার0

ঠিক আছে আপনাকে ধন্যবাদ ... আপনি কি জানেন যদি আপনি ব্যবহার করেন তবে কী হবেsudo killall init
s3lph

1
@ থেএসপিপি হ্যাঁ, আমি আগেও চেষ্টা করেছি। থিম এটিকে উপেক্ষা করে, কেননা সূচক সিদ্ধান্ত নিতে পারে যে এটি সিগন্যালটি পেয়েছে কি না, তাই এটি সিগ্কিলকে সম্পূর্ণ উপেক্ষা করে। unix.stackexchange.com/questions/7441/…
MultiplyByZer0

8

সি তে (সামঞ্জস্যপূর্ণ উইন্ডোজ / লিনাক্স / (সম্ভবত ইউনিক্স / ফ্রি বিএসডিও)):

main;

ব্যবহারের উদাহরণ:

উইন্ডোজ এর অধীনে এর সংকলন:

echo main; > main.c && cl /Fe:main.exe main.c

এবং লিনাক্স:

echo "main;" > main.c && gcc -w -o main main.c

ধারক কম্পাইলার ইনস্টল করা আছে এবং বর্তমান PATH ভেরিয়েবলে।

সম্পাদনা: প্রযুক্তিগতভাবে এটি লিনাক্সে একটি ব্যতিক্রম (প্রসেসর দ্বারা উত্থাপিত) নিক্ষেপ করে, তবে উইন্ডোজে এই জাতীয় কোনও বার্তা নেই। সুতরাং এই এন্ট্রি সম্ভবত বৈধ নয়; তবে আমি মনে করি এটি দুর্দান্ত: পি

সম্পাদনা: x86 এসেম্বেলারে (এনএএসএম / ওয়াইএএসএম ব্যবহার করে)

global s
s:
    ret

এর সাথে সংকলন:

(উইন্ডোজ)

nasm -f win32 -o test.obj test.asm
LINK /OUT:test.exe /SUBSYSTEM:CONSOLE /ENTRY:s test.obj

(লিনাক্স)

nasm -f elf32 -o test.obj test.asm
ld -o test -e s test.obj

দুর্ভাগ্যক্রমে এইভাবে লিনাক্সের উপর একটি মূল ডাম্পও তৈরি হয়, সুতরাং আমি বিশ্বাস করি এটি কার্যত সি সি পদ্ধতির সমতুল্য; আরও দক্ষ ছাড়া।


1
কি দারুন! আমি কেবল এটি দিয়ে সংকলিত করেছি -Wall -Wextra -std=c99 -pedanticএবং কোনও সতর্কতা নেই।
ldrumm

আমি আসলে এটি রাখতে চেয়েছিলাম, কিন্তু এর বিপরীতে সিদ্ধান্ত নিয়েছি, কারণ এটি আমার বিভিন্ন সমস্যার সমাধানের সদৃশ ( কোডগল্ফ.স্ট্যাকেক্সচেঞ্জ / এ / 78787878 / ৩১০৩ )।
কনরাড বোরোস্কি

7

হাস্কেলের সাথে নিখুঁতভাবে জিনিসকে জিনিস নিয়ে যাওয়া:

import System.Exit

absolutely doThis = if True then doThis else undefined

unconventional doThat = do
  putStrLn "I could just do that"
  putStrLn "But I'm gonna print factorial of 100 first"
  putStrLn "There you go:"
  print $ fac 100
  doThat
  where fac n = foldl (*) 1 [1..n]

main = absolutely unconventional exitFailure

6

পাইথন


মডিউলটি ব্যবহার করেmultiprocessing , আমরা আরেকটি থ্রেড স্প্যান করতে পারি যার কাজ হ'ল একটি কাতারের মাধ্যমে মূল প্রক্রিয়াটির সাথে যোগাযোগ করা, কখন ছাড়তে হবে তা বলার জন্য:

import multiprocessing
import time
queue = multiprocessing.Queue()

def second_thread():
    while True:
        queue.put('quit')
        time.sleep(0.1)

second_ps = multiprocessing.Process(target = second_thread)
second_ps.start()

while True:
    msg = queue.get()
    if msg == 'quit':
        break
    time.sleep(0.1)

second_ps.join()

6

এএনএসআই সি

কোনও কোড অপ্টিমাইজেশন ছাড়াই নিম্নলিখিত প্রোগ্রামটি এত তাড়াতাড়ি ছাড়েনি - এটি কোনও বৈধ প্রোগ্রামে সংকলন করেও এটি চালু করা যায় না

#include<stdlib.h>
#include<stdio.h>

char tooLong[0x7CFFFFFF];

void main()
{
    printf("never executed.");
}

এটি সিস্টেম নির্ভর হতে পারে - আপনি এটি চালু করতে পারলে মন্তব্য করুন।


"ব্যতিক্রম ছুঁড়ে ফেলে দেওয়া আর মেনে নেওয়া হবে না!" এবং এর মধ্যে মেমরির বাইরে থাকা ত্রুটি রয়েছে
জন ডিভোরাক

2
@ জনডভোরাক ত্রুটি এবং ব্যতিক্রমগুলির মধ্যে পার্থক্য রয়েছে ।
syb0rg

আমি বিশ্বাস করি নিয়মটি উভয়কেই অন্তর্ভুক্ত করে। প্রশ্নকর্তা কি স্পষ্ট করতে পারবেন? এবং না, আমি মনে করি না জাভা-নির্দিষ্ট এসও প্রশ্নটি একটি ভাল রেফারেন্স, বিশেষত যখন আপনি কোনও সি সমাধানকে রক্ষা করেন।
জন ডিভোরাক

9
প্রোগ্রামটি ত্রুটি ছুড়ে দেয় না বা প্রোগ্রামের মধ্যে ত্রুটি সৃষ্টি করে না। সিস্টেম এটি পরিচালনা করতে পারে না।
জোহানেস

6

ঠিক আছে. যদি System.exitজাভাতে কেবল কলিংয়ের অনুমতি না হয় তবে অন্য থ্রেডের প্রতিবিম্বের মাধ্যমে এটিকে কল করার কীভাবে?

import java.lang.reflect.*;

public class Quit {
    public static void main(String[] args) throws Exception {
        final Method exit = System.class.getMethod("exit", new Class<?>[]{ int.class });
        new Thread(new Runnable() {
            @Override public void run() {
                try {
                    System.out.println("calling... " + exit);
                    exit.invoke(null, new Object[] { 0 });
                } catch (Exception e) { e.printStackTrace(); }
            }
        }).start();
        for (int i = 1; ; ++i) {
            System.out.println("counting... " + i);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) { break; }
        }
    }
}

প্রস্থান পদ্ধতিটি দেখায়, একটি নতুন থ্রেড তৈরি করে এবং যতক্ষণ না থ্রেডটি প্রতিবিম্বের মাধ্যমে প্রস্থানটি কল করে প্রক্রিয়াটি না মেরে ততক্ষণ গণনা করা হয়


নিচে গণনা? দেখে মনে হচ্ছে এটি আমার কাছে গুরুত্বপূর্ণ।
জাস্টিন

1
এর, হ্যাঁ, ভাল পয়েন্ট। আমার উচিত ছিল বলে গণনা করা, বা কেবল বলেছি এটি বেরিয়ে না আসা পর্যন্ত এটি গণনা করা।
ডেভিড কনরাড

6

x86 মেশিনের ভাষা, 1 টি অক্ষর

আপনি সাধারণত একটি আরইটি নির্দেশাবলীর বাইরে একটি কার্যক্ষম কার্যকর কার্যকর করতে পারেন

\xC3 

4
এটা কীভাবে অপ্রচলিত ?!
অদিতসু

6

সি (লিনাক্স)

আত্মহত্যার সংস্করণ

নিজেই একটি সিগ্কিল প্রেরণ করে।

#include <stdio.h>
#include <signal.h>
#include <unistd.h>

int main() 
{
    kill(getpid(),SIGKILL);

    printf("Not killed");
}

"তু কোকো মাই ফিলি" সংস্করণ

কাঁটাচামচ, তারপরে ছেলে বাবাকে মেরে ফেলে।

#include <stdio.h>
#include <signal.h>
#include <unistd.h>

int main() 
{
    if (!fork())
        kill(getppid(), SIGKILL);

    printf("Not killed");
}

5

পার্ল

...

এটাই সব।


ব্যাখ্যা: এটি ব্যতিক্রম নিক্ষেপ করে Unimplementedএবং তাত্ক্ষণিকভাবে প্রস্থান করে।


যোগ করা হয়েছে ব্যাখ্যা।
PhiNotPi

3
আমি জানি না, ব্যতিক্রমগুলি বিরক্তিকর।

6
চ্যালেঞ্জ অভিযোজনের কারণে ইনভালিফ: কোনও ব্যতিক্রম নেই
s3lph

আমি এখনও অন্য উত্তর লেখার কাছাকাছি পাই নি।
PhiNotPi

5

ব্যাচ এবং ডিবাগ

একটি পুরানো কিন্তু গুডি, তাত্ক্ষণিক সিস্টেমের পুনরায় বুটের জন্য ডস মেশিনে কাজ করে। বোনাস যাতে এটির একটি স্ক্রিপ্ট দুটি পৃথক, বেমানান দোভাষী দ্বারা ব্যাখ্যা করা যায়।

reset.bat

goto start

rcs
ffff
rip
0000
g
:start
debug < reset.bat

ব্যাচ ফাইলের ব্যাখ্যাটি ডিবাগের জন্য নির্দেশিত নির্দেশাবলীর উপর দিয়ে যায় এবং ব্যাখ্যার জন্য ডিবাগ করতে নিজেই ফিড দেয়। এর পরে ফাঁকা রেখার ফলে ফলাফলটির gotoত্রুটিটি পরিষ্কার করার debugজন্য এটি অজানা কমান্ডকে খাওয়ানো হচ্ছে, যা গোটো।


1
আমি ডেস কুঠার মতো একই জিনিস করতাম; ধাক্কা কুড়াল; ধাক্কা বিএক্স; retf
moopet

3

জাভা

নীচের কোডটি পরীক্ষা করা হয়নি এবং এটি কিছু প্ল্যাটফর্মগুলিতে কাজ করবে।

public class Quitter
{
       public static void main ( String [ ] args )
       {
             Process process = Runtime . getRuntime ( ) . exec ( "reboot" ) ;
       }
}

45
সেই ভয়ঙ্কর সাদা
জায়গার

7
ইউনিক্স-এ এটি হতে হবে sudo reboot, উইন্ডোজshutdown /r /t 0
s3lph

2
ইউনিক্সে আপনাকে কেবল সেই প্রোগ্রামটি সুডো দিয়ে চালাতে হবে, আপনি যে আদেশটি চালাতে চান তা নয়।
জোহানেস কুহ্ন

1
@ দ্য এস্পিপি, @ জোহানেসকুহান যেমন আমি বলেছিলাম যে এটি কেবল কয়েকটি প্ল্যাটফর্মগুলিতে কাজ করে এবং আমি ধরে নিচ্ছিলাম যে আপনি এটির অনুরোধ করবেন sudo java Quitter
ইমোরি

3
-1 সাদা সাদা না !!!
ভ্যাক্সকুইস

3

শক্তির উৎস

get-process | stop-process -force

এটি 'lastresort.ps1' হিসাবে সংরক্ষণ করুন এবং এটি কৌশলটি করা উচিত।

কিছু বোবা নীতিমালার কারণে স্ক্রিপ্টটি কার্যকর না করা নিয়ে যদি আপনি সমস্যা তৈরি করেন তবে স্ক্রিপ্টটি কার্যকর করার আগে এটি টাইপ করুন:

Set-ExecutionPolicy Unrestricted

স্ক্রিপ্ট হিসাবে সংরক্ষণ না করে কমান্ড লাইন থেকে ঠিক কাজ করে Works
ইসজি

3

টিআই-বেসিক 84

:;;::;banana\\sEnd\;:;1:If X=X-1 :eat banana juice and lol;;;::::;:thought you could EAT THINGS XD /// CRAZIEST ANSWER YET!!!

3

পাইথন (ওপিতে এক লাইনের বিকল্প)

আমি বুঝতে পেরেছিলাম যে ওপি পরামর্শ দিয়েছে তার চেয়ে ভাল পাইথনের উত্তর আর নেই, তবে এটি এত লাইন কীভাবে হয়েছে তা আমার পছন্দ হয়নি, সুতরাং ওপি যেমন করেছিলেন ঠিক তেমনভাবে আপনি কী করছেন তবে একটি লাইনে:

exec(''.join([ chr(x) for x in [35, 33, 47, 117, 115, 114, 47, 98, 105, 110, 47, 101, 110, 118, 32, 112, 121, 116, 104, 111, 110, 10, 35, 32, 117, 110, 105, 120, 32, 111, 110, 108, 121, 44, 32, 109, 105, 103, 104, 116, 32, 119, 111, 114, 107, 32, 111, 110, 32, 119, 105, 110, 100, 111, 119, 115, 10, 35, 32, 110, 111, 116, 101, 58, 32, 107, 105, 108, 108, 115, 32, 65, 76, 76, 32, 82, 85, 78, 78, 73, 78, 71, 32, 112, 121, 116, 104, 111, 110, 32, 112, 114, 111, 99, 101, 115, 115, 101, 115, 46, 32, 66, 101, 32, 99, 97, 114, 101, 102, 117, 108, 32, 47, 33, 92, 10, 100, 101, 102, 32, 101, 120, 105, 116, 40, 41, 58, 10, 32, 32, 32, 32, 105, 109, 112, 111, 114, 116, 32, 111, 115, 10, 32, 32, 32, 32, 111, 115, 46, 115, 121, 115, 116, 101, 109, 40, 34, 107, 105, 108, 108, 97, 108, 108, 32, 112, 121, 116, 104, 111, 110, 51, 34, 41, 10, 32, 32, 32, 32, 35, 32, 87, 105, 110, 100, 111, 119, 115, 32, 97, 100, 100, 111, 110, 10, 32, 32, 32, 32, 111, 115, 46, 115, 121, 115, 116, 101, 109, 40, 34, 116, 97, 115, 107, 107, 105, 108, 108, 32, 47, 105, 109, 32, 112, 121, 116, 104, 111, 110, 46, 101, 120, 101, 32, 47, 102, 34, 41, 32, 35, 32, 111, 114, 32, 119, 104, 97, 116, 101, 118, 101, 114, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 112, 121, 116, 104, 111, 110, 64, 119, 105, 110, 100, 111, 119, 115, 32, 104, 97, 115, 10, 101, 120, 105, 116, 40, 41, 10] ]))

আপনি এটি একটি ফাংশন করতে পারেন এবং এটি আপনার জন্য কাজ করবে।


3

আমার নিজের ধারণা, অংশ নিচ্ছে না

টিআইজিসিসি (টেক্সাস ইনস্ট্রুমেন্টস টিআই -৯৯, টিআই -৯৯ টাইটানিয়াম, টিআই -২২ + +, টিআই-ভি 200)

void main(void) {
    unlink("quit");
    asm("trap #2");
}

একই ক্যালকুলেটরগুলির জন্য টিআই-বেসিক

quit()
:© lines starting with © are comments
:Prgm
:©DelVar quit
:Exec "4E424E750000"
:EndPrgm

প্রোগ্রামটি কী করে: প্রথমে এটি নিজেকে র‌্যামের বাইরে মুছে দেয়। (এটি রমকে রাখবেন না বা এটি কাজ করবে না ...) এটি এখনও চালানো যেতে পারে কারণ মৃত্যুদন্ড কার্যকর করার সময় প্রোগ্রামটির একটি অনুলিপি তৈরি করা হয় এবং কার্যকর করা হয়। asm(trap #2);ASM কমান্ডটি আহ্বান করে 4E424E750000যা ক্যালকুলেটরটি পুনরায় সেট করতে, এটির র‍্যাম মুছে ফেলার (ফ্ল্যাশ রমটি অচ্ছুত থাকে) এবং সমস্ত অ্যাপ্লিকেশন পুনরায় ইনস্টল করে।

সম্পাদনা: সবেমাত্র বেসিক সংস্করণটি পরীক্ষা করা হয়েছে। এটি নিজেকে মুছতে পারে না ...


3

এমএস-ডস। কম ফর্ম্যাট

এটি মেমরিতে অবৈধ নির্দেশাবলী (এফএফএফএফ) লিখে এবং সেগুলি কার্যকর করে এনটিভিডিএম ক্র্যাশ করে।

হেক্সাডেসিমেল

B8 FF FF A3 06 01

ডিবাগ.এক্সে অ্যাসেম্বলি ভাষা

MOV AX, FFFF
MOV [0106],AX
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.