Namareba食べたい

備忘録てきなもの。だらだら書いていきます。

itunesで誤って曲を購入してしまったときの対処方法、キャンセル、返金

itunes 12.0.1にて

  1. メニューバーにある"store"タブの”アカウントを表示”をクリック
  2. AppleIDのパスワードを入れてログイン
  3. 購入履歴の”すべてを見る”をクリック
  4. 下にある"問題を報告する"をクリック
  5. 該当項目の右側にある"問題を報告する"をクリック
  6. 自動的にブラウザに移り、"問題を選択してください"のプルダウンで”このアイテムを誤って購入した”をクリックし、問題の説明欄を埋めて、報告のボタンをクリック
  7. ”返金保留中”となっていたらおk

windows7で "この項目は見つかりませんでした" と出て削除出来ない時の対応

cygwinのフォルダを消すときに出たんですけど、たまに出ますよねコレ。半角スペースが入ってたり、ファイルがの名前が不正なときに出るらしいのですが。
巷ではリネームするとうまくいくよ!とあったけどリネームしても上手く行かなかったのでメモ。


フォルダを消したいときはとりあえずは消せるファイルだけでも全て削除。んで、最下層の残ったやつが原因。

例えば、ファイル名が"hoge."だった場合、
コマンドプロンプトからそいつをdelしてもrenしてもだめだったが、

del hoge*

のようにワイルドカードを使ってファイルを指定してやると削除できた。



追記

その後、上記のやり方でもだめだったときがあったのでその対処法。

エクスプローラの上部にあるファイルのパスを表示してあるところを右クリックして、「履歴の削除」を行うと上手く消えてくれました。

skipfishを入れるためにやったこと windows編

先日、macにskipfishを入れたのだが、windowsでも入れることになったのでメモ。

cygwin上に入れる。
だが、研究室のcygwinに色々なコマンドが入っていないかつ、setup.exeがなかったので再インストール。ここでアンインストール時に問題が生じたのだが、長くなるので他の記事で。


んで、ここを参考にcygwinを再インストール。

んで、skipfishをダウンロードして解凍、解凍したフォルダのなかにはいって

make

すると

ssl.hがないよと怒られる。ので、setup.exeを起動、opensslを検索窓にいれて出てきたものを片っ端からinstallにしたあとに再度makeするとおk。
しかし、またpcre.hが無いよ、と怒られたので先と同じようにlibpcreを検索窓に入れてinstall。

その後makeすると上手くいった。

skipfish入れるためにやったこと

googleが公開している脆弱性スキャナのskipfishをいれるときに手こずったことをメモ

skipfishを落としてmakeすると、

src/signatures.h:24:10: fatal error: 'pcre.h' file not found
#include "pcre.h"
         ^
1 error generated.
src/http_client.c:40:10: fatal error: 'idna.h' file not found
#include <idna.h>
         ^
1 error generated.
In file included from src/analysis.c:32:
src/signatures.h:24:10: fatal error: 'pcre.h' file not found
#include "pcre.h"
         ^
1 error generated.
src/signatures.c:27:10: fatal error: 'pcre.h' file not found
#include "pcre.h"
         ^
1 error generated.

と表示された。

pcre.hはlibpcre3-devに入っているらしい。が、portで検索してもでてこなかったので、ここ*1を参考に

$ sudo port install autoconf
$ sudo port install pcre

とした。

それでも

src/http_client.c:40:10: fatal error: 'idna.h' file not found

が残っている。
idna.hはlibidnに含まれているようなので*2

sudo port install libidn

を実行後、makeをすると上手くいった。

旅先にて気になったソーシャルハック的なこと

先日、卒業旅行にフィリピンに行ってきた。
泊まったホテルはフィリピンの中で最高級のホテルでサービス等は申し分なかったのだが、セキュリティ面で一つ気になったことがある。
それはホテル内での諸サービスの精算の仕方だ。

ここのホテルに限らないと思うが、ホテルでの飲食、その他サービス料金の精算は、最初のチェックイン時にクレジットカードを登録しておいて、チェックアウト時に精算という形になる。

例えばレストランで食事をした時なんかも、注文を終えたら部屋番号と名前を聞かれて精算。という形になるのだが、はっきり言って、これセキュリティガバガバじゃないですか?

部屋番号と名前さえ分かってしまえば、簡単になりすまして料金を他人になすりつけることが出来てしまう。サインなんて、その場では確認のしようがないし。

至るところでそのやりとりがあるので盗聴し放題だし(実際に朝食のビュッフェ時なんかは聞こえてしまう)

こんな感じの被害、出てないのかなぁーと少しばかり気になりました。
ルームカードと自分で設定した暗証番号で精算。ってシステムがいいと思うんだけどなぁ
コストかかっちゃうのかなぁ

メモ 異なるシートの値の参照 googleスプレッドシート

Googleスプレッドシートを使っていて、必要にかられたのでメモ。
異なるシート(同じファイル)で値を参照するやりかた。

=シート名!セル範囲

でおk


ちなみに、異なるファイルのスプレッドシートの値を参照するときは
ImportRange関数をつかう。

ImportRange("URL Keyの値", シート名!セルの範囲")

ぱいそんとお友達になろう-csawctf 2011 Crypto3 writeup編-

python練習用にみてた、 @shiracamus氏のCTFのためのパイソン入門というスライドにあった、csawctfの過去問のひとつ。
これだけ少し詰まった(主にpythonでの文字列の操作)ので、メモ。

以下の文字列が問題として渡される。

010011000110000101110011011101000010000001110111011001010110010101101011011100110010000001101101011 001010110010101110100011010010110111001100111001000000111011101100001011100110010000001100001001000 000110011101110010011001010110000101110100001000000111001101110101011000110110001101100101011100110 111001100101110001000000101011101100101001000000111001101100101011001010110110100100000011101000110 111100100000011000100110010100100000011001110110010101101110011001010111001001100001011101000110100 101101110011001110010000001100001001000000110110001101111011101000010000001101111011001100010000001 100010011101010111101001111010001000000110000101100010011011110111010101110100001000000111010001101 000011001010010000001101101011011110111011001100101011011010110010101101110011101000010111000100000 010101000110100001100101001000000110101101100101011110010010000001100110011011110111001000100000011 011100110010101111000011101000010000001110111011001010110010101101011011100110010000001101101011001 010110010101110100011010010110111001100111001000000110100101110011001000000111001001100101011100110 110100101110011011101000110000101101110011000110110010100101110001000000100100101100110001000000111 010001101000011001010111001001100101001000000110100101110011001000000110000101101110011110010110111 101101110011001010010000001100101011011000111001101100101001000000111100101101111011101010010000001 101011011011100110111101110111001000000110111101100110001000000111010001101000011000010111010000100 000011011010110000101111001001000000110001001100101001000000110100101101110011101000110010101110010 011001010111001101110100011001010110010000100000011010010110111000100000011010100110111101101001011 011100110100101101110011001110010000001100010011100100110100101101110011001110010000001110100011010 000110010101101101001000000111010001101111001000000111010001101000011001010010000001101101011001010 110010101110100011010010110111001100111001000000111010001101000011010010111001100100000011101110110 010101100101011010110010111000100000010010010111010000100000011101110110100101101100011011000010000 001100010011001010010000001101000011001010110110001100100001000000111001101100001011011010110010100 100000011101000110100101101101011001010010110000100000011100110110000101101101011001010010000001110 

やることはすぐにおもいつく。2->asciiだろうなぁと
でも2byteずつに区切られておらず、よくみるとところどころにスペースがはいっていたので、
文字列をaに代入し、スペースをけしてbに代入。
んで、8文字ずつに分けるのどうやろう(できればforとか使わずスマートにやりたい)と考えていたところ、Pythonで文字列を2文字ずつ分割する - Python入門
というページを発見。そこのを参考に8文字ずつに分ける。
こんな感じ

list = re.split('(........)',b)

が、空文字が交互に入ってくる。なにかよい解決策があれば教えて下さい......情弱でつらい。ちなみに、後ろの[]の中身の挙動についていまいち理解できてない。普通のlistの動きとはちがうぽ?

上記のとおり、空文字がリストに入ってしまったのでそれを削除。
参考:no workaround: python リストから空の要素を削除

while list.count("") > 0:
         list.remove("")

for使いたくないって言ってたくせにwhile使ってるのはどうなの?とか言ってはいけない

あとはスライドで学んだように操作。
全体の流れはこんな感じ。

>>>a = '
010011000110000101110011011101000010000001110111011001010110010101101011011100110010000001101101011 001010110010101110100011010010110111001100111001000000111011101100001011100110010000001100001001000 000110011101110010011001010110000101110100001000000111001101110101011000110110001101100101011100110 111001100101110001000000101011101100101001000000111001101100101011001010110110100100000011101000110 111100100000011000100110010100100000011001110110010101101110011001010111001001100001011101000110100 101101110011001110010000001100001001000000110110001101111011101000010000001101111011001100010000001 100010011101010111101001111010001000000110000101100010011011110111010101110100001000000111010001101 000011001010010000001101101011011110111011001100101011011010110010101101110011101000010111000100000 010101000110100001100101001000000110101101100101011110010010000001100110011011110111001000100000011 011100110010101111000011101000010000001110111011001010110010101101011011100110010000001101101011001 010110010101110100011010010110111001100111001000000110100101110011001000000111001001100101011100110 110100101110011011101000110000101101110011000110110010100101110001000000100100101100110001000000111 010001101000011001010111001001100101001000000110100101110011001000000110000101101110011110010110111 101101110011001010010000001100101011011000111001101100101001000000111100101101111011101010010000001 101011011011100110111101110111001000000110111101100110001000000111010001101000011000010111010000100 000011011010110000101111001001000000110001001100101001000000110100101101110011101000110010101110010 011001010111001101110100011001010110010000100000011010010110111000100000011010100110111101101001011 011100110100101101110011001110010000001100010011100100110100101101110011001110010000001110100011010 000110010101101101001000000111010001101111001000000111010001101000011001010010000001101101011001010 110010101110100011010010110111001100111001000000111010001101000011010010111001100100000011101110110 010101100101011010110010111000100000010010010111010000100000011101110110100101101100011011000010000 001100010011001010010000001101000011001010110110001100100001000000111001101100001011011010110010100 100000011101000110100101101101011001010010110000100000011100110110000101101101011001010010000001110 '
>>>b = a.replace(' ','')
>>>import re
>>>list = re.split('(........)',b)
>>>while list.count("") > 0:
....       list.remove("")
>>>int2 = lambda s: int(s,2)
>>>map(chr,map(int2,list))
>>>''.join(map(chr,map(int2,list)))
'Last weeks meeting was a great success. We seem to be generating a lot of buzz about the movement. The key for next weeks meeting is resistance. If there is anyone else you know of that may be interested in joining bring them to the meeting this week. It will be held same time, same place.'


すっごい久々に触ってみたけどpython、便利ですね。もっとpython力と文字列操作力というかプログラミング力つけたい。(つけねば)

もっとスマートな解き方あれば、ぜひ教えて下さい。ツッコミとかも(優しくね)