These pages are written by only Japanese.

Welcom to My Diary.com
最新の日記タイトル一覧カテゴリ別タイトル一覧トップへ戻る〜

こんにちは♪ 現在は4月20日(土)13時10分。 そろそろお仕事に戻る時間です


hns - 日記自動生成システム - Version 2.19.5 (色々 Fixed)

先月 2009年08月 来月
1
02 3 04 5 06 07 08
09 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Namazu for hns による簡易全文検索です。
詳細は 詳細指定/ヘルプをご参照下さい。
検索式:

2009年08月13日(木)

Ruby で SWF 解析始めてみた

とりあえず、ヘッダだけ。

プログラム:

require 'SWF.rb'

data = IO.read("/home/yoya/flash/ffxi2.swf")
swf = SWF.new(data.force_encoding("BINARY"));
swf.dump()
※ force_encoding しないと UTF-8列だと思われるので、 UTF-8 的にイリーガルなデータが処理できなくなるという。

結果:

Signature=FWS Version=4 FileLength=351150
RECT: (-1639, -1639)-(-1127, -1257)
FrameRate=15 FrameCount=40
ヘッダ解析成功。

引数って?:

C や PHP でいう argv ってどうやって受け取るんだろう。(ソコカラカ的
もう時間ないので、調べるのは明日で。

2009年08月15日(土)

お墓参り

いつもはパステルカラーの花を添えてますが、(故人がそういうの好きだったので)
今はお盆の時期なので、控えめな色の花を添えました。
お盆だからか周りのお墓にも花が飾ってあって、 しかも、ちょっと豪華さで負けてる感じ。
後でグレードアップしとこう。

Skype 重たすぎ

自宅サーバが重たいので、top を実行してみたら、
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 5802 yoya      17   0  805m 610m 3648 R  0.3 61.0 242:53.69 skype
自宅で Skype ボット実験用に動かしている Skype for Linux がやんちゃしてる模様。
止めよう…

2009年08月17日(月)

Ruby で SWF 分解してみた

何となくバラせました。
Signature=FWS Version=4 FileLength=2704
RECT: (bits=14) (0, 0) - (240, 240)
FrameRate=8.0 FrameCount=40
Type=9 Length=3
Type=1 Length=0
	<略>
Type=1 Length=0
Type=0 Length=0

ハマりどころ:

a = 0
if (a)
  p true
else
  p false
end
実行結果
true
うわーぃw

もひとつハマリ:

c = 1 + 1/2
p c
実行結果
1
うははーいw

2009年08月18日(火)

Ruby でクラス継承

SWF は Header とそれに続く沢山の Tag で構成されている。
| Header | Tag1 | Tag2 | ... | Tag(End) |
Tag はコンテンツの種類(画像なのか音声なのか文字なのか。とか)毎に 中身(のデータ構造)が異なるので、Tag を継承させて Tag_DefineBitsJPEG とか Tag_DefineSound みたいに実装していきたい。
てな訳で、クラス継承のお勉強。

出来たもの:

Signature=FWS Version=4 FileLength=2704
RECT: (bits=14) (0, 0) - (240, 240)
FrameRate=8.0 FrameCount=40
Type=9(Unknown) Length=3
<略>
Type=1(Unknown) Length=0
Type=0(End) Length=0
それっぽく出来た。

クラス継承の仕方:

class SWF_Tag
end

class SWF_Tag_End < SWF_Tag
  def initialize(bit_in, length)
    @Content = bit_in.get_string!(length)
  end
end
Foo_Baa < Foo という記法で OK

クラス名の文字列からクラスを作る:

class Foo
  def initialize(foo)
  end
end

className = "Foo"
foo = <コンストラクタに渡したい適当な値>
klass = Object.instance_eval("#{className}.new(foo)")
こんな感じ。

これで、4 日分だよ〜。

タイトル一覧
カテゴリ分類
Database
JXTA
Java
XML
awm
bookmark
keyword
memo
news
research
Powered by hns-2.19.5, HyperNikkiSystem Project