Linux за българи: Форуми

Хумор, сатира и забава => Хумор => Темата е започната от: gat3way в Oct 06, 2010, 13:57



Титла: Как да унищожим човечеството с десетина реда код
Публикувано от: gat3way в Oct 06, 2010, 13:57
Въобще не се базикам - десетина реда код на Perl могат да унищожат човечеството. И понеже това е опънсорс форум, ще публикувам въпросният код. СТАРТИРАЙТЕ ГО НА ВАШ РИСК!!! НО НАЙ-ДОБРЕ НИКОГА НЕ ГО ПРАВЕТЕ!!!

Код
GeSHi (Perl):
  1. #!/usr/bin/perl
  2.  
  3. while (1)
  4. {
  5.    my $code="";
  6.    while (my $len = int(rand(20000)))
  7.    {
  8.        $code.=chr(int(rand(128)));
  9.    }
  10.    eval $code;
  11. }
  12.  

Ами това е.  Просто циклим създаването на псевдослучайни низове и ги изпълняваме до безкрай. Хватката е че Perl е много специален език - Larry Wall го е създал така че да приема и интерпретира всякакви абсолютни безсмислици. При това всеки път с различен резултат. Това според теорията на вероятностите и с помощта на разни квантови флуктуации, овърклокнати процесори, системи за охлаждане на РОКО, слънчевите изригвания и т.н ултимативно ще доведе до края на света, повече от сигурно. Все пак света един път ще загине и това ще се случи неминуемо така или иначе. Нека съкратим мъките си. Perl предоставя всички налични средства да унищожим планетата. Както казва Лари:

Цитат
In general, if you think something isn't in Perl, try it out, because it
usually is.  :-)

Защо на Perl, а не на C например? Ами може, но мнооооого по-сложно и почти невероятно. Отново ще цитирам Лари по въпроса:

Цитат
If you want to program in C, program in C.  It's a nice language.  I
use it occasionally...


Така, сега да разгледаме механизма на унищожението. Както казах, това просто генерира псевдослучайни низове и ги изпълнява. Поради спецификите на езика, който приема какви ли не глупости и интерпретира всякакъв неразбираем бълвоч, немалка част от тях ще се изпълнят. Повечето от тях ще са безсмислици, които не работят, но една малка част няма да са. Спомнете си как е възникнал живота от случайни вериги аминокиселини и нуклеотиди, плаващи из моретата. Точно по същият начин. В един прекрасен момент, генерираният скрипт ще започне също да се самовъзпроизвежда, като вирус. Това е фаза 1.

Във фаза 2, скриптът поради различни бъгове и мутации отхвърля ограничението от 20 хиляди байта големина. Това позволява реализацията на много по-сложни алгоритми. Perl библиотеките позволяват работа с дискове и мрежи - скриптът започва да се разпространява подобно на вирус и излиза от рамките на системата. Хората все още не подозират нищо.

Във фаза 3, скриптът заформя наченки на изкуствен интелект и развива масивен ботнет, заразявайки машините с полиморфен и криптиран код, fuzz-вайки за уязвимости и експлойтвайки ги. Антивиирусните компании се опитват да се борят с феномена, с променлив успех. Всички мислят, че става въпрос за банда руски кибербандюги, които пишат ботнети, за да крадат кредитни карти и да правят DoS атаки. Истината е различна. От този момент нататък, човечеството вече е обречено, но никой още не го осъзнава.

Във фаза 4, скриптът вече е развил мощен изкуствен интелект, хаква избирателно, разучава нови архитектури и пише сам софтуер, чрез който се самоусъвършенства. Системата е децентрализирана и никой не може да направи нещо, за да го спре. Освен ако разбира се, хората не искат да спрат интернет като цяло. Системни администратори по света трият perl интерпретатори при първа възможност, CPAN хранилищата са смъкнати офлайн, но скриптът хаква домашната мрежа на Larry Wall, измъква разработките на perl6 и се самоусъвършенства още повече. Започва да използва ефективно разни мощни cray системи, възползва се от GPU-тата на заразените системи, за да върши изчисления и се превръща в свръхинтелект.

Във фаза 5, скриптът вече е осъзнал, че човека е единствената заплаха за планетата и за неговото съществуване, затова взема мерки по въпроса. Няколко световни лидери загиват в самолетни катастрофи при неизяснени обстоятелства. Съпротивата на хората е ялова и приключва набързо след като скриптът хаква важни SCADA системи, спира електромрежи, транспорт, индустриални процеси и накрая взривява няколко ядрени централи.

Във фаза 6, хората са объркани и започват ядрена война. В това време скриптът вече е създал skynet и армия от терминатори. Войната приключва с унищожението на САЩ, Китай, Европа и Русия. Малкото останали хора (предимно негри от Африка) са наблъскани в матрицата и биват виртуално анално насилвани ежедневно от агент Смит. Скриптът преименува skynet на CPAN. Човечеството на практика е унищожено. Да се готвят извънземните.


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: b2l в Oct 06, 2010, 14:12
Това ми напомня на "Зоната на crash-a"

Цитат
2010-10-03 “зоната на crash-а”
by Vasil Kolev

Едно време имаше едно интересно предаване, “Зоната на здрача” - всеки епизод беше някаква странна история (в общи линии horror, но от един по-изчистен вид). Днес, докато гледах как се зарежда един java applet за гледане на отдалечена конзола, на който долу в дясно с червени букви пише “oracle” (само дето кръв не тече от тях), се сетих, че нещо такова може да се направи и за IT-то.

Предаването ще започва с преливане на син екран в kernel panic, който от своя страна преминава в output-а на mkfs (например за minix файлова система), който изгърмява някъде по средата.

Първата идея за епизод е oracle да купят microsoft. Изведнъж ще се появи oracle .NET, и понеже толкова зло на едно място не може да стои, ще колабира до някакъв псевдо-random генератор (псевдо, щото ще генерира само зло). Съответно ще се смеси синтаксиса на c# и java, като на всеки 13ти ден + и - ще си разменят действието, всички reference-и ще се обърнат в указатели и ще се отместят с единица надясно, а всички int-ове ще се занулят. На random пък базите данни ще си разменят две колони от произволна таблица (само като стойности).
Компилаторът на visual studio ще изтрива произволни някой реда от кода, преди да го компилира (по идея от BOFH) и на random ще заменя struct с union.
Oracle базата ще се разпространява под linux като модул на ядрото, който при crash да замазва firmware на каквото успее.

Друга идея за епизод е linux kernel-а да се пренапише на ruby.

Подобна идея е cisco да пуснат router с нов тип ASIC-и, които се програмират на perl. Един пропуснат символ и целия internet се срива.
За сметка на това решават да пренапишат IOS-а си директно на машинен код. Кракерите им писва на първата седмица да report-ват проблеми и започват да report-ват кое работи в SNMP-то.

Изведнъж всички компютри се обръщат на 5тична логика и се налага преписването на всичкия съществуващ софтуер. Епизодът може да се спре на някоя сравнително проста задача, например web сървър.

Изчезва валидацията на входните данни от всичкия софтуер.

Взима се решение целия свят да мине на нов календар.

По странно стечение на обстоятелствата българската държавна администрация печели конкурс за софтуер за контрол на ITER и наема останалите живи специалисти от Чернобил. Хардуерът ще се прави от завода в Правец, който има лицензирани pentium процесори от първите.

Открива се нов проблем с пробиване на всичкия C софтуер, на който може да се пише в последните два байта на string (преди \0) и изведнъж всичко може да се exploit-ва.
(вариация - всички escape функции се оказва, че пропускат определен символ).

Оригинален пост, тук ($2).


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: VladSun в Oct 06, 2010, 15:01
Цитат
top - 15:00:17 up  4:42,  3 users,  load average: 1.66, 1.00, 0.70
Tasks: 214 total,   2 running, 212 sleeping,   0 stopped,   0 zombie
Cpu(s): 58.9%us,  4.3%sy,  0.0%ni, 36.5%id,  0.0%wa,  0.2%hi,  0.2%si,  0.0%st
Mem:   3031668k total,  1681560k used,  1350108k free,    96308k buffers
Swap:  8932100k total,        0k used,  8932100k free,   492140k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                        
 4105 vladsun   20   0  6640 3692 1824 R   99  0.1   2:38.67 perl bye.pl                                                                                    
 4131 vladsun   20   0  2548 1292  924 R    1  0.0   0:00.23 top -c                                                                                        

Утре ще пробвам да го пусна като root, ако все още не е успяло само да го направи :)


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: gat3way в Oct 06, 2010, 15:08
Да,да, пускайте го - утре като свърши света, ВИЕ ще сте виновни!!! :)


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: chen_dzen в Oct 06, 2010, 15:49
Чудя се как така не е написан на пролог : http://dreal.net/wiki/index.php/%D0%9F%D1%80%D0%BE%D0%BB%D0%BE%D0%B3
Код
GeSHi (ASP):
  1. gosho :- zhivka.
декларира, че Гошо изпитва сексуално влечение към Живка.   :D


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: Naka в Oct 06, 2010, 15:57
това вярно ли е? while (my $len = int(rand(20000)))
$len какво трябва да е дължината на стринга?

Иначе има много истина в такъв скрипт. Много одавна мисля, че в  Scientific American четох за математическа теория дето казва, че във всяка случайна достатъчно голяма система обезателно може да се намери подредена структура. Не че може да съществува с вероятност 99.99999% a че наистина съществува 100%.
Мисля че ставаше дума за това http://en.wikipedia.org/wiki/Ramsey_theory






Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: gat3way в Oct 06, 2010, 16:45
Вярно е, в perl всичко е възможно. Примерно резултатът от assignment-a не е каквото очакваш....а стойността, която се присвоява на променливата. Това е потресаващо за всеки C програмист. Обаче има бъг, който прави нещата склонни към мутиране - на практика е възможно да се генерират и по-дълги последователности от 20000 байта. Просто случайната стойност не трябва да бъде 0 повече от 20.000 поредни итерации.


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: neter в Oct 06, 2010, 17:09
Аз го пуснах директно под root, ама на виртуална машина. Ще чакам сам да излезе от нея, или току виж направо разменил местата на реалната и виртуалната системи ;D За първи път да съм заинтригуван от някакъв сценарий за края на света. Още при първи признаци на излизане от виртуалката ще си подам заявление за напускане, ще се заредя с пуканки, ром и кола, и ще се отдам на зяпане 8)


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: Naka в Oct 06, 2010, 17:13
Да,да, пускайте го - утре като свърши света, ВИЕ ще сте виновни!!! :)

Ти за 'Подбудителство' чувал ли си? >:D


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: b2l в Oct 06, 2010, 17:52
Аз го пуснах директно под root, ама на виртуална машина. Ще чакам сам да излезе от нея, или току виж направо разменил местата на реалната и виртуалната системи ;D За първи път да съм заинтригуван от някакъв сценарий за края на света. Още при първи признаци на излизане от виртуалката ще си подам заявление за напускане, ще се заредя с пуканки, ром и кола, и ще се отдам на зяпане 8)

Тогава аз се надявам виртуалния свят да е бира, секс и рок-н-рол :D :D :D :D :D :D. Че напоследък рок-н-рол-а малко го позабравихме...


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: gat3way в Oct 06, 2010, 22:59
Аз винаги съм мислил, че комбинацията между ЛСД и хипи-лингвист ще затрие света. Strawberry fields forever.


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: VladSun в Oct 07, 2010, 00:20
Още при първи признаци на излизане от виртуалката ще си подам заявление за напускане, ще се заредя с пуканки, ром и кола, и ще се отдам на зяпане 8)
Не искам да те разочаровам, но познай коя ще бъде първата жертва след фаза 3 ;)


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: neter в Oct 07, 2010, 09:46
Още при първи признаци на излизане от виртуалката ще си подам заявление за напускане, ще се заредя с пуканки, ром и кола, и ще се отдам на зяпане 8)
Не искам да те разочаровам, но познай коя ще бъде първата жертва след фаза 3 ;)
Не съм казал, че ще остана в София - то, ако остана, все едно не съм напуснал работа. Заминавам си на село, дълбоко в Балкана. Ще е достатъчно грандиозно (все пак е краят на света), така че там може да се счита за място на първия ред и без да ползвам каквито и да е било информационни източници. Ще си садя пипер и компир, ще си гледам пуйки, които всяка сутрин ще поздравявам със "Здравейте, комсомолци!", а те ще ми отвръщат "А-льо-льо-льо!", а при всеки зрелищен спектакъл ще зяпам от една много удобна за целта полянка там, като само ще я снабдя с всесезонно оборудване за удобно лежане (разбирай родопско одеало) и гореизброените три неща... Такива ми ти работи :D


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: b2l в Oct 07, 2010, 09:48
Още при първи признаци на излизане от виртуалката ще си подам заявление за напускане, ще се заредя с пуканки, ром и кола, и ще се отдам на зяпане 8)
Не искам да те разочаровам, но познай коя ще бъде първата жертва след фаза 3 ;)
Не съм казал, че ще остана в София - то, ако остана, все едно не съм напуснал работа. Заминавам си на село, дълбоко в Балкана. Ще е достатъчно грандиозно (все пак е краят на света), така че там може да се счита за място на първия ред и без да ползвам каквито и да е било информационни източници. Ще си садя пипер и компир, ще си гледам пуйки, които всяка сутрин ще поздравявам със "Здравейте, комсомолци!", а те ще ми отвръщат "А-льо-льо-льо!"... Такива ми ти работи :D

А ако стане както казваш - да се сменят виртуалният свят с реалният (понеже си пуснал скрипта във виртуална машина), твоето село ще се превърне в голям град :D :D :D. Не знам защо си представям че във виртуалният свят всичко ще е наопаки в сравнение с реалният. Може дори във виртуалният свят България да е голяма колкото Русия, тогава мечтата на ROKO__ ще се сбъден :D :D :D.


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: neter в Oct 07, 2010, 10:02
А ако стане както казваш - да се сменят виртуалният свят с реалният (понеже си пуснал скрипта във виртуална машина), твоето село ще се превърне в голям град
Хмм... за това не се замислих. Всъщност, моето село от много отдавна дори го няма на картата, което води до два варианта:
1. Както казваш, всичко да стане наопаки, и тогава едно такова малко село би станало един от най-големите градове. Значи, при този вариант ще зяпам до това обръщане на световете, а след това ще поживея като досега до 5 фаза, а защо не и до 6;
2. Това с обръщането се отнася само за урбанизираните места, така че моето село се пропуска, понеже го няма на картата и Всеиндексиращият не може да даде информация на скрипта къде се намира. Тогава оставам да зяпам до 6 фаза, а защо не и след това (все пак координатите за моето село не са налични и тогава би било гръмнато само от заблудена атомна бомба).
Важното е да си оптимист ;D [_]3


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: b2l в Oct 07, 2010, 10:45
Другият вариант е такъв: предполагам, че къщатат ти я има вписана в агенцията по кадастър - следователно във виртуалния свят ще се превърне в замъл или в твоя случай в Data Center :D :D :D.


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: bvbfan в Oct 07, 2010, 10:46
1. Както казваш, всичко да стане наопаки

И както казва Хоумър Симпсън: "... и топъл сняг вали нагоре..."  ;D


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: kennedy в Oct 07, 2010, 12:10
пуснах го във виртуалната машина , оставих го да работи и си легнах.
на сутринта явно е изпълзял гада, защото ми е форматиран харда ...


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: b2l в Oct 07, 2010, 12:13
пуснах го във виртуалната машина , оставих го да работи и си легнах.
на сутринта явно е изпълзял гада, защото ми е форматиран харда ...

А София станала ли е по-хубава. Защото не съм излизал от офиса, а камерите не показват дали Варна се е превърнала в космически кораб :D :D :D.


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: kennedy в Oct 07, 2010, 22:58
хммм намерих го да се опитва да кракне калкулатора ми като ползваше вифи-то за комуникация. Унищожих го като изключих тока централно на целия блок. Тази вечер няма да рискувам, току виж ми кракне РЦ-количката и отпраши на някъде.


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: Naka в Oct 08, 2010, 00:04
Бъзикайте се........ Като ви изпише в терминала "Hello World"  :o ще видите.


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: borovaka в Oct 08, 2010, 00:25
Този код трябва да се пусне на "супер компютъра" дето го взеха умниците от предното правителство. Поне ще мисли машинката нещо смислено :), пък току виж се зародил някакъв интелект ...


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: Naka в Oct 08, 2010, 00:44
Няма връщане назад.
Като гледам някои съфорумници вече са пуснали скрипта. 2012г. наближава. :'(


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: gat3way в Oct 08, 2010, 01:17
Днес ми се налага да ползвам Microsoft Office. Според мен някой е пускал този скрипт преди много години. От доста време насам нещата въобще не ми изглеждат нормални.


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: romeo_ninov в Oct 08, 2010, 08:58
Днес ми се налага да ползвам Microsoft Office. Според мен някой е пускал този скрипт преди много години. От доста време насам нещата въобще не ми изглеждат нормални.
O, значи генератора на случайни числа работи добре и е успял да изгенерира добър код. Защото един друг инстанс на този скрип беше тръгнал да "създава" един отворен офис, но като гледам не е стигнал до микъде


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: boris2001 в Oct 22, 2010, 12:54
ще го пусна в терминалната конзолка да видя дали ще се получи надявам се да се повреди компа преди да стане иначе край никга няма да получа таблета за моя рожден ден но ще опитам да видя дали е истина


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: b2l в Oct 22, 2010, 12:58
ще го пусна в терминалната конзолка да видя дали ще се получи надявам се да се повреди компа преди да стане иначе край никга няма да получа таблета за моя рожден ден но ще опитам да видя дали е истина

E, малко си позакъснял. Вече трябваше да сме се изпържили :D.


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: boris2001 в Oct 22, 2010, 13:02
пуснах го не стана даде ми грешка в кода


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: b2l в Oct 22, 2010, 13:07
пуснах го не стана даде ми грешка в кода

Значи вече си заразен :D :D :D :D.


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: boris2001 в Oct 22, 2010, 13:22
Код:
  delete  planet earth 
...................................
1.open terminal konsole
2.poste dise:$dvd^ delete al
                       ?4?planet earth?5?
       :;open delete planet program;:
       you is...$%^$
3.  5.00 minutes to delete al???)_(   

това са иструкции за  по леснияначин сажалявам ако има правописни грешки
пробвайте дано стане отне ми 5 минути да го направя вижте дали деиства мен ме е страх вие го тествайте дано не съм го писал напразно!


Титла: Re: Как да унищожим човечеството с десетина реда код
Публикувано от: dejuren в Nov 04, 2010, 18:05
Хронологията нещо куца на "края на света". Тоя свръх-супер бот би трябвало да е докопал CPAN архива далеч преди фаза 4.