タグ

ブックマーク / developer.cybozu.co.jp (52)

  • O.MGケーブル – 挿したパソコンが遠隔操作されるUSBケーブル | 秋元@サイボウズラボ・プログラマー・ブログ

    マイク・グローバさん(@_MG_)が開発を進めているO.MG Cableは、PCを遠隔操作するためのツールを組み込んだUSBケーブルです。 見た目は何の変哲もない普通のUSBケーブル。 PCに挿すと、リモートのスマートフォンアプリから、PCに対してキー入力ができるようになります。デモでは、PCの利用者がスクリーンロックを解除した状態で、任意のウェブサイトをブラウザに開かせていますが、キー入力が遠隔でできるということは、ほぼなんでもできてしまうと言っていいでしょう。 You like wifi in your malicious USB cables? The O•MG cable (Offensive MG kit)https://t.co/Pkv9pQrmHt This was a fun way to pick up a bunch of new skills. Not possibl

    O.MGケーブル – 挿したパソコンが遠隔操作されるUSBケーブル | 秋元@サイボウズラボ・プログラマー・ブログ
    mattn
    mattn 2019/06/03
  • 1ツイートに収まるブータブルなゲーム | 秋元@サイボウズラボ・プログラマー・ブログ

    Square社のセキュリティエンジニア、アロク・メングラハニさん(Alok Menghrajani, @alokmenghrajani)が公開したツイートは、ツイッターの一回のつぶやきに収まる280文字で、ブート可能なゲームを動かすというものです。 perl -E 'say"A"x46422,"BDRDAwMQFFTCBUT1JJVE8gU1BFQ0lGSUNBVElPTg","A"x54,"Ew","A"x2634,"/0NEMDAxAQ","A"x2721,"BAAAAYQ","A"x30,"SVVVqogAAAAAAAEAF","A"x2676,"LMBaACgB76gfbgTAM0Qv8D4uYAI86qqgcc+AXP45GA8SHIRPFB3DTeYSEhyBSwCa8CwicMB3rSGtkDNFSYwJHvc68MA","VapVqlWq"x330'|base64 -D>c

    1ツイートに収まるブータブルなゲーム | 秋元@サイボウズラボ・プログラマー・ブログ
    mattn
    mattn 2018/08/06
  • ゼロ幅文字にエンコードした隠し情報で、文書をリークしたメンバーを特定 | 秋元@サイボウズラボ・プログラマー・ブログ

    とある会員制掲示板からの文書の流出に困った運営者が、ユニコードの見えない文字「ゼロ幅文字(Zero-Width characters)」を使って流出させたユーザーを特定した、という話が出ていました。 数年前の話、Tom さんが所属していた競技ビデオゲームのチームでは、ログインが必要なプライベートの掲示板を使って連絡していました。その掲示板に書かれた秘密情報や戦術に関する重大アナウンスなどがしばしば掲示板外のウェブにコピペされ、チームにとって大きな問題となっていたそうです。 外部ユーザーの攻撃で中身が漏れたというよりは、メンバーの誰かがコピーしているのでは、と考えた Tom さんは、当時気になっていたユニコードのゼロ幅文字を使ったトリックを仕掛けたそうです。 ユーザーを特定する情報を、見えない文字に変換して埋め込む ログイン中のログインユーザーのユーザーIDを、一定のルールによってゼロ幅文字

    ゼロ幅文字にエンコードした隠し情報で、文書をリークしたメンバーを特定 | 秋元@サイボウズラボ・プログラマー・ブログ
    mattn
    mattn 2018/04/10
  • HTTPパーサにおけるSSE4.2最適化の威力と注意点 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、サイボウズ・ラボの光成です。 PicoHTTPParserは@kazuhoさんたちが開発している高速なHTTPパーサです。 同じ作者によるHTTPサーバH2Oにも使われています。 11月4日の開発ブログによると、その時点でNode.jsなどに使われているhttp-parserの10倍程度の速度を誇るそうです(現在はhttp-parserも速度向上しその差は縮まりました。それでも4倍以上の差があるようです)。 該当ブログにはその高速化のためのノウハウが書かれていて大変興味深いです。ただIntel系CPUに搭載されているSIMD命令は用いられていませんでした。今回、@kazuhoさんと一緒に文字列処理専用のSSE4.2を用いることで1.7~1.9倍の高速化を達成しました(Improving Parser Performance using SSE Instructions (in

    HTTPパーサにおけるSSE4.2最適化の威力と注意点 - Cybozu Inside Out | サイボウズエンジニアのブログ
    mattn
    mattn 2014/12/04
    知りたかった所だった。ありがたい。
  • 出張Shibuya.XSS「HTML5×セキュリティ」を開催します | TAKESAKO @ Yet another Cybozu Labs

    今週末1/18(金)に開催される「エンジニアサポートCROSS 2013」にて、出張Shibuya.XSS「HTMLセキュリティ」を開催します! 「エンジニアサポートCROSS 2013」 http://www.cross-party.com 開催日時:2013年1月18日(金)10:30~17:30、17:45~20:00 開催場所:ベルサール新宿グランド 参加者数:(定員:1000人) ■HTML5 x セキュリティ(B会場)11:40~12:40 セッションオーナー 竹迫良範 (@takesako) / サイボウズ・ラボ株式会社 登壇者 mala / NHN Japan株式会社 はまちや2(セキュリティエンジニア) はせがわようすけ / ネットエージェント株式会社 今回は200人入れる会場を手配できましたので、クロスする話をみんなで楽しく出来ればと思います。 このセッションは諸事

    mattn
    mattn 2013/01/16
  • 鼻の穴がついたiPhoneケース | 秋元@サイボウズラボ・プログラマー・ブログ

    なんだこれは… 海外のブログで見つけたんですが、日製でした。 そこで、デザイン性だけでなく理にかなった形状で使いやすい、抜群の安定感のあるiPhone4/ 4Sケース『HANA(ハナ)』はいかがだろうか。誰のものだかよくわからない鼻の穴に指を突っ込むタイプで、メールチェック・メール作成・アプリで遊ぶ時などに便利。『HANA(ハナ)』はさり気なくスマートなジョークアイテムなのだ。 鼻がついてるシリコン製iPhoneカバー HANA<silicone made cover for iPhone4/4S> 理にかなっていたとは。鼻の穴に指を突っ込むのが好きだけど、実際に他人に突っ込むと迷惑になるなあと悩んでいるiPhoneユーザーの方は一つどうでしょうか。値段は1260円(11ドル)だそうです。

    鼻の穴がついたiPhoneケース | 秋元@サイボウズラボ・プログラマー・ブログ
    mattn
    mattn 2012/07/13
    iPhone持ってないけど欲しい
  • サイボウズ・ラボユースを1年間やってみてわかったこと | TAKESAKO @ Yet another Cybozu Labs

    サイボウズ・ラボユースとは、2011年から始めた学生支援制度で、詳細は…中谷さんによる解説サイボウズ・ラボユースってなに? – Mi manca qualche giovedi`?が詳しいです。 一部、引用すると: サイボウズ・ラボユースで「何をやってもらう」か。 実は設問がすでに間違っている。ラボユースは「やってもらう」ところではなく、自分から「やりたいこと」をやるところ。 というわけでインターンとは全然違う。サイボウズの業務の一部をやってもらうなんてありえない(人がよほど強く希望でもしない限り)。そもそも NDA(秘密保持契約)すら結ばないし。 サイボウズ・ラボユースに応募するには 対象が学生なのはさすがにわかると思うのでおいとくと、上で書いたように「やりたいこと」がある人というのが必須要件。 「開発支援」なので、コンピュータの上で動く何かを作ることが核になっていること。 そして成果

    mattn
    mattn 2012/03/22
    id:Constellationさんの「世界で一番仕様に忠実なJavaScript処理系の作成」は、相当マニアックな展開になることが予想されます。」
  • Googleストリートビュー乱射ゲーム、グーグルにAPIを遮断されあっという間に終了 | 秋元@サイボウズラボ・プログラマー・ブログ

    昨日ご紹介した、グーグルのストリートビューを使って世界の街角で自動小銃を撃つサービスGoogleシュートビューが、サービス終了しました。サイトには”Ctrl + alt + delete”の文字だけが表示されています。終了という意味? Business Insider Advertisingが報じるところによると、このプロモーションを製作したオランダPool Worldwide社のクリエイティブ・ディレクターErwin Kleinjan氏が「グーグル社が利用規約違反を理由にAPIの利用許可を撤回した」と語ったということです。 金曜に公開され、月曜に停止されたこのサービス、ピーク時には一秒に3000人の訪問者を集め、サーバーがクラッシュしたこともあったとか。 利用規約のどこに違反したのかはわかっていませんが、グーグル社としてはストリートビューのイメージが悪くなると判断したんでしょうかね。

    Googleストリートビュー乱射ゲーム、グーグルにAPIを遮断されあっという間に終了 | 秋元@サイボウズラボ・プログラマー・ブログ
    mattn
    mattn 2011/12/14
  • YAPC::Asia Tokyo 2011 で Acme::MineChan を発表してきました | TAKESAKO @ Yet another Cybozu Labs

    毎年恒例のPerlの大祭YAPC::Asia Tokyo 2011ですが、今年はちょっと趣向を変えて「Acme::MineChan」というマインスイーパを自動で解くプログラムを発表してきました。 お急ぎの方はこちらLT版の録画を 最終日2日目のLightning Talksの一番最後に少し時間をもらって簡単なデモをさせていただきました。 Perlで無理ゲーム攻略(1秒でマインスイーパを解く) 以下の録画の9:00ぐらいからデモを開始していて、途中1秒でマインスイーパを解けていますが、これはたまたま(マグレ)です。事前にいくら試しても早くて3秒2秒ぐらいだったので、番で運が良かっただけでした。 元々応募していたのは「Perlで無理ゲーム攻略」という20分の発表で、Win32::GuiTest や Win32::Screenshot などのモジュールを利用して、Windows上で動作するゲー

    mattn
    mattn 2011/11/01
  • グーグル+の+1をマリオの1UPキノコにするChrome拡張 | 秋元@サイボウズラボ・プログラマー・ブログ

    +1アイコンがキノコになった上に、クリックすると例の効果音が流れます。 クロームブラウザ拡張 1-Up for Google+ via LOL!!! Replace Your +1 Button With Mushroom from Mario Brothers

    グーグル+の+1をマリオの1UPキノコにするChrome拡張 | 秋元@サイボウズラボ・プログラマー・ブログ
    mattn
    mattn 2011/10/31
  • 世界最悪の、わざと間違う電卓 Wrongulator | 秋元@サイボウズラボ・プログラマー・ブログ

    Wrong(間違い)+Calculator(電卓)でWrongulatorは、「決して正しい答えを返さない電卓」だそうです。 この「世界最悪の電卓」、見た目は太陽光で動くよくある電卓ですが、その恐ろしいのは計算結果が決して合わないこと。同僚を騙すときのジョークグッズとしてどうか、と言っていますが、ひそかに物と入れ替わったりしたら混乱を起こすでしょうね。 イギリスの通販サイトに4.95ポンド(630円)で掲載されていますが、予想外の人気だったのかそもそもあまり製造してないのか、今は在庫切れのようです。 via Wrongulator Guaranteed to Be Incorrect 101% of the Time – Technabob

    世界最悪の、わざと間違う電卓 Wrongulator | 秋元@サイボウズラボ・プログラマー・ブログ
    mattn
    mattn 2011/07/26
  • 男性ストリッパーを使った脅迫看板広告 | 秋元@サイボウズラボ・プログラマー・ブログ

    すごいことを考えたもんだ、という屋外広告のアイデアです。 Interbestという企業が、”The sooner you advertise here, the better.”(ここに早く広告を出した方がいいですよ)というメッセージと共に張り出したこの看板、日が経つにつれて写っている男性モデルが… …ごらんの通り、着るものを脱いでいく看板に変えられていきます。下に来るにつれて、だいぶひどいことになってきてますが、この看板が大きな話題を呼んだということで、この次の看板はこうなりました。 メッセージのほうも、「ヒャー…! ありがとうRadio 2」と、広告枠を買ってくれたラジオ局への感謝に変わっています。担当者も、この先の写真はヤバイ、いいかげん誰かスペースを買ってほしい、と思っていたのでは。 若くてキレイな女性を使って目を惹く、なんてのは良くある手段で今さら人目を惹かない、ということですか

    男性ストリッパーを使った脅迫看板広告 | 秋元@サイボウズラボ・プログラマー・ブログ
    mattn
    mattn 2011/05/25
  • 出たばかりのChrome版Angry Birdsがさっそくハックされ、全レベルが遊べるように | 秋元@サイボウズラボ・プログラマー・ブログ

    Google I/Oで発表された、iPhoneAndroidで人気のゲームAngry Birdsのウェブブラウザ版、HTML5で作られていてChromeブラウザでアプリ版とまったく変わらない感覚で遊べることに驚きましたが、もう中身を解析した人が出てきたようです。 要は、どの面をクリアしたかの情報が保存される場所がわかったということなのですが、ブラウザ版を実行した状態で、以下のコードをアドレスバーで実行すると、全部の面のロックが外れてしまいます。 javascript: var i = 0; while (i<=69) { localStorage.setItem('level_star_'+i,'3'); i++; } window.location.reload(); Google I/Oでは、Chromeブラウザ上でのアップストアも発表されました。ケータイやスマートフォンでやっている

    出たばかりのChrome版Angry Birdsがさっそくハックされ、全レベルが遊べるように | 秋元@サイボウズラボ・プログラマー・ブログ
    mattn
    mattn 2011/05/13
    まぁlocalStorageに保存してる時点でGoogleも隠そうと思ってなかったでしょうしね。
  • YAPC::Asia 2010 Tokyo に参加して | TAKESAKO @ Yet another Cybozu Labs

    10/14-15、東工大の大岡山キャンパスで開催された「YAPC::Asia 2010 Tokyo」に参加してきました。 いくつか手持ちのデジカメで写真を撮影しましたので、それらを交えながら自分の発表を中心にレポートしたいと思います。 ■ Day 0 – 前夜祭 (10/13) 前夜祭ではPerlCasual#4のイベントが開催されていましたが、 入り口のロビーでビールが振舞われ、日語のわからない海外スピーカの方も和気藹藹と楽しんで行かれたようです。 yusukebeさんも一発表者としてではなく運営側に立つと真面目になるんだなぁという、意外な一面も垣間見れたりしました。 ■ Day 1 – Lightning Talks (10/14) 初日のライトニングトークの一番最後に「That Goes Without Alpha-Num (or Does It?)」という内容で発表させていただき

    mattn
    mattn 2010/10/21
  • Kazuho@Cybozu Labs: String::Filter っていうモジュール書いた - 続: (Twitter の XSS 脆弱性に関連して) 構造化テキストの正しいエスケープ手法について

    先のエントリ「(Twitter の XSS 脆弱性に関連して) 構造化テキストの正しいエスケープ手法について」の続き。 弾さんが「404 Blog Not Found:DHTML - 構造化テキストは構造化するのがやっぱ正しい」で示されているような DOM ベースの操作を行えば、原理的に XSS 脆弱性を防ぐことができます。ただ、クライアントサイド JavaScript によるレンダリングはウェブの構造を破壊するという点で筋が悪い(テーブルと FONT タグを利用したページレイアウトが批判されていた頃を覚えていらっしゃいますでしょうか。JavaScript によるレンダリングはウェブのリンク構造も破壊するので一層たちが悪いというのが自分の考え)ですし、サーバサイドでの DOM 操作は重たいので、できれば避けたいところです。 構造化テキストの HTML への変換は、よほど複雑な記法でない限り

    mattn
    mattn 2010/09/23
  • Kazuho@Cybozu Labs: (Twitter の XSS 脆弱性に関連して) 構造化テキストの正しいエスケープ手法について

    昨日の Twitter の XSS 騒ぎは、まだ皆さんの記憶に新しいことと思います。いい機会なので、ツイートのような構造化テキストのエスケープ手法について触れておきたいと思います。 Twitter のメッセージは、単なる平文(プレインテキスト)ではなく、「@英数字」のような他のユーザーへの言及と「http://〜」のような URL を自動的にハイパーリンク化する構造化テキストです。 このような複数のルールをもつ構造化テキストを HTML 化する際には、どのようなコードを書けばいいのでしょう? まず「@〜」をリンク化してから、URL をリンク化すればいいのでしょうか? それだと、@〜 のをリンク化した A HREF タグの中の URL がさらにリンク化されていまいますね。 では、URL をリンク化してから @〜 をリンク化すればいいのでしょうか? それだと、@ を含む URL があった場合に

    mattn
    mattn 2010/09/22
  • Kazuho@Cybozu Labs: テストケースの実行にあわせて Apache を起動・終了する方法

    ウェブアプリケーションやライブラリの結合テストを行う段階になると、実際に Apache を起動してテストを実行したくなります。しかし、そのためにいちいち Apache の設定ファイルを修正して httpd を再起動して、とやっていては面倒です。特に複数のプログラムを同時に開発していると、あっちをテストしたらこっちが動かなくなって… なんてなったりして嫌気がさしてきます。 そこで、テストを実行する際に、環境毎に異なる以下のような問題を吸収しつつ、テスト専用に設定された Apache を自動的に起動終了してくれる Perl モジュール:Test::Httpd::Apache2 を書きました。 環境によって、インストールパスが違う (/usr/local/apache/bin だったり /usr/sbin だったり) 環境によって LoadModule の要不要や、ロードするパスが違う 環境によ

  • Cybozu Inside Out: ScaleBench 公開

    どーもみなさま。こんにちは。 amachang と申します。 さて、ようやく ScaleBench というプロダクトが発表されましたね! ScaleBench のご紹介 で、僕もこれの開発に携わっていたのでちょっと技術的なことについて書いてみたいと思います。 ScaleBench とは ScaleBench とは、サイボウズ製品向けの負荷テストツールで Grinder というオープンソースの負荷テストツールをベースにしています。 Grinder とは Java を使った Web の負荷テストツールです。 Jython でシナリオ(ユーザがどう行動するか)を書いてそれを実行します。 またブラウザの操作を記録して、シナリオを自動で生成することもできたりします。 で、僕がこのプロジェクトで担当していたのが Grinder の改良、改造 シナリオ(バーチャルユーザがどのような順で負荷をかけていくか

    Cybozu Inside Out: ScaleBench 公開
    mattn
    mattn 2010/05/20
  • 初の非ラテン語国別トップレベルドメインが利用可能に。まずアラビア語の「エジプト」「サウジアラビア」「UAE」 | 秋元@サイボウズラボ・プログラマー・ブログ

    初の非ラテン語国別トップレベルドメインが利用可能に。まずアラビア語の「エジプト」「サウジアラビア」「UAE」 BBCによると、世界のドメイン名管理の元締め団体ICANNが、国別トップレベルドメイン(TLD)、日で言う”jp”にあたる箇所に、アルファベット以外の文字が使えるシステムへの移行を完了したそうです。 一番最初の「非ラテン」TLDとして、エジプト、サウジアラビア、UAEの三国のものが既に準備できていて、テストが済み次第運用が始まるということ。表記は以下のようになるそうです。 エジプト: مصر サウジアラビア: السعودية UAE: امارات アラビア語なので、右から左に読むみたい。読めませんが。ブラウザ上でもカーソルが不思議な動きをします。 これまでは、セカンドレベル以下でまったく読めない文字で書かれていても、トップはアルファベットだったのでどこの国のサイトかあたりをつ

    mattn
    mattn 2010/05/07
    「UAE:」をマウスで選択してShift+→→→...気持ち悪い。
  • Kazuho@Cybozu Labs: REST におけるトランザクションについて (Re: Web を支える技術)

    といいつつ、ひとつだけ理解できないというか、納得できないところが。トランザクションのところがなんだかRESTっぽくないのがすごく気になる Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESSプラスシリーズ)(山 陽平) - ただのにっき(2010-04-23) 「Web を支える技術」は自分もとてもいいだと思う (教科書としてすばらしいし復習用としても読みやすいのでイイ) のですが、トランザクションの所だけは分かりづらいなと感じました。その原因は、atomic transaction で解決できる課題を例として使っているという点と、トランザクションと更新クエリのレイヤ分割がされていない、という2つの点によるものではないでしょうか。 HTTP 上でトランザクションを表現する必要があるケースのほとんどは、atomic transaction ではなく

    mattn
    mattn 2010/04/26
    この辺、一通り例で書いた物が欲しい。返すべきステータスコードとか。