タグ

ブックマーク / cpplover.blogspot.com (12)

  • アンチウイルスソフトウェアの脆弱性

    Breaking av software 市場に出回っているアンチウイルスソフトウェアの脆弱性についての研究発表のスライド資料が公開されている。 アンチウイルスソフトウェアは、セキュリティ向上のために重要だという意見があるが、このスライド著者は疑問を投げかけている。そもそも、ソフトウェアの追加は、攻撃できる箇所が増えるということだ。アンチウイルスソフトウェアは果たしてセキュアに作られているのか。 特に、多くのアンチウイルスソフトウェアは、カーネルドライバーを使ったりしている。もし脆弱性があればとんでもないことだ。 アンチウイルスソフトウェアの攻撃手段としては、細工されたファイルフォーマットをスキャンさせる事が大半だ。アンチウイルスソフトウェアは、様々なフォーマットのファイルをパースする必要がある。もし、そのパーサーにバッファーオーバーフローなどの不具合があれば任意のコードを実行させることが

  • ループカウンタを64bitにしたり、 バッファのサイズを定数にしたらパフォーマンス激落ちなんだけど何で?

    ループカウンタを64bitにしたり、 バッファのサイズを定数にしたらパフォーマンス激落ちなんだけど何で? c++ - Replacing 32bit loop count variable with 64bit introduces crazy performance deviations - Stack Overflow stackoverflowで、興味深い質問が行われている。 簡単にまとめるとこうだ。std::uint64_t型の配列の各要素にx86-64のpopcnt(1になっているビット数を数える命令)を適用したい。 コードの肝心の部分を書くと、以下のようになる。 for (unsigned i=0;i<size/8;i+=4) { count+=_mm_popcnt_u64(buffer[i]); count+=_mm_popcnt_u64(buffer[i+1]); coun

  • Linus Torvalds、 GCC 4.9.0のコード生成にブチ切れる

    Phoronixで知ったが、Linus TorvaldsがGCC 4.9.0のコード生成にブチ切れている。 問題はLinuxカーネルのload_balance()がランダムにパニックを起こすというもので、その原因は、報告者の使っているコンパイラーであるGCC 4.9.0のコード生成がおかしかったという話だ。 Linus様は御自ら生成されたコードを読み給い、平生と変わらぬ調子で物事の道理を示された。 Linux-Kernel Archive: Re: Random panic in load_balance() with 3.16-rc From: Linus Torvalds Date: Thu Jul 24 2014 - 14:47:25 EST On Wed, Jul 23, 2014 at 6:43 PM, Michel DÃnzer <michel@xxxxxxxxxxx> wro

  • 8086のバイナリが汚すぎる

    池袋バイナリ勉強会に参加して、8086の逆アセンブラーを作成しようとしているのだが、これが思いの外に難しい。いや、めんどくさい。 筆者は、これまでx86アセンブリには、ニーモニック経由でしか触れてこなかった。movはmovであり、それ以外の何者でもなかった。 mov ax, bx などと書いたら、これをアセンブラーにビット列に変換させて、その後は何も考えなかった。 既存のバイナリを逆アセンブラーにかけて読む場合でも、やはり逆アセンブラーがバイナリをニーモニックに変換してくれるので、やはりビット列による表現方法に関しては、考えたこともなかった。 さて、池袋バイナリ勉強会に参加したので、この機会に、逆アセンブラーでも実装しようと思い立った。そこで、Intelの当時の8086の資料を読んでみた。 Index of /Intel/x86/808x/datashts/8086 そして、絶望した。80

  • OpenBSD、怒りのコミット

    OpenSSLのheatbeatバグの対応のため、OpenBSDはOpenSSLのheatbeatを無効にするコミットをした。ただし・・・ src/lib/libssl/ssl/Makefile - view - 1.29 SegglemannのRFC520 heatbeatを無効化。 あのまともなプロトコルひとつ制定できないIETFの無能集団が、超重要なプロトコルで64Kの穴をこしらえるとか、マジであきれてものも言えねーわ。奴らはマジこの問題を気で検証すべきだろ。なんでこんなことをしでかしたのか。こんな事態を承認した責任ある連中を全員、意思決定プロセスから取り除く必要がある。IETF、てめーは信用なんねぇ。 このコミットは、Makefileの中で、OpenSSLでheatbeatを無効にするマクロを定義するよう、コンパイラーオプションを指定するものだ。ただし、無効にするマクロは、OPE

  • ドワンゴに入社した

    そう。タイトル通りだ。筆者、江添亮はドワンゴに雇用された。一体、どのような経緯でドワンゴに入社するに至ったのか。また、どんな仕事をしているのか。それを説明するには、時系列を追って書いたほうがいいだろう。 2013年8月21日 ふとみると、以下のようなサブジェクトのメールが届いていた。 【ご相談】ドワンゴ主催の C++11, 14 に関する勉強会にスピーカーとしてご参加頂けないでしょうか C++11? C++14? なんと、日C++14などという単語を知っている企業があったのか。しかし・・・ドワンゴ? SPAMだろうか。いや、こんなにピンポイントなSPAMがあるわけがない。 それにしても解せないメールだ。ドワンゴといえば、もちろん、あの有名なニコニコ動画の企業だ。ニコニコ動画と言えばWebサイトだ。ニコニコ動画やその関連サービスの開発にC++を使っているのだろうか。いやまて、たしか子会社

  • 不自由なSaaSSを使った報い

    BenjaminSte.in - iOS holding my phone number hostage = the worst bug I’ve ever experiencedだった iOSが俺の電話番号を監禁している = 俺のであった中で最悪のバグ 二ヶ月前、俺はiPhoneからAndroidに移った。俺は初日からiOSのファンだったが、iOS7には我慢ならなかった(それは別の記事の話だが) 俺はVerizonのMotoXに大変満足してる。24時間以内に、今まで使ってたアプリは全部切り替えられて、Androidを俺のメインの携帯として準備することができた。 だが、よくわからないことがあったのだ。どうやら、俺はあまりテキストメッセージを受け取れていないらしい。俺のメッセージに反応がないことはイラつくし、俺も反応できないことで人をイラつかせている。 なんなんだこれは。俺の仕事用のラップト

  • 1/9998 = 0.0001 0002 0004 0008 0016 0032 0064 0128 0256...

    1/9998 = 0.0001 0002 0004 0008 0016 0032 0064 0128 0256... \(\frac{1}{9998}\)は、4桁で2^13まで2の累乗のパターンが出現する。 \[\frac{1}{9998} = 0.0001\;0002\;0004\;0008\;0016\;0032\;0064\;0128\;0256\;0512\;1024\;2048\;4096\;8193\;6387\;\cdots\] Hacker Newsによれば、これは以下のような理由による。 The pattern will break down once you get past 8192, which is 2^13. That means th\cdots | Hacker News このパターンは8192を超えると破れる。つまり、このパターンはすごいことに52桁も継続

  • Herb SutterがCairoのMLにC++標準規格にCairoを入れられないか打診中

    [cairo] Cairo and ISO C++ [Phoronix] Cairo Proposed To Become Part Of ISO C++ Herb Sutterが、CairoのMLに登場して、CairoをC++標準規格の軽量描画ライブラリとして採用できるかどうかの質問をしている。 軽量グラフィックライブラリーについては、私のブログの去年の10月の簡易レビューでも解説している。の虫: 2013-10 post-Chicago mailingの簡易レビュー こんにちは。私はHerb Sutterと申します。ISO C++標準化委員会の議長を勤めております。Behdadさんが質問の場として、このMLを紹介してくださいました。 C++標準化委員会は、ISO C++の標準規格に取り入れることができる、基的な2D描画ライブラリを策定しておりまして、その土台となる(あるいは、バイン

    zanasta
    zanasta 2014/01/04
    “本気か? 正気か?”入っ(てしまっ)たら凄いことのような気がします(・ω・ )
  • うっかりチューリング完全になっちゃったもの

    Accidentally Turing-Complete ― Andreas Zwinkau 来なら、チューリング完全となるべきではなかったものがある。これは、そのようなうっかりチューリング完全になってしまったものの例である。 C++テンプレート 当初はチューリング完全を目指していなかったが、C++テンプレートはチューリング完全になってしまった。その証明は、この論文にある(PDF) x86 MMU x86のpage fault handlingは、単純なマシンの実装に使える。原理としては、page faultが1 wordをスタックに積み、それによりアンダーフローを起こして別のトラップを生成する。この仕組みは、「減算して0以下ならば分岐」処理を実現する。チューリングマシンを実装するには十分である。デモ動画、講演動画 マジック・ザ・ギャザリング マジック・ザ・ギャザリングはカードゲームであ

  • 完全に秘密を守るコンピューターシステムを求めて

    朝風呂に浸かりながら、今の私の知識を総動員して完全に秘密を守るコンピューターシステムを求めたらどうなるだろうかと、ぼんやりと考えていた。その内容を書きだしてみる。 今は政府や犯罪組織の諜報機関が暗躍する時代であるから、コンピューターシステムが利用者の秘密を守れるかどうかを考慮することはとても重要だ。たとえば、私が「もはやソフトウェア特許という害悪を日から除くには、暴力革命しかない」などと考えて、その実行計画をコンピューターを使って以下のように練ったとする。 「日の市町村の中で、ハーグ陸戦条約第25条に基づく無防備都市宣言を条例で定めようという動きがある。もし、実際にこのような条例を可決する市町村が出た場合、すぐさま安全ピンと果物ナイフとピストル型ライターで武装して侵攻する。すでに発した無防備都市宣言により、一切の抵抗なく、無血で占領できるはずである。占領後、すみやかに軍による暫定政権を

    完全に秘密を守るコンピューターシステムを求めて
  • LinuxカーネルのMLにおける悪口の励行についての議論勃発

    Linuxカーネルのメーリングリストは、常に罵詈雑言に満ち溢れているが、そういうのは辞めて大人になろうという主張がSarah Sharp[1]によってなされた。なかなか面白い。 きっかけは、いたって日常的な罵倒混じりの議論に、Sarah Sharpが横槍を入れたところから始まった。 LKML: Sarah Sharp: Re: [ 00/19] 3.10.1-stable review On Fri, 12 Jul 2013 18:17:08 +0200, Ingo Molnar <mingo@kernel.org> wrote: * Linus Torvalds <torvalds@linux-foundation.org> wrote: On Fri, Jul 12, 2013 at 8:47 AM, Steven Rostedt <rostedt@goodmis.org> wrote

    zanasta
    zanasta 2013/07/16
    凄い知的な作業やりながらこんなやり取りが行われているとは…想像もしてませんでした((((;゚Д゚))))ガクガクブルブル 過酷ですねぇ(・ω・ )
  • 1