Google Code Prettify

2015年11月1日日曜日

領収書をサクッと取り込んで、家計簿にする件

MoneyForwardとかMoneyTreeとかにサクッと領収書を取り込む仕組みって簡単に始められそうなんですが、日本での利用が前提になってるっぽい作りなんで、複数通貨を管理したい自分はとりあえずあきらめてました。
いろいろ調べてたら、海外でも同じようなサービスがあるっぽいので、始めてみようと思います。


Waveって会計ソフトサービスとShoeboxedって領収書管理サービスを組み合わせることで、だいぶいい感じに管理ができそうな雰囲気です。



Master your money, get on with your day.

100% free personal finance software that helps you stay on top of your income, expenses and investments, fast. Learn more.







AmazonのオーディオブックサービスAudible

AmazonのオーディオブックサービスAudible(オーディブル)が、今登録すると1ヶ月間無料で体験ができるらしい

オーディブルの1ヶ月無料体験を試した感想

ガツガツ本読みして、ダウンロードしまくるとか

VMWareが「重たい」問題解決法いろいろ

これをやったらとりあえず問題のVMは調子よくなった感じで。

  1. Open the .vmx file of the virtual machine using a text editor. For more information, see Editing the .vmx file for your Fusion virtual machine (1014782).
  2. Add this entry to the .vmx file:

    isolation.tools.hgfs.notify.enable = "FALSE"

これ以外にも、いろいろ対策があるっぽいです。






2015年4月12日日曜日

ACR122U-A1(黒いOctopusリーダー)とACR122U-A9(白いNFCリーダー)

白と黒のACR122Uを2つ持っててどうしても2つの挙動が違うので、調べまくりました。中国語の情報ソースによりますと、
ACR122Uっていろんなバージョンがあって、黒い筐体のACR122U-A1だと書き込みできないし、ビープ音もでない。香港のOctopus社やMTR駅カスタマーサービスにて販売しているのがこのタイプ。使えない。ACR122U-A9は一般的に白い筐体にNFFCってロゴがついているもの。A1の問題は無いようで。

NFC工具——ACR122U常识介绍より引用
ACR122U分几个不同的版本,各个不同的版本之间价格相差不算小。其中黑色版本的A1,背面P/N:ACR122U-A1的已经停产不短时间了。据说该卡不支持很多卡片的写入,特别是写入。注意:该版本不带蜂鸣器。

另外常见的是A9,一般是白色的,在正面是有NFC的LOGO,背面标识为P/N:ACR122U-A9。该版本带有了蜂鸣器。

推荐大家还是购买ACR122U-A9吧,自己实际测试了一下,还是A9的使用更舒服,更人性。

2015年4月11日土曜日

MIFARE Classicの分析

MIFARE Classicカードの分析です。要点と情報源をまとめました。

Technical Background
  • Introduced in 1995 by NXP
  • “Advanced technology for RFID identification”
  • Based on ISO/IEC 14443 Type A 13.56 MHz standard
NFC Utilities
Backtrack ... Linux Distribution for Penetration Testing tools
Kali Linux ... Backtrackの後継

VMware image at offensive security
Download Location

Latest image


Checking card on the reader
george@netbook-linux ~/nfc/libnfc-1.7.0-rc7 $ sudo nfc-list 
nfc-list uses libnfc 1.7.0-rc7 
NFC device: ACS / ACR122U PICC Interface opened 
1 ISO14443A passive target(s) found: 
ISO/IEC 14443A (106 kbps) target: 
ATQA (SENS_RES): 00 04 
UID (NFCID1): 3e d1 11 f3 
SAK (SEL_RES): 08

Dump RFID/NFC Card Data
Place your card on your reader, then run MFOC using the following command;
sudo ./mfoc -P 500 -O dump.mfd
The -P flag specifies the number of probes used in the attack. The more probes used, the faster the attack will complete at the expense of system resources. The default is 20 and it can greatly speed up the attack to use a larger number. 
The -O flag will specify the name of the file that you are dumping the card data to.

Dump Blank Card Keys
Remember that in order to write data to a card, you must hold the keys for each sector. Blank cards usually contain a series of default keys, so dumping them to a file using MFOC takes just seconds. To dump the keys to a file, run the following command;
sudo ./mfoc -P 500 -O keys.mfd

Clone RFID/NFC Card Data
To copy the card data onto a blank card INCLUDING the UID (providing you are using a magic card), run the following command;
sudo ./nfc-mfclassic W A path/to/dump.mfd path/to/keys.mfd 

Display dump data by Hex and Ascii
root@kali:~# od -v -t x1z -Ax keys-test.mfd 
000000 53 54 61 68 0e 08 04 00 69 73 73 69 35 36 34 30  >STah....issi5640<
000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000030 ff ff ff ff ff ff ff 07 80 69 ff ff ff ff ff ff  >.........i......<
000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000070 ff ff ff ff ff ff ff 07 80 69 ff ff ff ff ff ff  >.........i......<
000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<


Reference information

Hacking the NFC cards for fun and honor degrees

George Smart - NFC Experiments

alphazo / gist:3303282 dump card, reading keys

2014年11月9日日曜日

Raspberryで自動温度測定 取得データの自動アップロード (DS18B20 + Google Drive)

オフィスに局所的に寒いところがあるので、温度を測定して記録を取る仕組みを考えました。局所的に寒いってことなんで、寒い所と普通の所の2カ所で測定が必要なんで、もう1つRaspberryを買い足しました。いつの間にかにRaspberry Pi Model B+なんて新機種も出てるようで。USB端子が増えてたり、メモリカードが出っ張らなくて全体的にスッキリした感じです。




ケースに入れると入出力用端子へのアクセスが不自由なので、その辺にあったIDEケーブルを挿して、ケーブルの先に各種入出力機器をつなげるようにしました。
これに温度センサーをくっつけ、無線通信ドングルくっつけて、自動温度測定が実現できます。
ただ、Arduinoと違いA/D変換ができないので、そこらへんでよく見るようなアナログセンサーではダメです。いろいろ検索したら、DS18B20というセンサーがご丁寧にデジタル信号を出してくれるもので、Raspberryと連携させている人がたくさんいるようで、あとはモノマネ+カスタマイズで完了です。

プルアップの抵抗とセンサーを小さな基盤に半田付けするだけなのですが、かなりてこづりました。中学生の時の「技術」の時間に作った半田ごてを使い(変圧器も)、半田付けをしましたが、どうやら手際が悪かったのか、熱でセンサーを痛めてしまったらしく、温度センサーがゴミデータを返すだけです。。

仕方ないので、まともな半田ごてや半田ごてをのせる台やら、センサーを基盤に直付けしないで済むように、ソケットを買ったり、そもそもセンサーが正常かどうか確かめるためにブレッドボードを買ったり、電子工作環境を整えることにしました。香港の秋葉原はシャムシュイポですが、秋葉原の秋月電子とかラジオデパートみたいなパーツ売りの店って、なかなか思いつきません。深センの華強まで行くのはおっくうなので、よ〜く探したところ、ちゃんとありました。シャムシュイポに。

Welfare Electronic Component Ltd (華輝無線電行)
http://www.weclonline.com/tchi/index.asp

華輝無線電行ってとこでいろいろ買い込んで、温度センサーのほうは、Raspberryを買った泰豪科技というお店でまた買い直しました。これで4つセンサーを買ってます。センサー好きな日本人って覚えられてしまったような。
30年前と同じようなことを香港でしてるのが、情けないですが、好きでやってるんで気にしないと。

TELL HOW TECHNOLOGY (泰豪科技)
http://tellhow-tech.com

とりあえず、1に書いてある要領でセンサーからデータを取得できることを確認し、そこから2に書いてあることを実行します。センサーのIDがRaspberryの再起動とともにコロコロ変わってしまうので、IDを自動で検知するようにしたり、データの吐き出し先を外部のデータベースではなく、ローカルのテキストファイルに切り替えて、3で書いてある要領でGoogle Driveへの同期という仕組みに切り替えます。これで、通信が安定してないとしても、確実にデータの測定だけは続け、繋がったときに最新データをGoogle Driveに同期させることができます。

1. Connecting a temperature sensor to GPIO
http://raspberrywebserver.com/gpio/connecting-a-temperature-sensor-to-gpio.html

2. Temperature monitoring with the Raspberry Pi
http://iada.nl/en/blog/article/temperature-monitoring-raspberry-pi

3. Back up your Pi to your Google drive
http://raspberrywebserver.com/serveradmin/back-up-your-pi-to-your-google-drive.html

4. Raspberry piとGoogleドライブでバックアップ環境
http://blog.gogo-games.com/?p=167

2014年7月27日日曜日

NFCカード(payPass)を読んでみた - Octopusカードリーダー使ってみた

カードを読んで、カード番号次第で電源をオンにするような仕組みのプロトタイプを作りたかったので、ちょっとNFCの勉強しました。電源オンの仕組みは以前作ったので、今回取り組んだ案件の肝はカード読み取りです。

まずはカードリーターの確保。いろいろ買っちゃいましたが、案外これだけで十分そうです。HK$148 (2000円弱)で香港中のMTR駅構内のカスタマーサービスで買えます。

Welcome to Octopus Hong Kong - Get Your Octopus - Online Shop
http://onlineshop.octopus.com.hk/cart/?catid=3


ACSのACR122というものですが、シャムスイポだとHK$400とかぼったくられそうな品物ですが、MTRで買えばたったのHK$148です。香港の会社が製造していて、そこそこ海外でも認知されているようで。恐るべし香港。

制御に使うコンピューターですが、またしても、Raspberryで制御です。
持ち運んでどこでも見せることができるし、安いので最近はこればかりいじってます。
関係しそうな情報を片っ端から眺めて、ちょうどいいツールのめぼしをつけました。
やってることは、Linuxでlibnfcを使ってちょっとCとかシェルスクリプトを書いてるだけなんで、Raspberryだけでなくそこら中のLinuxでも同じはずです。

Hacking the NFC credit cards for fun and debit Renaud Lifchitz
http://www.ustream.tv/recorded/21805507
https://www.youtube.com/watch?v=VWIzW0rRw_s

"Hacking the NFC credit cards for fun and debit ;)" presentation slides - HES2012 - Renaud Lifchitz
https://code.google.com/p/readnfccc/downloads/detail?name=hes2012-bt-contactless-payments-insecurity.pdf&can=2&q=

Contacless payments insecurity Renaud Lifchitz - 8.8 Computer Security Conference October 24-25, 2013 – Santiago, Chile
http://www.8dot8.org/2013/deck/8dot8_2013_pres_RL.pdf


readnfccc ... English version
https://github.com/azet/readnfccc/blob/master/readnfccc.c

readnfccc 2.0 ... Spanish version
https://github.com/azet/readnfccc/blob/master/readnfccc.es.c


Complete list of EMV & NFC tags
https://www.eftlab.co.uk/index.php/site-map/knowledge-base/145-emv-nfc-tags

emvlab.org - the one-stop tools site for banking techies
http://www.emvlab.org/

emvlab.org:TLV Utilities - decodes EMV records encoded in tag-length-value (TLV) format.
http://www.emvlab.org/tlvutils/

Getting information from an EMV chip card with Java
http://blog.saush.com/2006/09/08/getting-information-from-an-emv-chip-card/

MasterCard PayPass Vendor Testing Guide (Terminals) Version 1.0 - September 2007
https://www.paypass.com/pdf/public_documents/PayPass%20Vendor%20Testing%20Guide%20Terminals%20Sept07.pdf

この、readnfcccっていうのが、手っ取り早くカード番号を読むのに使えそうなツールなのですが、どうもすんなりとは動きません。libnfcを入れるところから始まり、"byte_t"なんて型知らないとコンパイラに怒られ新しいバージョンを探し直したり、見つかった新しいバージョンもすんなりとは動作せず、自分の環境、カードで動作させるために、電文の内容を把握することが必要そうです。。ところどころプログラムをいじくって、どうにかこうにか、payPassカード番号だけは読み込むようになりました。。
下記のような雰囲気の修正をちょこちょこしてます。
単なるPoCだったのに、だいぶ疲れたのでもうおしまいです。

52c52
<   uint8_t SELECT_APP[] = {0x00, 0xA4, 0x04, 0x00, 0x07, 0xA0, 0x00, 0x00, 0x00, 0x04, 0x10, 0x10, 0x00};
---
>   uint8_t SELECT_APP[] = {0x00, 0xA4, 0x04, 0x00, 0x07, 0xA0, 0x00, 0x00, 0x00, 0x42, 0x10, 0x10, 0x00};
166,167c163
<     if (*res == 0x15 && *(res + 1) == 0x57) {
<     // if ( *(res + 1) == 0x57) {
---
>     if (*res == 0x9c && *(res + 1) == 0x57) {

2014年7月26日土曜日

Raspberry起動時にIP通知

出先にて、iPhoneやPocket Wifiを経由してRaspberryをインターネット接続している時に、iPadやらiPhoneからRaspberryにログインしたい時があります。Raspberry起動時にIP通知されるようにしました。

これを参考にメール設定。
TNET Raspberry Pi Site/ SMTP Mail Setup
http://rpi.tnet.com/project/faqs/smtp

具体的にはこんな感じで。
sudo apt-get install ssmtp
sudo apt-get install mailutils
sudo apt-get install mpack
pi@raspberrypi ~/wemo $ cat /etc/ssmtp/ssmtp.conf
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster

# The place where the mail goes. The actual machine name is required no 
# MX records are consulted. Commonly mailhosts are named mail.domain.com
#mailhub=smtp.gmail.com:587

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=raspberrypi

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES


AuthUser=xxxxxx@gmail.com
AuthPass=xxxxxxxxx
FromLineOverride=YES
mailhub=smtp.gmail.com:587
UseSTARTTLS=YES

メール送信
echo "sample text" | mail -s "Subject" username@domain.tld

添付ファイル送信

mpack -s "test" /home/pi/test/somefile.ext username@domain.tld

Crontabに起動時の処理を設定
pi@raspberrypi ~/wemo $ crontab -l
MAILTO=""
@reboot /home/pi/wemo/reboot-notification
pi@raspberrypi ~/wemo $ cat reboot-notification
#!/bin/bash

echo `sudo ifconfig | mail -s "Reboot-Raspberry" xxxx@xxxxx.com`

これで、起動時にifconfigの内容がメールで届きます。実行内容を通知するうるさいメールはMAILTO=""で止めてます。

2014年6月23日月曜日

自作ネット家電 - Wemo制御をRaspberry Piで


前回導入した「エアコン制御のWemo」のため、単なるリモコン機能を作りたいだけなので、マイコンボードとでっかいボタンを買えば何とかなると思い、ArduinoとRaspberry Piのどちらにすればいいか悩み始めました。

Raspberry Piのほうが、フル機能のLinuxとして使い回しが楽そうで、どっちも大した値段ではないので、Raspberry Piを買いました。配線を減らしたいので、Wifiトークンを買い、基盤のままの運用は危なっかしいので透明なカバーも購入しました。シャムシュイポを歩き回って見つけ出したお店でしめてHK$530なり。びた一文もまけてくれなかった。






公式サイトからRASPBIANをダウンロードして、ラズビアン(レズビアン?)をインストールします。

Downloads | Raspberry Pi
http://www.raspberrypi.org/downloads/

INSTALLING OPERATING SYSTEM IMAGES ON MAC OS
http://www.raspberrypi.org/documentation/installation/installing-images/mac.md

Raspberry Pi の初期設定

Shell Script To Control Belkin WeMo’s

Shell Script To Control Belkin WeMo’s

RaspberryにWifi USBをくっつけて、Curl, Awkを入れた後、簡単なスクリプトをセットアップするだけでリモコンになりました。
ボタンと基盤を買ってみたものの、ベッドの上での乱暴な操作に耐えるにはきちんとした操作パッドが必要だと後になってから気がついたので、ファミコンキーパッドを買ってきました。これまたシャムスイポでHK$80。(写真は外部からの転用)




RaspberryPiでJoypadからコマンド入力
http://www.kotemaru.org/2013/08/25/raspberry-pi-joypad-command.html



2014年6月16日月曜日

自作ネット家電 - Wemoでエアコン電源制御

こんなものを買ってみました。照明制御とか空調制御とか。冬場のオイルヒーター制御にはフレキシブルなスケジュール制御や、出先からの電源制御があるといいので、こういうものが役に立ちそうだと、漠然な思いで買いました。10年近く前に秋月で購入した電源制御デバイスは有線LANや電源配線が煩雑で、感電/火事にならないかヒヤヒヤしたもので、結局実用にはいたりませんでした。
先月引っ越してきたフラットの寝室にはこんなエアコンがありました。リモコンは無く、壁のスイッチでオンオフします。寝たまま制御できないので、えらく困ります。

遠隔制御の第一歩として、まず電源プラグをくっつけました。壁からひっぺがして抜き差しできるコンセントにしました。




こんな感じにして、間にWemoをくっつけます。


Wemoが間に入り電源を制御できるようになりました。








すんなりとiPhoneで電源制御できるようになりましたが、いちいちiPhoneで操作するのがやっぱり面倒です。やっぱりリモコンがあるといいですが、ネット制御も捨てがたいです。という訳で、組み込み型のLinuxマシンのようなものを見っけて、それにボタンをくっつけて、「リモコン」を自作することにしました。これに関しては次の投稿で。