タグ

2010年7月5日のブックマーク (9件)

  • ソースコードから読み解くAndroidの実像

  • Cの逆コンパイラはどこまで実現可能か,Javaはなぜ逆コンパイルされやすいのか?

    自称・リバースエンジニアリング技術のホビー研究家です.(^^; 逆コンパイラ (デコンパイラ,decompiler) の可能性と限界, プログラムの自動解析の難易度等について日頃考えていることをまとめてみました. (こうすること自体が研究を進めることにもなるので.) 注意: このページの内容の多くは現時点での私の直観・主観・推測等に基づくものであり, 正当性は全く保証の限りではありません.また,今後の研究の進展 (または行き詰まり(苦笑)) により,内容が変化する可能性は大いにあります. ■関連ページ OKWave QNo.3043962:デコンパイル?について (回答 No.5~) ソフトウェアのリバースエンジニアリング技術の必要性 (そしてJavaとCの逆コンパイラについて) 逆コンパイルについて Web 上で調べてみると, 洋の東西を問わず「C/C++ の逆コンパイルは可能か?」とか

    nharuki
    nharuki 2010/07/05
  • グーグルがWebを高速化するために何をしているか

    のページをめくるように、どんなWebページも素早く表示できるようにする。グーグルは以前からWebの高速化に取り組んできました。 6月22日から、米サンタクララで行われていたWebサイトのパフォーマンスと運用に関するオライリーのイベント「Velocity 2010」では、グーグルのUrs Hölzle氏がWebの高速化技術について「Speed Matters」(スピードの重要性)というセッションで紹介ています。 Webを高速化するためにどのような技術があり、あるいはどのような技術が検討されているのか、このセッションの内容を紹介しましょう。 スピードは重要だ 私が話そうとしているのは、「Speed matters」(スピードの重要性)についてだ。Webは空飛ぶジャガイモより速くなれるだろうか? どのくらい速くなれるだろうか? (参考:オペラがやってくれた! グーグルの空飛ぶジャガイモに対抗)

    グーグルがWebを高速化するために何をしているか
  • KMC Staff Blog:Android SDKのgoldfishのCPUをarm1136に置き換える方法

    2009年08月05日 Android SDKのgoldfishのCPUをarm1136に置き換える方法 AndroidのSDKではgoldfishという仮想ハードウェアをqemuで動作させています。この環境は実際のハードウェアがなくても動作させることができるのでとても便利です。goldfishはCPUがARMv5TEアーキテクチャのarm926なのですが、これをARMv6アーキテクチャのarm1136に置き換える実験をしてみたところ意外にすんなり動きました。 その手順をここで紹介します。 2009年11月のEclairのソースリリースでだいぶ状況が変わっています。こちらも参照してください。 以下の作業はUbuntu 9.04上で行いました。Androidのビルドの方法はこちら(http://d.hatena.ne.jp/embedded/20090510/p1)を参照してください。 きん

  • C++で開発

    [ Home on 246net ] C++で開発 好むと好まざるとに関わらず、C++言語を使った開発をすることになったときに調べたことの蓄積。 言語仕様 ブートストラップ main関数 main関数について パッケージ管理 名前空間 名前空間の使用 ヘッダファイル ヘッダファイルとは インクルードガード ヘッダファイルの依存性をなくすには 文法要素 プリプロセッサ 条件コンパイル 可変引数を取る関数(stdargs他) 定義済みマクロ 型 組み込み型 標準定義型(標準typedef等) ビットサイズ固定整数型、 typedefの注意 クラス コンストラクタ メンバー変数 演算子関数 ビットフィールド 継承 例外 標準例外 例外処理のプログラミング テンプレート メンバ関数の特殊化 デバッグ アサーション ANSI Cのassert VC++固有のassert コーディング標準 公知のコー

  • 紫ログ:C++のテストフレームワークを試食 - livedoor Blog(ブログ)

    TopCoderの為に少しやる気になってきたところで、Macでフリーで使える C++ のテストフレームワークをいくつか試してみたのでメモ。 CppUnit - C++ Port of JUnit CxxTest googletest - Google C++ Testing Framework Boost.Test CppUnitはテストの記述が若干面倒な気が。表示はシンプルで悪くない。 CxxTestはインストール方法が他と違って少し悩んだが、記述量が少なくて取っつきやすかった。 googletestは記述量が少なめで、赤と緑のカラー表示コンソールで、マクロの種類も豊富。ASSERT マクロと EXPECT マクロの対応も分かりやすい。但し、出たばかりで日語での情報が少ない。 Boost.Testは普段Boostに慣れ親しんでいるなら良いかも。マクロの種類は多め。 とりあえず、goog

  • Obfuscation (software) - Wikipedia

    In software development, obfuscation is the act of creating source or machine code that is difficult for humans or computers to understand. Like obfuscation in natural language, it may use needlessly roundabout expressions to compose statements. Programmers may deliberately obfuscate code to conceal its purpose (security through obscurity) or its logic or implicit values embedded in it, primarily,

    Obfuscation (software) - Wikipedia
  • cafebabe.jp » 難読化ツール一覧

    著名なJava難読化ツールとか,クラスファイル暗号化ツール,圧縮ツールをまとめてみた. 全てのツールを試したわけではないが,個人的な雑感として,各難読化ツールの違いはほとんどない.せいぜい名前難読化の名前の決め方に違いが現れる程度である.また暗号化ツールはもっと違いが少ないと思う.最適化ツールは Sophia Compress で決まり.圧縮にかけている情熱が全然違う.研究用ツールのうち,DonQuixoteは拙作なのでまぁ,よしなに.

  • 難読化手法(Software Obfuscation):Geekなぺーじ

    ソフトウェアの難読化に興味を持ったので、どういう手法があるのか調べてみました。 結構面白かったです。 この分野は勉強していくと非常に面白そうですね。 (メチャメチャ奥が深そうですね) 以下に、簡単な手法をいくつかピックアップしてみました。 様々な手法を組み合わせて、ぐちゃぐちゃの読みにくい出力を生成できるそうです。 また、自動的に出力をぐちゃぐちゃにするツールも色々あるようです。 名前マングリング 何をするかバレバレの名前をバイナリ中に残してしまうと、すぐに解析されてしまいます。 それを防ぐために関数名などをマングリングしてしまいます。 例えば、以下のようなコードがあったとします。 secret_key_funcという秘密鍵を扱う関数があるとします。 例えば、これをdefineでhogera()に変えてしまうと、何をしたい関数なのかが多少わかりにくくなります。 #include <stdi