Автор Тема: Възможно ли е процес да тръшне цялата система  (Прочетена 8090 пъти)

Ivshti

  • Напреднали
  • *****
  • Публикации: 322
  • Distribution: Linvo 2010.3
  • Window Manager: Gnome
    • Профил
    • WWW
След малко ще го тествам на OpenSolaris '<img'>
Редакция: Пречка! някой знае ли как се компилира на тая тъпотия?? С "cc" не става, нито пък с "gcc".
Редакция 2: pkg install gcc или pkg install cc не работи също :@



Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
На Solaris сега чета че няма iopl() syscall имплементиран.

Цитат
I am porting a system software from Linux(32) to OpenSolaris-10. During the feasibility study it is found that the following 4 system calls, are not supported on Solaris.

iopl: changes the I/O privilege level of the current process, as specified in level
...


...

Цитат
No equivalent. Solaris deliberately does not allow applications to access
arbitrary device state from userland without the help of a device driver.

That means two things:

a) iopl() isn't ever necessary; I/O access privilege is equivalent to
device access privilege since "all you need" is the ability to open
device nodes directly. The latter is PRIV_SYS_DEVICES, see the
manpages to privileges(5) and ppriv(1) for further information on
how privileges work in Solaris.
Активен

"Knowledge is power" - France is Bacon

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Сега ми хрумна малоумната идея, че това ако много се внимава може да се използва от един процес да харчи безумно много процесорно време, хахах. Много по-ефективно от renice. Като забрани прекъсванията, няма да може да се preempt-ва от task scheduler-a. Само ще трябва все пак да ги разрешава иначе ще се срине системата. И лошото е че няма да може да разчита на sleep() по време на това. Но пък така ексклузивно ще си работи на процесора, просто през това време няма кой да го разкара оттам и няма кой да го убие, ахахха. Дори ядрото няма думата. Е, освен ако по някаква причина не се получи NMI някакво де '<img'> Хм, да, и никакви syscalls и примитиви за синхронизация не могат да се използват, никакво четене и писане по дискове и никаква мрежа.



Активен

"Knowledge is power" - France is Bacon

runtime

  • Напреднали
  • *****
  • Публикации: 807
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
  • LZ1DOT
    • Профил
    • WWW
И под ЦентОС не върви '<img'> Системата не се крашва



Активен

Ivshti

  • Напреднали
  • *****
  • Публикации: 322
  • Distribution: Linvo 2010.3
  • Window Manager: Gnome
    • Профил
    • WWW
CentOS, Fedora (тия, които произлизат от RedHat) явно си имат SELinux '<img'>
И бъди сигурен, че го рънваш под руут.



Активен

userc131

  • Новаци
  • *
  • Публикации: 1
    • Профил
това не бих го пробвал на реално желязо:

Примерен код

find /proc/bus -type f -perm /u+w -exec dd if=/dev/urandom of={} bs=1M count=40 \;
Активен

Ivshti

  • Напреднали
  • *****
  • Публикации: 322
  • Distribution: Linvo 2010.3
  • Window Manager: Gnome
    • Профил
    • WWW
Хахаха... изглежда доста забавно '<img'> Но мисля, че не спазваш правилата, защото ползваш два процеса: dd и find
От това има много фън ефект: dd if=/dev/urandom of=/dev/fb0 '<img'> Но не става на всички системи, не съм запознат много с тия фреймбуфери тъй че не мога да кажа защо.



Активен

ieti

  • Напреднали
  • *****
  • Публикации: 92
  • Distribution: Arch, Debian
  • Window Manager: XFCE
    • Профил
Ето какво се е появило на 17-ти в milw0rm -->  linux/x86 iopl(3); asm("cli"); while(1){} 12 bytes Прилича доста на кода на gat3way.
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Да, оттам го видях.
Активен

"Knowledge is power" - France is Bacon

ieti

  • Напреднали
  • *****
  • Публикации: 92
  • Distribution: Arch, Debian
  • Window Manager: XFCE
    • Профил
Аз си помислих че те са го взели от тук '<img'>
Активен

Ivshti

  • Напреднали
  • *****
  • Публикации: 322
  • Distribution: Linvo 2010.3
  • Window Manager: Gnome
    • Профил
    • WWW
А интересно ми е да видя как се появява force-нат panic, ако ще да е и от kernel ring '<img'>
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
cmn_err(CE_PANIC,"umri!\n");

panic("UMRI!\n");

Оттам е доста лесно.
Активен

"Knowledge is power" - France is Bacon

Ivshti

  • Напреднали
  • *****
  • Публикации: 322
  • Distribution: Linvo 2010.3
  • Window Manager: Gnome
    • Профил
    • WWW
Примерен код

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>

static int KernelPanic(void) {
    panic("bla");
    return 0;
}

static void wtf(void) {
    printk(KERN_INFO "You're suposed to panic!");
}

module_init( KernelPanic );
module_exit( wtf );

MODULE_DESCRIPTION( "Panic" );

Това е един модул...
Впечатлих се от това как не се отразяват panic-ите на системата: просто всичко забива. Съобщенията се пускат на tty1 и не се забелязват ако си под X. Аз пък си мислех, че те прехвърля на конзола и показва panic-a. Много е шибано така!
Активен

tarator

  • Напреднали
  • *****
  • Публикации: 849
    • Профил
Ivshti,

Доста код трябва да успее да се изпълни за да се превключи от графичен в текстов режим. Когато ядрото се е панирало не е ясно какво още работи и колко дълго ще продължи да работи.

Който следи за паникс, така или иначе обикновено го прави на серийната конзола.
Активен

A gentleman is one who is never rude unintentionally. - Noel Coward

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Много сървъри имат т.нар "NMI" бутон или опция в management board-a която предизвиква NMI. Има съответно техен си proprietary модул, който инсталира handler за това прекъсване и позволява записването на crashdump-a примерно върху flash памет когато то се извика. Тъй като NMI прекъсванията не могат да се маскират (демек да се забраняват с cli), това позволява дъмп-а да се събере дори ако ядрото се е крашнало брутално много. Тази флаш памет съответно се носи при производителя и там големите инженерни глави го анализират.
Активен

"Knowledge is power" - France is Bacon