トップ «前の日記(2011-10-31(Mon)) 最新 次の日記(2011-11-08(Tue))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2011-11-07(Mon) ちょっと涼しく

0から数えないで、1から数えることも

SqueezのGNU Smalltalk-3.1.6。
チュートリアルと睨めっこして、あーでもこーでもなし。

st> x := Array new: 5
(nil nil nil nil nil )
st> x at: 3 put: 4
4
st> x
(nil nil 4 nil nil )
st> x at: 6
Object: Array new: 5 "<0x558893b8>" error: Invalid index 6: index out of range
SystemExceptions.IndexOutOfRange(Exception)>>signal (AnsiExcept.st:216)
SystemExceptions.IndexOutOfRange class>>signalOn:withIndex: (AnsiExcept.st:839)
Array(Object)>>checkIndexableBounds: (Object.st:772)
Array(Object)>>at: (Object.st:832)
UndefinedObject>>executeStatements (a String:1)
nil

RLOの脆弱性

IT Pro IPAの記事。
RLOは、 Unicode Consortium のページの PDFに載っていた。
久々のpython3 (with debian squeeze)で追試してみた。

$ cat rlomark_test.py 
#!/usr/bin/env python3
 
h_a = chr(0x3042)
rlo = chr(0x202e)
h_i = chr(0x3044)
h_u = chr(0x3046)
h_e = chr(0x3048)
h_o = chr(0x304A)
 
print ("No RLO: ", h_a, h_i, h_u, h_e, h_o)
print ("First is RLO: ", rlo, h_a, h_i, h_u, h_e, h_o)
print ("Second is RLO: ", h_a, rlo, h_i,h_u, h_e, h_o)
print ("Third is RLO: ", h_a, h_i, rlo, h_u, h_e, h_o )

の、実行結果。

$ python3 rlomark_test.py 
No RLO:  あ い う え お
First is RLO:  お え う い あ
Second is RLO:  あ お え う い
Third is RLO:  あ い お え う

Snow Leopard のコマンドライン上では見えなかったが、Vim にコピペすると、次のように見えた。

$ python3 rlomark_test.py 
No RLO:  あ い う え お
First is RLO:  <202e> あ い う え お
Second is RLO:  あ <202e> い う え お
Third is RLO:  あ い <202e> う え お

で、それにもとづいて、次のような処理をやってみた。

cpname = 'foo' + rlo + 'fdp.exe' 
os.rename(orig, cpname)

notepad.exe で試す。
このファイルは、端末によっては.pdf に見えたり、見えなかったりする。
騙そうと思えば、騙せるかもしれない 程度にはなった。
アイコンを入れ替えれば、もう少しまともに見えるかもしれない。

KVMに日本語キーボード

そのままでは"_"が入力できないと気づく。
何回Twitterに書いても頭に入らないので改めてメモ。
ドメインを定義したXMLを修正。
Squeeze なら /etc/libvirt/qemu の下とか。

<graphics type='vnc' port='-1' autoport='yes' keymap='ja' />

それから sudo /etc/init.d/libvirt-bin restart を忘れないように。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。