タグ

2009年4月6日のブックマーク (3件)

  • Java解析にはバイトコードの知識が必要かもしれない - KENJI’S BLOG

    Javaアプリケーションの解析をやっていて、やはりJavaバイトコードの知識は必須だと思いました。確かに、jadをはじめ、Javaデコンパイラの性能は良く、ほぼ間違いなくデコンパイルは成功するのですが、問題は、デコンパイルが完了しても「JVM INSTR」(認識できなかったバイトコードが見つかった場合に出力される)が結構頻繁に現れることと、再度コンパイルするために必要となるファイルを、別途用意しなければならない場合が多々あることです。どちらの場合においても、デコンパイルにより出力されたデータに修正、もしくは追加を行う必要があり、また、バイナリにほんの少しの修正を加えたいだけであっても、デコンパイル → 修正 → コンパイルという動作を行わなければならないため、かなりの手間となります。 例えば、「Doorman」というツールがあります。このツールは、HTTPのProxyとして動作し、通信デー

  • Java Practice クラス解析

    クラスファイル解析 はじめに ここでは.javaファイルをコンパイルしてできる.classファイルを16進数ダンプして得られる情報を解析します。 以下のページも参考にしながら、クラスファイルの構造を見てみてください。 インストラクションコードはjavap -c クラスファイルを実行すると見ることができるマシン語です。 クラスファイルの構造 インストラクションコード 16進数ダンプ 以下のファイルを使用してクラスファイルを16進数ダンプします。 ・HexDumper.java 今回は「HelloWorld」を出力するだけの以下のクラスをダンプし、解析してみます。 public class Sample { public static void main(String[] args) { System.out.println("Hello World"); } } 0000: CA

    sadah
    sadah 2009/04/06
    バイトコードを読んでいく…すごい
  • 常駐型サーバープログラムのデバッグ手法

    BOOK: WEB+DB Press TITLE: 常駐型サーバーのデバッグ手法(ドラフト版) AUTHOR: (株)プリファードインフラストラクチャー 太田一樹 *注: この文章はWEB+DB PRESS Vol.48に掲載された記事のドラフト版です はじめに 今回はデバッグ関連特集ということで、常駐型サーバープログラムを作成する際のハマりどころやそれに対する解析方法・解析ツール・対策を、実際の経験を交えながら紹介したいと思います。 筆者は(株)プリファードインフラストラクチャーでインメモリ分散検索エンジン「Sedue (セデュー)」を開発しています。モバイル向け検索エンジン「エフルート」や、2008/11/6にリニューアルされました「はてなブックマーク2」などの検索バックエンドとして使われております。 この検索エンジンはいくつかの常駐型サーバープログラムから構成されており