KDF1
Key Derivation Functions: How many KDFs are there?
KDF1というのを調べる機会があって、結果を確認するためのコードをpythonで書いてみた。KDF1は鍵導出関数というものの一種らしい。
from binascii import unhexlify from hashlib import sha1 from math import ceil Z = ''.join(chr(x) for x in range(0, 16)) Hash = sha1(Z).digest() d = int(ceil((float)(len(Z)) / len(Hash))) T = '' other = 'Hello KDF1' for c in range(0, d): C = unhexlify('%08X' % c) T = T + sha1(Z + C + other).digest() print('Z: ' + Z.encode('hex')) print('KDF1: ' + T[:len(Z)].encode('hex'))
便宜上sha1にしているけれど、別のアルゴリズムでもOKなはず。実はこれでええのかイマイチ自信はない!
pycryptoと遊んでみる
こんにちは、deusx'sキッチンの時間です。
暗号とか詳しく知らんしという、ふわっとした状態でpycryptoと遊んでいます。
dlitz/pycrypto · GitHub
PyCrypto API Documentation
何でも良かったんだけど、最初にやったのがpycryptoだったので。
from Crypto.Cipher import AES from binascii import hexlify, unhexlify key = ''.join(chr(x) for x in range(0, 16)) # AES-128 iv = unhexlify('00' * 16) # initialization vector 16 bytes origin = 'Hello pycrypto!' * 16 # n * 16 bytes en = AES.new(key, AES.MODE_CBC, iv).encrypt(origin) de = AES.new(key, AES.MODE_CBC, iv).decrypt(en) # hex dump print('[key]: ' + key.encode('hex')) print('[iv]: ' + hexlify(iv)) print('[origin]:\n' + origin.encode('hex')) print('[en]:\n' + en.encode('hex')) print('[de]:\n' + de.encode('hex')) # answer comparison print('[origin]:\n' + origin) print('[de]:\n' + de)
ボクは頭賢くないので実際に動作を確認しながら、少しずつ勉強していってる次第であります。
gdbを使ったandroidとの遊び方
こんにちは、deusx'sキッチンの時間です。
androidと遊んでて、最近覚えたことをメモする。たぶんuserdebug(suとgdbserverが動けば、user buildでも可?)前提で、自分でビルドできる人用のメモだと思う。
adb forward tcp:5039 tcp:5039 adb shell gdbserver --attach :5039 TARGET_PID
開発環境に下記のtoolchainを入れてパスを通し、arm用のgdbを使えるようにする。
platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7 - Git at Google
arm-linux-androideabi-gdb SOURCE_PATH/out/target/product/hoge/symbols/system/bin/TARGET_BIN (gdb) set solib-search-path SOURCE_PATH/out/target/product/hoge/symbols/system/bin:SOURCE_PATH/out/target/product/hoge/symbols/system/lib (gdb) directory SOURCE_PATH (gdb) target remote :5039 (gdb) continue
TARGET_PID
に自分の作成したapkのpidを指定して、TARGET_BIN
にapp_processを指定すると色々調べられる。ちなみにICSでしか確認していない。
参考文献
ファイルの末尾のX行だけ消す
もっと巧い方法がある気がするが、
LAST=`wc -l hoge | awk '{print $1}'` START=`expr $LAST - X + 1` sed -i ${START}','${LAST}'d' hoge
とりあえずこれで4000個くらいのファイルの末尾のX行を消したった。
へぇーPS4もWindowsマシンと同じでx86使うんだー
Hacker Newsで見つけたのでミサワ風にメモ。