Posts Tagged ‘repair’

How i repaired my (Xtreamer) remote control

2011/02/09 14 comments

I love my xtreamer, which is the best media player on the market. The player itself is very roboust and made out of class A material. Except the remote. As the remote is very small and round at the bottom, it tends to fall down on the floor very often. My remote fell down nearly once a day. So the case may be resistant, but the circuit board isn’t.

After falling down the maybe 500th time, the remote was not working at all. The red LED was very, very weak illuminated when i pressed any button. With a digicam i checked if there was any infrared light sent out (Just hold the white diode (or the red, transparent area) of you remote in the cam, press any button and the sensor of the cam will make the invisible infrared light visible in the cams preview window). Nope, it really was broken.

So i had to open the remote, i used a iphone opener (aka. guitar plectrum). When checking the circuit board, i saw the capacitor soldered horizontally on the board with those tiny legs through the board. Installed like this the soldering points have a strong leverage to handle, every time the remote falls down. At the end it teared out the complete soldering point of the vcc+.

This how-to may also work on other remote controls, you just have to find the next soldering possibility (next “+” or next “-“) by yourself!

Disclaimer: I do not take any responsibility for any damages you produce. This guide is just a suggestion how you could fix your remote!

This is how you identify the weak soldering:

You can see that on leg has been pushed through the board or is not completely soldered on the circuit. You may need to softly move the capacitor a little bit to identify if the soldering on  the other bottom of the circuit board is moving too.


Lets have a look at the board from the bottom:

The plus terminal of the capacitor was pushed through the board and the soldering point was lifted in the air with no connectivity to the circuit board. Fortunately there are two unused soldering points for each pole (Marked with +  and – in the picture). So you just need two small pieces of wire (or only one wire if only one soldering is broken) and a soldering gun.

Just heat the solder on the (broken)plus leg of the capacitor and put the wire in pointing to the unused soldering point. Make sure that you don’t produce a short. Keep the distance between “+” and “-“, do not solder the terminals together!

When you are finished, it has to look like this:

As you can see, the free soldering point is now completely soldered together with the leg of the capacitor (and no short ;)).

Continue with the minus leg when its broken, too. That’s it. Enjoy your repaired remote control.

Update on priemIframe hacks

2011/01/24 3 comments

From all the feedback I receive, it seems like the attack is focused on german websites. I drew a flow explaining how the circle of death & destruction works:

Roland Bollmann from wrote a php script to cleanup hacked servers. Thanks for the submission:

// hacked.php version 1.01 2011/01/24
// upload this script somewhere onto your server
// call "find -name php" to get the path to php (like /usr/lib/cgi-bin/php)
// and then call "/usr/lib/cgi-bin/php /home/www/web6/hacked.php path=/"
// to scan and repair the entire server ;-)
// usage at your own risk :-)

$hC = array(
'filereg'    => '/^.+index\.[^.]+$/i',
'hackmatch'    => '<iframe.+?priemIframe\.php.+?<\/iframe>',
'path'        => '.',
'test'    => 0

$sHtml = $_SERVER['PHP_SELF'] ? '<br/>' : '';

if ($sHtml)
print "run from http$sHtml\n";
foreach($hC AS $name => $var)
if (isset($_GET[$name]))    $hC[$name] = $_GET[$name];
print "run from console. usage: hacked.php [option1=value1] [option2=value2] ..\n";
for ($i=1; $i<count($argv); $i++)
list($name,$var) = explode('=',$argv[$i]);
if (isset($hC[$name]))
$hC[$name] = $var;
else    die("unkown command '$name'. possible commands:
'filereg'    = '/^.+index\.[^.]+\$/i'
'hackmatch'    = '<iframe.+?priemIframe\.php.+?<\/iframe>'
'path'        = '.'
'test'        = 0

foreach($hC AS $name => $var)
if ($sHtml)    print "$name = ".htmlspecialchars($var)."$sHtml\n";
else    print "$name = $var $sHtml\n";

$Directory = new RecursiveDirectoryIterator($hC['path']);
$Iterator = new RecursiveIteratorIterator($Directory);
$Regex = new RegexIterator($Iterator, $hC['filereg'], RecursiveRegexIterator::GET_MATCH);

$iTotal = 0;
$iTotalHits = 0;
foreach($Regex AS $a)
foreach($a AS $sPath)
if ($hC['test'])    print "$sPath$sHtml\n";

if (Load($sPath,$s))
$iHits = 0;
$s = $aM[1].$aM[2];
if ($iHits)
print "$sPath hits: $iHits$sHtml\n";
if (!$hC['test'])    Save($sPath,$s);

$iTotalHits += $iHits;

print "total matches: $iTotal$sHtml\ntotal hits: $iTotalHits$sHtml\n";

function Load($sPath,&$sData)
error_reporting(E_ERROR | E_PARSE);
$sData = file_get_contents($sPath);
error_reporting(E_ERROR | E_WARNING | E_PARSE);

if ($sData === FALSE)
return 0;
return 1;

function Save($sPath,$sData)
$hfile = fopen($sPath, "w");
if (!$hfile)
print("the file $sPath could not be opened for writing :-($sHtml\n");
return 0;
fwrite($hfile, $sData);
return 1;



I just got feedback from german abuse department of 1&1 Server Provider, they will check for these links in their access filters. So the world is a little bit safer now. 🙂