These pages are written by only Japanese.
|
Namazu for hns による簡易全文検索です。 詳細は 詳細指定/ヘルプをご参照下さい。 |
||||||||||||||||||||||||||||||||||||||||||||||
% php swfdump.php chara.swf | less magic=CWS version=6 file_length=2902016 frame_size=(0, 0)-(800, 545) frame_rate=30.0 frame_count=1183 tag=SetBackgroundColor(9) length=3 tag=JPEGTables(8) length=574 tag=DefineBitsJPEG(6) length=31897 jpeg_id=1 jpeg_data_size=31895 tag=DefineShape(2) length=55 <略>
#include <zlib.h> uncompress(new_buff, &origsize, old_buff, bs->data_len - SWF_HEADER_SIZE); compress(new_buff, &compsize, old_buff, bs->data_len - SWF_HEADER_SIZE);
Flash Lite (携帯端末向け Flash) - Yoya Wiki pwiki.awm.jp:yoya ウェブ FLASH LITE Wiki なるみ 微妙 1 users 2008年02月05日 ActionScript flash FlashLite確かにカオスなので整理します。ごめんなさい。^^; バイナリいじりに夢中で、CS3 は触ってないんですよねー でも、そろそろ戻ろう。折角 Web Premium 買ってるんだし。
% php swfdump.php chara.swf magic=CWS version=6 file_length=2902016 frame_size=(0, 0)-(800, 545) frame_rate=30.0 frame_count=1183 tag=SetBackgroundColor(9) length=3 tag=JPEGTables(8) length=574 tag=DefineBitsJPEG(6) length=31897 jpeg_id=1 jpeg_data_size=31895 <略> tag=DefineBitsJPEG3(35) length=9289 jpeg_id=10 jpeg_data_size=6212 alpha_data_size=15792ちなみに、tag 全体の length が 9289 なのに、 その一部分である alpha_data が 15792 でより大きいのは、 alpha_data 部はファイルには圧縮した形で格納されている為で、 伸張すると大抵は逆転します。
typedef struct swf_rect_ { unsigned char align; int x_min; int x_max; int y_min; int y_max; } swf_rect_t; extern int swf_rect_parse(bitstream_t *bs, swf_rect_t *rect); extern int swf_rect_build(bitstream_t *bs, swf_rect_t *rect); extern int swf_rect_print(swf_rect_t *rect);今日はとりあえず整理だけ…
tag=DefineEditText(37) length=42 edit_id=2 rect=(393, 393)-(37, 146) (f_size=13) text=1 wwrap=0 multi=0 pass=0 ro=1 col=これで、自分がフォーマットを勘違いしているのかと悩んだのですが、 この値を埋めるフィールドが可変な上に負の値も扱える事に気づいて、 bitstream は unsigned 前提で作ってるので、 2の補数処理をどこかに入れないとダメな事に気づきました。
int two_negative(int num, int size) { int msb = 1 << (size - 1); int mask = msb - 1; if (num & msb) { return - ((num^mask) & mask) - 1; } return num; }結果。
tag=DefineEditText(37) length=47 edit_id=2 rect=(-8, -2)-(101, 36) (f_size=12)それっぽい値になりました。(基準点がいまいち分からないけど…)
tag=DefineEditText(37) length=47 edit_id=2 rect=(-8, -2)-(101, 36) (f_size=12) text=1 wwrap=0 multi=1 pass=0 ro=1 col=1 maxlen=0 font=1 layout=1 no_sel=1 border=0 font_id=1 font_height=14 red=0x00 green=0x00 blue=0xff alpha=0xff align=2 (left,right)_margine=(0,0) indent=0 leading=40 variable_name= fobaa initial_text=thisistestよし…
ヒュンダイITジャパン製(´д`)…
機能や性能よりもハードルの低さがこのビジネスの決め手だったわけだ。賢くなくても犯しがちだと思うので、自分も気をつけよう。
演技があまりに真に迫り過ぎていたため、クラスメートからまで 素で狂っていると思われ、いじめられてしまったり、また、 ありがちな「ゲームの危険性を考える」うんぬんのメディアから 不当な扱いを受け、本人はMAD作りが嫌になってしまったようだ。迫真の演技すぎるのは気になっていたけど、 やはり大丈夫じゃなかったのね…
tag=DefineEditText(37) length=37 edit_id=2 rect=(-10, -2)-(134, 18) (f_size=13) text=1 wwrap=0 multi=1 pass=0 ro=1 col=1 maxlen=0 font=1 layout=1 no_sel=1 border=0 font_id=1 font_height=14 red=0x00 green=0x00 blue=0xff alpha=0xff align=2 (left,right)_margine=(0,0) indent=0 leading=40 variable_name= initial_text=abcde
tag=DefineEditText(37) length=39 edit_id=3 rect=(-2, -2)-(116, 16) (f_size=13) text=1 wwrap=1 multi=1 pass=0 ro=1 col=1 maxlen=0 font=1 layout=1 no_sel=0 border=0 font_id=1 font_height=14 red=0x00 green=0x00 blue=0xff alpha=0xff align=2 (left,right)_margine=(0,0) indent=0 leading=40 variable_name=var1 initial_text=opqr
tag=DefineEditText(37) length=37 edit_id=4 rect=(-2, -2)-(86, 16) (f_size=12) text=1 wwrap=1 multi=1 pass=0 ro=0 col=1 maxlen=0 font=1 layout=1 no_sel=0 border=0 font_id=1 font_height=14 red=0x00 green=0x00 blue=0xff alpha=0xff align=2 (left,right)_margine=(0,0) indent=0 leading=40 variable_name=var2 initial_text=xyz
- [[DefineBitsJPEG2>#tag21]] のデータにこれで、ページ内の #tag21 に遷移できました。
カードによるお支払いありがとうございます。下記ご請求に対し、 \6,300 の支払いを受け付けましたので、ご連絡いたします。 <略> 株式会社ヒューメイア1年間でこれは高いわ。(⊃д⊂)
Please come back in the begining of Dec to this page. It is curently not available.google で jpeg.c.diff をキーワードにして、この日記に来る方が 増えてきたので、お役に立てればと cache (?) URL を以下のページに 張って置きました。 あと、ついでに色々と理解が深まってきたので説明文も更新してます。
PHP_METHOD(swfed, getTagList) { int i; zval *data; array_init(return_value); for(i=0; i<2; i++) { ALLOC_INIT_ZVAL(data); array_init(data); add_index_long(data, 2*i, 2*i+10); add_index_zval(return_value, i, data); } }
array(2) { [0]=> array(1) { [0]=> int(10) } [1]=> array(1) { [2]=> int(12) } }あっさり成功…
0x00000: ffd8 ffe0 0010 4a46 4946 0001 0100 0001 JFIF失敗パターン
0x00000: 4034 3900 4034 3900 4946 0001 0100 0001 @49 @49 IF上書き… ですよね。これって。
data = swf_object_get_jpegdata(swf, &len, jpeg_id); new_buff = emalloc(len); memcpy(new_buff, data, len); free(data); RETURN_STRINGL(data, len, 1);そりゃダメだゎ… ○rz
php jpegdump.php ~/public_html/php/flash/swfdump/test.jpg 0x0000: SOI(Start of Image)(FFD8) 0x0014: APP0(FFE0) length=(2+)14 0x0027: SOF0(FFC0) length=(2+)15 0x0035: SOS(FFDA) length=(2+)10 0x7c95: EOI(End Of Immage)(FFD9)DefineBitsJPEG は JPEG 画像がそのまま入ると思ってたけど、 そうとも限らないようです。修正っと… JPEG セグメントの入れ替えライブラリを整備しないと この辺の表示や DefineBitsJPEG2,3 の入れ替えも無理ですね。 頑張ろ。
どっちに転んでも負けゲームだよな。 如何ともし難い感漂う。ダメな人に相談して状況が悪化するいい例ですね…
茶髪で通したいなら、もっとロックに自己主張すれば良いのに、 自己主張をしたいんだけど、社会でうまくやりたいと思ってるから、 社会の方がおかしいって論理になっちゃうんだな。なぁなぁで済ます日本の国民性に、中途半端な個人主義が入り込んで 消化不良を起こした結果なのかもしれません。
gcc -D__COMPONENT_DEBUG__ jpeg_segment.c bitstream.c
% ./a.out ~/data/aria.jpg marker=SOI(FFD8): length=0 marker=APP0(FFE0): length=14 marker=APP1(FFE1): length=32 marker=DQT(FFDB): length=65 marker=DQT(FFDB): length=65 marker=SOF0(FFC0): length=15 marker=DHT(FFC4): length=29 marker=DHT(FFC4): length=179 marker=DHT(FFC4): length=29 marker=DHT(FFC4): length=179 marker=SOS(FFDA): length=9536 marker=EOI(FFD9): length=0とりあえず、完成。
gcc -D__COMPONENT_DEBUG__ jpeg_segment.c bitstream.c
% ./a.out aria.jpg tmp.jpg marker=SOI(FFD8): length=0 marker=APP0(FFE0): length=14 marker=APP1(FFE1): length=32 marker=DQT(FFDB): length=65 marker=DQT(FFDB): length=65 marker=SOF0(FFC0): length=15 marker=DHT(FFC4): length=29 marker=DHT(FFC4): length=179 marker=DHT(FFC4): length=29 marker=DHT(FFC4): length=179 marker=SOS(FFDA): length=9536 marker=EOI(FFD9): length=0 % md5sum aria.jpg tmp.jpg 0f5cf415f0d01626632df9e391b1b1eb aria.jpg 0f5cf415f0d01626632df9e391b1b1eb tmp.jpg %さて、自己参照構造体で作ったリスト構造の入れ替えは どうやるのが綺麗かしら… (と考えてる時点で負けな気もしますけど)
typedef struct jpeg_segment_node_ { int marker; unsigned char *data_ref; /* do NOT free */ unsigned int data_len; struct jpeg_segment_node_ *next; } jpeg_segment_node_t; typedef struct jpeg_segment_ { jpeg_segment_node_t *head, *tail; } jpeg_segment_t;こんな感じで。 コンパイル方法も実行結果も同じなので略…
大きな ファームウェアのバージョンアップがあると、 同じ機種でも全く違う機種になってしまうことが知られている。 また 使う目的によって このバージョンの方がよく似合っている ということもあります。 <略> 実際 新しいバージョンにアップしても 以前のほうが ずっと良かったとは いつもよくある話です。ぉっぉっ (;;^ω^)
int jpeg_std_marker_order[] = { 0xE0 /* APP0 */, 0xE1 /* APP1 */, 0xE2 /* APP2 */, 0xE3 /* APP3 */, 0xE4 /* APP4 */, 0xE5 /* APP5 */, 0xE6 /* APP6 */, 0xE7 /* APP7 */, <略> 0xDD /* DRI */ , };その順番でセグメントを追加していきます。
jpeg_segment_t *jpeg_data, jpeg_data = jpeg_segment_parse(data, data_len); for(i=0; i< jpeg_std_marker_order_num; i++) { int m = jpeg_std_marker_order[i]; unsigned char *d; unsigned short d_len; while(d = jpeg_segment_steal_node(jpeg_data, m, &d_len)) { jpeg_segment_append(jpeg_output, m, d, d_len); } }そんだけ。
% php swfgetjpegdata.php chara.swf 44 > 44.jpg吸い出した画像
< 0x00000: ffd8 ffe0 0010 4a46 4946 0001 0100 0001 JFIF < 0x00010: 0001 0000 ffdb 0043 0006 0405 0605 0406 C --- > 0x00000: ffd8 ffe0 0000 4a46 4946 0001 0100 0001 JFIF > 0x00010: 0001 0000 ffdb 0000 0006 0405 0605 0406 7c7 < 0x00050: 2d30 2d28 3025 2829 28ff db00 4301 0707 -0-(0%()( C --- > 0x00050: 2d30 2d28 3025 2829 28ff db00 0001 0707 -0-(0%()(JPEG セグメントの長さのフィールドに 0 が入ってる…
横断歩道を渡り左に曲がります。 駅を出て4件目になるお蕎麦屋さんの「おそば増田屋」の前を過ぎ、 総武線のガードをくぐったらすぐに右方向へ曲がります。この説明が微妙で、 増田屋を探しても見つからず(店が閉まっていたのも?) 明後日の方向に行ってしまいます。画像の矢印を信じて進むが吉。
カシミール3D Ver8.8.0 リリース(2008/02/27)アップデートと…
偉いけどヒマな幹部が大勢いる会社などは大変だろう。 勝手にやると「俺は聞いてない」などと言われてしまうから、 みんなを呼んで会議など開き披露する。 <略> みんなが思いついたことを脈絡もなく言い募り、挙句に、 「じゃあそんなことを盛り込んで」とか下に無茶振りする。どこかで聞いたような話だゎ…
% php swfreplaceeditstring.php textedit.swf var1 ABC > tmp.swf % fdmp tmp.swf addr : 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF 0x00000: 28e2 2300 28e2 2300 7000 0960 0000 9600 ( # ( # p ` 0x00010: 000a 0100 4302 0000 003f 0c13 0000 0001 C ? <略> 0x00080: ffff 0200 0000 0000 0028 0076 6172 3100 ( var1 0x00090: 4142 4300 8906 0602 0003 0018 a286 8e7f ABC <略>
data = swf_object_output(swf, &len); new_buff = emalloc(len); memcpy(new_buff, data, len); free(data); RETURN_STRINGL(data, len, 1);… ○rz
tag=DefineEditText(37) length=37 edit_id=2 rect=(-10, -2)-(134, 18) (f_size=13) text=1 wwrap=0 multi=1 pass=0 ro=1 col=1 maxlen=0 font=1壊れたデータ
tag=DefineEditText(37) length=37 edit_id=2 rect=(-10, -2)-(134, 18) (f_size=13) text=1 wwrap=0 multi=0 pass=1 ro=1 col=0 maxlen=0 font=0これを見て、rect の後の bit がズレてるのかなと、 ふと、rect の後の byte align をとってない事に気付き、
swf_rect_build(bs, &swf_tag_edit->rect); bitstream_align(bs); ← ☆これ☆ bitstream_putbit(bs, swf_tag_edit->edit_has_text);を追加したら解決しました。
% tail -2 /var/log/httpd/error_log [Mon Apr 21 23:02:37 2008] [notice] mod_python: Creating 4 session mutexes based on 256 max processes and 0 max threads. [Mon Apr 21 23:02:37 2008] [emerg] (28)No space left on device: Couldn't create accept lock (/etc/httpd/logs/accept.lock.24057) (5)semaphores 開放忘れのバグがあるようです。
# ipcs -s | grep apache | tail -2 0x00000000 29229176 apache 600 1 0x00000000 29294713 apache 600 1 # ipcs -s | grep apache | wc 114 570 6156えーっと…
# ipcs -s | grep apache | \ perl -e 'while (<>) { @a=split(/\s+/); print `ipcrm sem $a[1]`}' リソースを削除しました リソースを削除しました リソースを削除しました <略>これで解決。
185 バクテリア(甘粛省) 2008/04/21(月) 14:39:21.95 ID:2Q2+6BAKO PSP&モンハン買うのと、FF11買うのとどっちがいいかな? 186 ゲーマー(もんじゃ) 2008/04/21(月) 14:40:15.01 ID:I7qp1sp50 >>185 その金と時間を勉強か仕事に向けるといいんじゃないかな改めて、MMO は我慢しようと誓いました…
% jpeg_segment ~/top_0.jpg marker=SOI(FFD8): length=0 marker=APP0(FFE0): length=14 marker=DQT(FFDB): length=65 marker=DQT(FFDB): length=65 marker=DHT(FFC4): length=29 marker=DHT(FFC4): length=179 marker=DHT(FFC4): length=29 marker=DHT(FFC4): length=179 marker=SOF0(FFC0): length=15 marker=SOS(FFDA): length=159023 marker=EOI(FFD9): length=0失敗した画像。
% jpeg_segment ~/top_0-fail.jpg marker=SOI(FFD8): length=0 marker=APP0(FFE0): length=14 marker=DQT(FFDB): length=65 marker=DQT(FFDB): length=65 marker=SOF0(FFC0): length=15 marker=DHT(FFC4): length=29 marker=DHT(FFC4): length=179 marker=DHT(FFC4): length=29 marker=DHT(FFC4): length=179 marker=SOS(FFDA): length=27951 marker=EOI(FFD9): length=0見た目のまんま、データ部が途中で切れてます。
dec hex 159023 26D2F 27951 6D2Fやっぱり…
marker=SOS(FFDA): length=439 marker=RST0(FFD0): length=392 marker=RST0(FFD0): length=333 marker=RST0(FFD0): length=344あーっ…。RST は 0...7 でローテーションするんでした…
marker=SOS(FFDA): length=439 marker=RST0(FFD0): length=392 marker=RST1(FFD1): length=361 marker=RST2(FFD2): length=373marker の order を決め付けて単純に並び替えちゃダメじゃん。(´Д`;)
marker=APP0(FFE0): length=14 marker=<Unknown>(FFFE): length=36 marker=<Unknown>(FFEE): length=12OKもちょっと真面目に並び替えを実装してみます。
つまり、青少年健全育成推進委員会というどこの誰だか知らない 5人が作った判断基準が適用されるというわけ。結局、どういう 判断基準になるのかはまだ具体的に何も決まっていないのに、 なぜか先に法律から決めようという、順番がめちゃくちゃな状態。 しかも、法律になるとこの5人が決めた内容が基準になるため、 既存の法律を変えることなく、いくらでもあとからどんどん規制 する中身を自由自在に増やしたり変えたりができるわけです。 やりたい放題ですね。これは… ひどい…
自殺サイトに裏サイト勝手に無料で作らせてガキに自殺者が出て問題になってて 民間の自助努力とやらで何も解決しないから立法が業を煮やしてこれは同意なんだけど…
運用できそうもない法律作ってガス抜きしようという腹かどうかも確かめずどうやったら確かめられるんでしょうね…
JASRACが私たちから本当に搾取したもの。それは日本の音楽の未来だ。 2001年頃だったか、JASRACが登場したことによりインターネット上の MIDI配信サイトは全滅した。ついでに、色々とブックマーク。
# vi /etc/yum.repos.d/CentOS-Base.repo [dag] name=Dag RPM Repository for Red Hat Enterprise Linux baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag gpgcheck=1 enabled=1 includepkgs=clearsilver python-clearsilver trac gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt [kbs-CentOS-Extras] name=CentOS.Karan.Org-EL$releasever - Stable gpgcheck=1 gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt enabled=1 baseurl=http://centos.karan.org/el$releasever/extras/stable/$basearch/RPMS/ includepkgs=python-docutils python-imaging
# yum --enablerepo=dag --enablerepo=kbs-CentOS-Extras update <略> Reducing Dag RPM Repository for Red Hat Enterprise Linux to included packages only Finished Reducing CentOS.Karan.Org-EL5 - Stable to included packages only Finished No Packages marked for Update/Obsoletion #
# yum --enablerepo=dag install apachetop Loading "installonlyn" plugin Setting up Install Process Setting up repositories Reading repository metadata in from local files Reducing Dag RPM Repository for Red Hat Enterprise Linux to included packages only Finished Reducing CentOS.Karan.Org-EL5 - Stable to included packages only Finished Parsing package install arguments Nothing to do… さて、諦めて寝るか… ○rz
Already use Google Base? yoya@awm.jps items何か面白そうなリンクがある…
履歴 Redirecting Redirecting Redirecting Redirecting Redirecting <略>無限、redirect されました。Google 様がこんな初歩的なミスを。(・ω・)
要するに能力の問題で、マスコミの人間は信じられないほどに知識がなく 調べる能力もないために、普通の人には何か裏に大きな陰謀でも渦巻いて るように見えてしまうものなのです。なるほど…
swfgetjpegdata.php chara.swf 10 > chara-10.jpg swfgetjpegalphadata.php chara.swf 10 > chara-10-alpha.rawマスクデータの JPEG への変換 (要 Netpbm)
cat char-10-alpha.raw | btimes 3 | rawtoppm 84 188 | \ ppmtojpeg > chara-10-alpha.jpgJPEGデータ αチャネル
jpeg_marker_name_t jpeg_marker_name_table[] = { {0xD8, "SOI"}, {0xE0, "APP0"}, {0xE1, "APP1"}, {0xE2, "APP2"}, {0xE3, "APP3"}, {0xE4, "APP4"}, {0xE5, "APP5"}, {0xE6, "APP6"}, {0xE7, "APP7"}, {0xE8, "APP8"}, {0xE9, "APP9"}, {0xEA, "APP10"},{0xEB, "APP11"}, {0xEC, "APP12"},{0xED, "APP13"},{0xEE, "APP14"},{0xEF, "APP15"}, {0xFE, "COM"}, {0xDB, "DQT"}, <略>
struct jpeg_marker_struct { jpeg_saved_marker_ptr next; /* next in list, or NULL */ UINT8 marker; /* marker code: JPEG_COM, or JPEG_APP0+ n */ unsigned int original_length; /* # bytes of data in the file */ unsigned int data_length; /* # bytes of data saved at data[] */ JOCTET FAR * data; /* the data contained in the marker */ /* the marker length word is not counted in data_length or original_l ength */ };