Wednesday, 23 March 2016

Install VLC & Fix Errors

VLC is a free and open source cross-platform multimedia player and framework that plays most multimedia files as well as DVDs, Audio CDs, VCDs, and various streaming protocols. It is one of the most used and popular Media player for Linux users.Very easy to install as it’s available via almost any Linux distro’s repo. However, in case you use Linux as root user like me, (or you’re a fellow Kali Linux user) then you have already seen this error “VLC is not supposed to be run as root. Sorry“. This post will go through the steps required to runvlc as root in Linux (any Linux to be precise).
In case you don’t have VLC installed, you can use the following command:

apt-get install vlc

But when you try to run VLC as root, you will see the following error:

VLC Running As Root Error:

VLC is not supposed to be run as root. Sorry.
 If you need to use real-time priorities and/or privileged TCP ports
 you can use vlc-wrapper (make sure it is Set-UID root and cannot be run by non-trusted users first).
Fixing “VLC is not supposed to be run as root. Sorry” error
Though it is not advisable to run the applications as root, but there is a way to do that. First of all, take a backup:
root@kali:~# cp /usr/bin/vlc /usr/bin/vlc-backup

Now open vlc binary using hexeditor:

root@kali:~# hexeditor /usr/bin/vlc

This will open VLC binary in hexeditor. Press CTRL+W to open search window. Select “search for text string” and press enter.

Type in geteuid and press Enter.

Now Press Tab key on your keyboard.  This switches you to ASCII side of hexeditor.
Replace geteuid with getppid as shown in the image below:

 Press Ctrl + X to exit saving changes. Save as /usr/bin/vlc.

To revert your changes, you just need to restore the backup created earlier:

root@kali:~# cp /usr/bin/vlc-backup /usr/bin/vlc
Pretty easy. 

If you have VLC installed and it is not running :

cp /usr/bin/vlc /usr/bin/vlc-backup
 needle=$(objdump -d /usr/bin/vlc | grep euid | tail -1 | awk '{print "\x"$2"\x"$3"\x"$4"\x"$5"\x"$6;}')
 sed -ir "s/$needle/\xb8\x01\x00\x00\x00/" /usr/bin/vlc

No comments:

Post a Comment