sobota 19. prosince 2015

První pokusy s CAN bus u Octavia II

K rádiu Stream je mimo jiné přivedena i sběrnice CAN bus. Stačilo si realizovat převodník CAN Bus s procesorem ST32F1xx a mohl jsem vesele odposlouchávat, co si auto pro sebe brumlá. Přikládám několik prvních výsledků zjištěných reverzním inženýrstvím.  

ID: 0x470 00 XX 00 00 00 – kontakty dveří



XX
7
6
5
4
3
2
1
0


kufr otevřít
kapota
pravé zadní
levé zadní
spolujezdec
řidič

kufr prostor otevřen







ID: 0x2C1 0X 00 00 00 04 – blinkry



Pravý X - 2
Levý X - 1
Varovné X - 4

ID: 0x571 XX 00 00 00 00 00 – napětí akumulátoru [V]



Napětí akumulátoru: (XX/2+50)/10 [V] Příklad: 0x571 BA 00 00 00 00 00 0xBA => 14,3 V




ID: 0x359 00 XX YY 00 00 00 00 00 - rychlost

Rychlost: (YY*256 + XX) / 201 [km/hod]
z XX se nebere nejvyšší bit

ID: 0x351 00 XX YY 00 00 00 00 00 - rychlost

Rychlost: (YY*256 + XX) / 201 [km/hod]

ID: 0x35B 00 XX YY ZZ 00 00 00 – otáčky motoru + teplota vody



Otáčky motoru:  (YY*256+XX)/4 [ot/min] Příklad: 0x35B 00 24 0E 55 08 19 02 29 0x24, 0x0E => 905 ot/min
Teplota motoru:  ZZ-10 [°C] Příklad: 0x35B 00 24 0E 55 08 19 02 29 0x55 => 75,00 °C

Pokud motor neběží, tak je první byte 0x07, díky čemu je možné poznat zda jsou data platná či ne.





ID: 0x65D Ujeté kilometry + datum a čas

0x065D F0 F2 ED 02 00 90 9E 06
11110000 11110010 11101101 00000010 00000000 10010000 10011110 00000110
Ujeté km = 242 + 237 * 256 + 2 * 256 * 256 = 191 986 km
Hod = 144 / 16 + 0 * 16 = 9
Min = 30 / 2 = 15
Sec = 6 * 2 + 128 / 128 = 13

Testovaná O2 patrně nemá aktuální datum, pouze čas.
Rok = 0/128 + 0 *128 + 2000 = 2000
Měsíc = 0 / 8 = 0
Den = 0 / 128 + 0 * 2 = 0


Nultý bajt zatím neidentifikován (mění se bez zjevné návaznosti na ujeté km i čas).


Datum a čas
CAN ID
B0
B1
B2
B3
B4
B5
B6
B7

Datum a čas
km



Hod
Min
Sec
Výsledek
16.01.2016 11:58
0x065D
F6
EC
EE
02
00
B0
F6
00

16.01.2016 11:58
192236
10110000
11110110
00000
11
59
1
11:59:01
16.01.2016 15:51
0x065D
F7
32
EF
02
00
F0
68
10

16.01.2016 15:51
192306
11110000
01101000
10000
15
52
32
15:52:32
16.01.2016 16:06
0x065D
F8
3E
EF
02
00
00
8F
14

16.01.2016 16:06
192318
00000000
10001111
10100
16
7
41
16:07:41

ID: 0x03E3 00 00 00 00 00 00 00 00 - nemění se

ID: 0x65F VIN kód 0X 00 00 00 00 54 4D 42

X – značí část VINu a první bajt značí, která část VIN se zrovna přenáší (0, 1 a 2)
65F
0
0
0
0
0
54
4D
42

TMB
TMBBS21Z952XXXXXX
65F
1
42
53
32
31
5A
39
35

BS21Z95
65F
2
32
XX
XX
XX
XX
XX
XX

2XXXXXX




Jak se zjišťuje





neděle 13. prosince 2015

Jak si ve Windows 10 zachovat původní prohlížeč obrázků?

Stačí si vytvořit následující klíče v registrech:

[HKEY_CLASSES_ROOT\SystemFileAssociations\image\shell\openwpv]
@="Open with Windows Photo Viewer"

[HKEY_CLASSES_ROOT\SystemFileAssociations\image\shell\openwpv\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,72,00,75,00,\
  6e,00,64,00,6c,00,6c,00,33,00,32,00,2e,00,65,00,78,00,65,00,20,00,22,00,25,\
  00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,69,00,6c,00,65,00,73,00,\
  25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,50,00,68,00,6f,\
  00,74,00,6f,00,20,00,56,00,69,00,65,00,77,00,65,00,72,00,5c,00,50,00,68,00,\
  6f,00,74,00,6f,00,56,00,69,00,65,00,77,00,65,00,72,00,2e,00,64,00,6c,00,6c,\
  00,22,00,2c,00,20,00,49,00,6d,00,61,00,67,00,65,00,56,00,69,00,65,00,77,00,\
  5f,00,46,00,75,00,6c,00,6c,00,73,00,63,00,72,00,65,00,65,00,6e,00,20,00,25,\
  00,31,00,00,00

[HKEY_CLASSES_ROOT\SystemFileAssociations\image\shell\openwpv\DropTarget]
"Clsid"="{FFE2A43C-56B9-4bf5-9A79-CC6D4285608A}"

[HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open]
"MuiVerb"="@photoviewer.dll,-3043"

[HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,72,00,75,00,\
  6e,00,64,00,6c,00,6c,00,33,00,32,00,2e,00,65,00,78,00,65,00,20,00,22,00,25,\
  00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,69,00,6c,00,65,00,73,00,\
  25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,50,00,68,00,6f,\
  00,74,00,6f,00,20,00,56,00,69,00,65,00,77,00,65,00,72,00,5c,00,50,00,68,00,\
  6f,00,74,00,6f,00,56,00,69,00,65,00,77,00,65,00,72,00,2e,00,64,00,6c,00,6c,\
  00,22,00,2c,00,20,00,49,00,6d,00,61,00,67,00,65,00,56,00,69,00,65,00,77,00,\
  5f,00,46,00,75,00,6c,00,6c,00,73,00,63,00,72,00,65,00,65,00,6e,00,20,00,25,\
  00,31,00,00,00

[HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open\DropTarget]
"Clsid"="{FFE2A43C-56B9-4bf5-9A79-CC6D4285608A}"


Uložit do souboru s příponou .reg a spustit jako administrátor.
Jinak samostatný prohlížeč je možné spustit takto: rundll32 "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen

neděle 22. listopadu 2015

Jak vypadá svět normálního uživatele?

Jak vypadá svět normálního uživatele? Tedy toho, který netuší co znamená název AdBlock? Tuto otázku jsem si položil při instalaci nového systému, kdy jsem musel v modrém éčku stáhnout instalaci Chrome a dalších oblíbených prohlížečů. Byl jsem zděšen množstvím reklam, které z většiny webů padají. Viz přiložené obrázky, myslím, že nepotřebují další komentář. Snad jen, prohlížeč za nic nemůže. A víte kdo je největší světový prodejce reklamy? No přeci Google, poznáte to někde?











neděle 18. října 2015

WOL pro Vu+ DUO2

Přijímače Vu+ DUO2 mají na rozdíl oproti starším IPBoxům možnost probouzení prostřednictvím síťové karty (WakeOnLan). Na web serveru stačí vytvořit následující skriptík, který v podstatě jen zapíše MAC adresu do souboru a cron periodicky testuje, zda se v /tmp/WOL.txt nějaká MAC nachází a pokud ano, tak ji pošle Magic Packet. Takto je to realizováno, aby script nemusel mít nastavena rootovská práva, což by mohlo být případnou bezpečnostní hrozbou.

<?php

header("Location: index.php", true, 301);
if (isset($_REQUEST["MAC"]) && (strlen($_REQUEST["MAC"]) == 17))
{
    $MAC = $_REQUEST["MAC"];
    $pole = explode(':', $MAC);
    if (sizeof($pole) == 6) // je MAC dost dlouhá na MAC?
    {
        $i = 0;
        foreach ($pole as $Hodnota)
        {
            $MAC[$i] = sprintf("%02X", hexdec($Hodnota)); // projedeme a převedeme HEX na BIN a zpět
        }
        print_r($MAC);
        $MAC_wol = implode(":", $pole);
        shell_exec('echo "'.$MAC_wol.'" > /tmp/WOL.txt');
    }
}
exit();

?>

Vlastní skript WOL.sh

#!/bin/sh

File="/tmp/WOL.txt"

if [ -f $File ]; then
  MAC=$(cat $File)
  echo $MAC
  /usr/bin/etherwake -D -i "br-lan" "$MAC"
  logger -s "Wake On Lan $MAC"
  rm $File
fi


Řádek v CronTab:
* * * * * root /usr/sbin/WOL.sh