ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

「FirefoxのJavaScript実装に脆弱性」は結局この人、実現できてないんだって。。。

2006-10-03 22:08:41 | Weblog

 なーんだ。。
 さっき書いた、この記事
「FirefoxのJavaScript実装に脆弱性」のコンファレンスのビデオのサイトメモ
http://blog.goo.ne.jp/xmldtp/e/88d9324dffc8f41d31152d6505bfd8ae


みたけど、実際、どーいうプログラムなのか、いまいちわかんない。
英語力不足(>_<!)
リカーシブルにするの??

とかおもっていたら、

ここのブログ
Update: Possible Vulnerability Reported at Toorcon
http://developer.mozilla.org/devnews/index.php/2006/10/02/update-possible-vulnerability-reported-at-toorcon/

によると、その発表をした人が、そのあと(以下、上記ブログより引用)

As part of our talk we mentioned that there was a previously known Firefox vulnerability that could result in a stack overflow ending up in remote code execution. However, the code we presented did not in fact do this, and I personally have not gotten it to result in code execution, nor do I know of anyone who has.


なーんだ。。。結局、この発表者は、そういう脆弱性をみつけたわけじゃないんだって。。
ひとさわがせな。。。

 っていうか、この人たち、名誉毀損とか、営業妨害で訴えられないのかなあ。。
 フリーソフトだと、訴えられないのかなあ。。
 だとしたら、言いたい放題だね(^^;)




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

JAVAのコード変換:その1 ファイルの場合と、みえみえくんを使ってる人へ

2006-10-03 18:22:57 | JavaとWeb

 いままで、JAVAのフォーマット変換をやってましたけど、まあ、一通りあれでいいやということで、今度は、コード変換。

 まずは、ファイル間でのコード変換のケースについて




■概要

 ファイル間でコード変換する場合は、InputStreamReader,OutputStreamWriterでやればいい。

 たとえば、SJISからEUCに変えたいときは

  InputStreamReader ir = new InputStreamReader(fi,"SJIS");

 で読み込み

  OutputStreamWriter ow = new OutputStreamWriter(fo,"EUC_JP");

 で書き出す。

 UTF8で書き出すんなら

  OutputStreamWriter ow = new OutputStreamWriter(fo,"UTF8");

つまり、読み込み、書き出しの対象ファイルのコード体系を、InputStreamReaderやOutputStreamWriterの第二引数で指定する。こうすると、そのコード体系で書き出される。




■サンプルソース

 SJISで入っているtest.txtを読み込み
 EUCでtestEUC.txtという名前で書き出すのは、こんなかんじ
(赤字がポイント)
import java.io.*;

public class test {
	/*
	 * 	メイン処理(呼び出し元)
	 */
	public static void main(String[] args) 
	{
		try
		{

			//==============================//
			//	読み込む		     //
			//==============================//
			File f	=	new File("test.txt");
			FileInputStream fi = new FileInputStream(f);

			InputStreamReader ir = new InputStreamReader(fi,"SJIS");

			//	読み込み
			int len = (int)f.length();
			char[] data = new char[len];
			ir.read(data);
			ir.close();
			fi.close();

			//==============================//
			//	書き出し		    //
			//==============================//
			File f2	=	new File("testEUC.txt");
			FileOutputStream fo = new FileOutputStream(f2);


			OutputStreamWriter ow = new OutputStreamWriter(fo,"EUC_JP");


			//	書き出し
			ow.write(data);
			ow.close();
			fo.close();
			
		}
		catch (Exception e)
		{
      			e.printStackTrace();
    		}

	}

}

(上記 < > ¥は、本当は半角です)




■注意
オレンジソフトの「みえみえくん」を使って変換を確認している人へ

(注意の注意:みえみえくんと、みえみえは、別物のプロダクトだと思います。以下の話はみえみえ君ではなく、「みえみえくん」のお話です)

 この場合、EUCに変換されたものをコピーし、それをみえみえくんの入力として貼りこみ、16進変換したものを入力にセットすると、おかしくなるケースがあります(「EUCではない」とでてくる。最近は変わってるかも?)

 以下の手順でやると、ただしい確認が、できます。

1.どちらもファイルで16進変換します
  入力:ファイル ファイル名 testEUC.txt
  出力:ファイル ファイル名 無題.txt
で、16進変換する

2.その16進変換したもの(=無題.txtの中身)を、コピーし
  みえみえくんの入力に貼りこみ、16進を選択し

3.変換を SJIS <- EUC
  出力をテキストにすると、正しく変換します。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「FirefoxのJavaScript実装に脆弱性」のコンファレンスのビデオのサイトメモ

2006-10-03 16:10:43 | Weblog

今、出先で、ちょっと音が出せないので
(もし、こんなのみてて、英語が分かる人が周りに居たら、ぶっころされそうなんで ^^;)

メモメモ。。

ここのスラッシュドット
FirefoxにJavaScript処理に関する 0-day の脆弱性
http://slashdot.jp/security/06/10/03/0039236.shtml

やCNN
FirefoxのJavaScript実装に脆弱性--迅速な対応が困難な場合も
http://japan.cnet.com/news/sec/story/0,2000056024,20256207,00.htm


にある、FireFoxのJavaScriptでの脆弱性の
アタック方法を述べたといわれるコンファレンス、

そのビデオの該当箇所(たぶん、それだとおもう)のありかは、

ここ
Video: Hackers claim Firefox zero-day flaw
http://news.com.com/1606-2_3-6121987.html?tag=ne.vid


はじめにCMがでたあと、はじまる。

どんな内容をいっているのかは、
今、音、出してない(出せない。そんなの見てるなんて。。)
ので分からない。

なので、肝心のことをいってるのかどうかはわかんないんだけど、
スライドに FireFox Exploit ってあるので、その話だと、多分、おもう

たいした内容じゃなかったらごめん
(すみません、これ、あくまで自分の家で音だして見るためのURLのメモなんで。。)

さ、お家に帰ったら、ゆっくりみよーっと
(っていってもほんのちょっとで終わるビデオなのだが。。)


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ソフトバンクケータイが成功するには?

2006-10-03 15:21:17 | Weblog

 「エビちゃん」ばーん!しかないっすよねえー

 見ました?こんどのSoftbankのケータイカタログの表紙、

 白地に2本の銀色の線が入ってるだけっすよ。。。(>_<!)

 いままでのボーダフォンは、伊藤美咲だったのにい。。
 (この差は、今デジカメがないので、今度本家で写真入で示そうと思ってます)

 これじゃー。。。




 いや、いま、チャンスだと思うんですよ。

   auは、仲間さん、
   Docomoは、加藤あいさん

 auを超えて若者の支持+その上の世代の好感を得るには。。。
 やっぱ、エビちゃん

 エビちゃんが、カタログの表示にばーん!、
 CMにばーん!

 と出てくれば、むかし、Jフォンが、藤原紀香さんばーん!で人気を得たように、そこそこの人気いくとおもうんですよ。エビちゃんでだめなら、もえちゃん相沢さんって話はあると思うけど。。。




 すくなくとも、白地に銀色の二本線ばーん!はないよ。

 他のキャリアが、そこそこ、いまどきの人使ってるのに。。

 あ、そうそう、YAHOOとSoftbankの2つを真っ白のポスターに書くっていうのも、ないから。。あれも、ださいから。。ほんとーに。

 まじ、いまのままだと、ソフトバンク、デザイン的に、やばくない?


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

BREWで複数画面を(分割して開発可能な)開発する場合の方法論(その7:仕様追加-3)

2006-10-03 12:51:35 | ケータイ

 シリーズ「BREWで複数画面を(分割して開発可能な)開発する場合の方法論」のつづきで、今回は、仕様変更が行われたときに、一番初めにすることである、
 
  全体画面を修正し、gamen10のダミー画面を作成

 をします。これにより、BREWでも、FDDのように、テストファースト、まずコンパイルをしてリンクして、テストできる!という状況になります。




■全体像の修正

(1)アプリ全体の構造体fukusu1.hの修正
 アプリ自身の構造体の中に画面間の共通受け渡し部分があるので、そこに、gamen10で入力され、gamen2で表示するユーザー名を追加します(10字なので、21バイトにしてあります)

 こんなかんじ
	//	共通領域
	char		sei_ritu[20];	//	正解率
	char		byo[20];	//	秒数
	char		username[21];	//	ユーザー名


(2)アプリ全体の関数fukusu1.cの修正
・インクルードにgamen10.hを追加します
・fukusu1_HandleEventで、gamen10_HandleEventを呼び出します。
 こんな感じ(赤字が追加部分)
static boolean fukusu1_HandleEvent(fukusu1* pMe, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{  
	boolean	ret;

	ret	=	FALSE;	//	処理していない

		//	スタート時に、はじめの画面を呼ぶ
	if ( eCode	==	EVT_APP_START)
	{
		//	ここをはじめの画面に変える
		pMe->str_cur_no	=	1;
		return gamen2_InitAppData(pMe);
	}
	else if ( pMe	==	NULL )
	{
		return	FALSE;
	}
		//	それ以外は、画面に応じたHandleEventをよぶ
	else
	{
		switch(pMe->gno)
		{
		case	1:
			ret = gamen1_HandleEvent(pMe,eCode,wParam,dwParam);
			break;
		case	2:
			ret = gamen2_HandleEvent(pMe,eCode,wParam,dwParam);
			break;
		case	10:
			ret = gamen10_HandleEvent(pMe,eCode,wParam,dwParam);
			break;
		}
	}

	//	処理した結果、gnoが-1になったら終了
	if ( pMe->gno	==	-1 )
	{
		ISHELL_CloseApplet(pMe->pIShell,FALSE);
		return	TRUE;		
	}

	return ret;
}


(上記< > ¥は、本当は半角です)

ここまでの様子は、こんなかんじ
   fukusu1.c
   fukusu1.h




■ダミー画面の作成
 これは、以前、全体の画面作成(9)2つめ以降の画面を作ります。で紹介したように、initAppData,HandleEvent,FreAppDataの3つの関数をつくり、initAppDataで画面番号(poya->gno)に-1をセットします(こうすると、終了します)

 実際には、そこのgamen1.h,gamen1.cをコピーしてgamen10.h,gamen10.cとして、gamen1をgamen10,GAMEN1をGAMEN10に置換しただけです。

 それが、以下のとおりです
    gamen10.c
    gamen10.h




 これでコンパイルするとOKです。
 第二画面から、ユーザー名をセットするのを確認する場合、fukusu1_initAppDataでユーザー名をセットする必要がありますが、そうすれば、第二画面もメニュー画面(gamen10)がなくても、確認できます。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする