English | Magyar
JS ki | CSS ki | Ékezetek ki | HiContrast
Lapozó:  (0 - 1355) 
<== | ==>
Ugrás a végére | Összes megjelenítése | Utolsó oldal
OpenOpera patches | Opera-SSL patches | Opera 12.15 source (Git repository) | Opera 12.15 source (Torrent) | Opera internal pages | Otter Browser Linux x64 - Qt5.7.1/QtWebKit5.602.1 (2021.11.26. 11:56)
OS for Sparc64 | OS for PPC | besztofbégéaefcé | CSÉNDZSLOG | WebToolz | DDG Shit Filter | Google Shit Filter | Progz | Fast CSS Box | Browser | OS | Agent | Statisztika | BBCode
Monospace font-family: Courier New | Browser default monospace
Email értesítő / Email notification ===> 
Keresés
Σ: 1 post

TCH  (statz) Főfasz
#1, Főfasz (9770)
4724 | #113e | ^ | Idézet | Sat, 11 Sep 2010 22:25:12 +02
188.36.*.* Unknown Unknown Hungary *.dsl.pool.telekom.hu
Nabazdmeg. Volt már itt téma a VLC, hogy a hülye programozói az istenért le nem kódolnák azt a szart, hogy fusson rootként is. Na, nekem ebből elegem lett, mert a vlc-wrapperes megoldás, az valami rohadt kényelmetlen.

Két megoldás állt előttem.
Az egyik, hogy leforgatom magamnak, a root felhasználó engedélyezésével. Ez időigényes, fárasztó és unalmas is.
A másik, hogy "meghekkelem" ezt a szart. Ez elsőre még időigényesebb, mint a másik, de ez csak egyszer az, a másik meg mindig is az lesz. És ez szórakoztató is. :)

Csapjunk a bitek közé.

Először is, lerántottam a VLC forrását, hogy megnézzem, mi a szar csinálja benne ezt a fasságot. (http://www.videolan.org/vlc/download-sources.html)
Aszongya, hogy a "vlc.c" fájlban van egy ilyen rész:
#ifndef ALLOW_RUN_AS_ROOT
    if (geteuid () == 0)
    {
        fprintf (stderr, "VLC is not supposed to be run as root. Sorry.\n"
        "If you need to use real-time priorities and/or privileged TCP ports\n"
        "you can use %s-wrapper (make sure it is Set-UID root and\n"
        "cannot be run by non-trusted users first).\n", ppsz_argv[0]);
        return 1;
    }
#endif
Aha, ez bassza az anyját, ha nincs engedélyezve leforgatáskor a root és ofcoz az Ubuntu repoba, csakis úgy kerülhet bele, ha nincs. :P
Mindegy. Az a ludas, vagyis azt a "geteuid()" függvényt kell kiiktatnom.

Hát akkor, IDA Disassembler elő (wine kell hozzá, ofcoz :P) és "/usr/bin/vlc" megnyit és máris egy sux86 dumppal lettünk gazdagabbak.

Keressük meg ezt a "geteuid()" nevű szart, pontosabban a meghívását.
.text:08048DB1                 call    _geteuid
.text:08048DB6                 test    eax, eax
.text:08048DB8                 jz      loc_8049340
.text:08048DBE                 mov     eax, (offset asc_8049D80+2)
Meg is van. A "call _geteuid" hívja meg, utána az eax-ban visszakapott eredményt a "test eax, eax" dönti el egy logikai-és művelettel, hogy nulla-e.
Ha igen (azaz root vogymuk), akkor elugrik ahhoz a ponthoz, ami rizsázik egy sort, hogy "Jajajajj, rootként naon vessszéjjes ám!", aztán kilép.
Konzekvencia: azt az utasítást kell kiiktatnunk a francba. Erre tökéletesen alkalmas a "NOP" azaz a "No OPeration" utasítás, aminek az opkódja egy byte ($90).
Az ugrás utáni sornak nincs jelentősége, csak a kezdőcímének. A "jz" sor kezdőcíme $DB8, a rákövetkezőnek $DBE, vagyis 6 byte az ugróutasítás (opkóddal és címmel együtt), ergo hat darab $90-es bájtot kell beszúrnunk oda.

KHexEdit elő. Vlc kinyit. Ugrás a 3512. ($DB8) byte-ra, aztán 90 90 90 90 90 90, majd kontroless. :)))

Indíccsuk el a vlc-t. Dőljünk hátra és élvezzük, hogy csakazért is rootként futtathatjuk, anélkül, hogy újra kellett volna forgatni az egészet.

Köszönöm a figyelmet. :)

Sz*rk: Ja és így utólag nézve, még kevesebb időt is evett meg, mintha leforgattam volna egy "--allow-run-as-root paraméterrel". :P

Sz*rk #2: A vendégkönyv kapott még egy kis bugfixet (plusz sortörések a sor végén, textarea korlát megemelése), optimalizációt (felesleges karakterszűrések), vizuális javítást (szélesebb szövegdoboz), szóval javítgattam rajta. :P

Amúgy egy kulahalom az egész, dehát nincs szívem kidobni és írni egy újat nulláról, ez volt az első php-s "programom". :P

Még a Kalmárban, amikor az OKJ-t csináltam, volt olyan óránk, hogy "Internet Technológia", ahol azt mondta a Madarász tanár úr, hogy év végére, kb. egy vendégkönyv a követelmény. Kérdeztem, ha megírom most, nem kell bejárnom? Akkor nem kell. Oké. Másnapra ott volt a "vendégkönyv". X)

Egy kurva nagy halom kula volt, hiszen addig webbel kapcsolatban a tudásom usque kimerült a html-ben, meg egy nagyon-nagyon minimális javascriptezésben, php-t egy napja csináltam, sql meg abszolúte Ø. Meg is látszott ezen a szaron, a v0.x verziók még fájlba írogattak. XDDD
A v1.0-tól már sql volt és inkább hasonlít azóta egy "igazi" vendégkönyvre. Most már tudnék sokkal jobbat is, csak sajnálom kibaszni a qkába. :P

Már megint sokat pofáztam. :P


English | Magyar
JS ki | CSS ki | Ékezetek ki | HiContrast
Lapozó:  (0 - 1355) 
<== | ==>
Ugrás a végére | Összes megjelenítése | Utolsó oldal
OpenOpera patches | Opera-SSL patches | Opera 12.15 source (Git repository) | Opera 12.15 source (Torrent) | Opera internal pages | Otter Browser Linux x64 - Qt5.7.1/QtWebKit5.602.1 (2021.11.26. 11:56)
OS for Sparc64 | OS for PPC | besztofbégéaefcé | CSÉNDZSLOG | WebToolz | DDG Shit Filter | Google Shit Filter | Progz | Fast CSS Box | Browser | OS | Agent | Statisztika | BBCode
Monospace font-family: Courier New | Browser default monospace
Email értesítő / Email notification ===> 
Keresés

Név: (max 255 byte)

Email: (max 255 byte) Nem kötelező!

Üzenet: (max 65536 kar.) 65536-0=65536




crap_vkn v4.32.1 by TCH
Thx to saxus for the escaped string decoder function (PHP), the realIP function (PHP) & the SQL handle layer (PHP), to thookerov for the int_divide function (PHP), to Jeff Anderson for the getSelText function (JS), to Alex King for the insertAtCursor function (JS), Flood3r for the new CSS styles, Pety for the spamprotection idea and some design and comfort ideas, MaxMind for the IP2Country database, famfamfam for the flags of countries and an unknown PHP programmer for the removeAccents function.



Kecskebaszók ide!