電源をWifi(LAN)上で操作できるデバイスです
外出することが多くなりそうなので導入
ただ、心配なのが操作するアプリがLAN外から操作する場合に
製造元のサーバーを経由するということ
中国のよくわからないメーカーなので心もとない
ということでハックされたスクリプトで操作することに
情報元はここです
https://stikonas.eu/wordpress/2015/02/24/reverse-engineering-orvibo-s20-socket/
結論から言うと下記PHPファイルで操作できる
<?php
ob_start();
error_reporting(E_ALL | E_STRICT);
$server = 'IPADDRESS';
$port = 10000;
$macAddress = 'AC:CF:23:56:6C:24';
$twenties = '202020202020';
$ma = strtolower(implode('',explode(':',$macAddress)));
$maReverse = strtolower(implode('',array_reverse(explode(':',$macAddress))));
$subscribe = pack('H*','6864001e636c' . $ma . $twenties . $maReverse . $twenties);
$on = pack('H*','686400176463' . $ma . $twenties . '0000000001');
$off = pack('H*','686400176463' . $ma . $twenties . '0000000000');
//Create a UDP socket
if(!($sock = socket_create(AF_INET, SOCK_DGRAM, 0))) {
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Couldn't create socket: [$errorcode] $errormsg <br />");
}
echo "Socket created <br />";
// Bind the source address
if(!socket_bind($sock, "0.0.0.0" , $port)) {
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Error binding socket. Error code was " . $errorcode . " and error message was " . $errormsg);
}
echo "Socket bound. Waiting for incoming data.<br />";
echo "Sending subscribe packet ..";
socket_sendto($sock, $subscribe, strlen($subscribe), 0, $server, $port);
sleep(2);
echo "Sending ON packet ..";
socket_sendto($sock, $on, strlen($on), 0, $server, $port);
sleep(2);
echo "Sending OFF packet ..";
//socket_sendto($sock, $off, strlen($off), 0, $server, $port);
ob_flush();
//Do some communication, this loop can handle multiple clients
while(1) {
//Receive some data
$r = socket_recvfrom($sock, $buf, 512, 0, $remote_ip, $remote_port);
$buf = ascii2hex($buf);
echo "Data from " . $remote_ip . ": " . $buf . "<br />";
ob_flush();
}
function ascii2hex($ascii) {
$hexadecimal = '';
for ($i = 0; $i < strlen($ascii); $i++) {
$byte = strtoupper(dechex(ord($ascii{$i})));
$byte = str_repeat('0', 2 - strlen($byte)).$byte;
$hexadecimal.=$byte." ";
}
return $hexadecimal;
}
socket_close($sock);
?>
TODO Ctrl+Cしないと終了しない
2015年10月27日火曜日
2015年10月26日月曜日
iPhoneでのOpenSSHの安全な設定
いつもiPhoneにOpenSSH入れる時に見ていたサイトから
いつの間にか記事がなくなっていたのでメモしておく
ssh mobile@ipaddress
デフォルトのパスワードはalpine
su
passwd
新しいパスワード
ssh-keygen -t rsa
autorized_keyに保存する
WinSCPやFileZilla等利用
OpenSSHの場合はそのまま、puttyの場合はputty-genで置換する必要がある
ちなみにviのコマンド(i:インサートモード,esc:ノーマルモード,x:一文字削除,dd:行削除,:wq:保存,:q!:保存せずに閉じる)
su
いつの間にか記事がなくなっていたのでメモしておく
●ssh でユーザーmobileにアクセスする
ssh mobile@ipaddress
デフォルトのパスワードはalpine
●rootのパスワード変更
su
passwd
新しいパスワード
●共通鍵の生成
ssh-keygen -t rsa
保存先は空白
任意のパスフレーズ
autorized_keyに保存する
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/.ssh/id_rsa.pub
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys●秘密キーの設置
作成したid_rsaをPCもしくはMacに持ってくるWinSCPやFileZilla等利用
OpenSSHの場合はそのまま、puttyの場合はputty-genで置換する必要がある
●SSHdの設定を変更する
該当行を次のように変更
sudo vim /etc/ssh/sshd_config #vimはcydiaからインストールしておく
# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key #version1は使わない
PermitRootLogin no #rootユーザではログインさせない
#RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys #公開鍵方式を使う
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no #パスワード認証は行わない
ちなみにviのコマンド(i:インサートモード,esc:ノーマルモード,x:一文字削除,dd:行削除,:wq:保存,:q!:保存せずに閉じる)
● サービスの再起動
su
launchctl unload /Library/LaunchDaemons/com.openssh.sshd.plist
launchctl load /Library/LaunchDaemons/com.openssh.sshd.plist
2015年2月21日土曜日
Windows 8 スリープからの自動復帰を切る
自宅のメインマシンはWindows 8機で基本的にスリープで運用しています。
スリープまたは休止状態から勝手に復帰するようになって
睡眠を妨げるようになったのでイラついた勢いで設定を見直しました
原因として考えられるのは、
WakeOnLan
マウス等デバイスの (誤)操作
タスクスケジュールの実行
直近の起動理由を知るには次のコマンドを実行します
>powercfg lastwake
マウスでの実行であれば次のような出力
切ってみましたが効果なし
Wake History [0]
Wake Source Count - 1
Wake Source [0]
Type: Device
Instance Path: ACPI\PNP0303\4&6
Friendly Name:
Description: 標準 PS/2 キーボー
Manufacturer: (標準キーボード)
復帰予定のスケジュールを探す
>powercfg waketimers
次のような出力があります。
原因はmcupdate_scheduledというスケジュールのようです。
Timer set by [SERVICE] \Device\HarddiskVolume1\Windows\System32\svchost.exe (Sys
temEventsBroker) expires at 3:31:08 on 2015/02/18.
Reason: Windows は、スリープ状態の解除を要求したスケジュールされたタスク 'NT T
ASK\Microsoft\Windows\Media Center\mcupdate_scheduled' を実行します。
WakeOnLanの場合、
デバイスマネージャから対象のネットワークアダプタのプロパティを開く
電源の管理タブから
” Magic Packetでのみ、コンピュータのスタンバイ状態を解除できるようにする”
のチェックを外すか選択できない状態にする
マウス、キーボードの場合、
デバイスマネージャから対象のデバイスのプロパティを開く
電源の管理タブの ”このデバイスで、コンピュータのスタンバイ状態を解除できるようにする”
のチェックを外す
スケジュールの場合、
”管理ツール>タスクスケジューラ”から対象のスケジュール(mcupdate_scheduled)を捜し
条件タブの”タスクを実行するためにスリープを解除する”のチェックを外す
スリープまたは休止状態から勝手に復帰するようになって
睡眠を妨げるようになったのでイラついた勢いで設定を見直しました
原因として考えられるのは、
WakeOnLan
マウス等デバイスの (誤)操作
タスクスケジュールの実行
1.原因究明
直近の起動理由を知るには次のコマンドを実行します
>powercfg lastwake
マウスでの実行であれば次のような出力
切ってみましたが効果なし
Wake History [0]
Wake Source Count - 1
Wake Source [0]
Type: Device
Instance Path: ACPI\PNP0303\4&6
Friendly Name:
Description: 標準 PS/2 キーボー
Manufacturer: (標準キーボード)
復帰予定のスケジュールを探す
>powercfg waketimers
次のような出力があります。
原因はmcupdate_scheduledというスケジュールのようです。
Timer set by [SERVICE] \Device\HarddiskVolume1\Windows\System32\svchost.exe (Sys
temEventsBroker) expires at 3:31:08 on 2015/02/18.
Reason: Windows は、スリープ状態の解除を要求したスケジュールされたタスク 'NT T
ASK\Microsoft\Windows\Media Center\mcupdate_scheduled' を実行します。
2.スリープ解除をきる
WakeOnLanの場合、
デバイスマネージャから対象のネットワークアダプタのプロパティを開く
電源の管理タブから
” Magic Packetでのみ、コンピュータのスタンバイ状態を解除できるようにする”
のチェックを外すか選択できない状態にする
マウス、キーボードの場合、
デバイスマネージャから対象のデバイスのプロパティを開く
電源の管理タブの ”このデバイスで、コンピュータのスタンバイ状態を解除できるようにする”
のチェックを外す
スケジュールの場合、
”管理ツール>タスクスケジューラ”から対象のスケジュール(mcupdate_scheduled)を捜し
条件タブの”タスクを実行するためにスリープを解除する”のチェックを外す
登録:
投稿 (Atom)