These pages are written by only Japanese.
|
Namazu for hns による簡易全文検索です。 詳細は 詳細指定/ヘルプをご参照下さい。 |
||||||||||||||||||||||||||||||||||||||||||||||
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)アップデートと…
偉いけどヒマな幹部が大勢いる会社などは大変だろう。 勝手にやると「俺は聞いてない」などと言われてしまうから、 みんなを呼んで会議など開き披露する。 <略> みんなが思いついたことを脈絡もなく言い募り、挙句に、 「じゃあそんなことを盛り込んで」とか下に無茶振りする。どこかで聞いたような話だゎ…