タグ

binaryに関するhon53のブックマーク (31)

  • ローダー(Loader)とパッカー(Packer)とカスタムリソースの話

    はじめに パッカー(packer)とは、実行ファイルを実行できる形式のまま圧縮(暗号化)するツールであり、UPX、FSG、tElockなど様々なものがあります。しかし、種類は違えどパッカーの基的動作原理はほとんど同じで、「ターゲットとなる実行ファイルを圧縮(or暗号化)して、プログラムの先頭に展開(or復号化)ルーチンを付加する」だけです。こうすることにより、プログラムが実行されたら一番最初に展開ルーチンが実行され、来の実行ファイルのデータをメモリ上に復元してプログラムが処理されることになります。 それで、今回はそのパッカーを作成してみようというわけですが、パッカー作成に関して大いなる壁になるのは「実行ファイルの先頭に付加する展開コードはアセンブリ言語で書かなければならない」という事態です。 例えば、暗号化処理がビット反転だったなら、アセンブリ言語でも簡単に復号化処理を書くことができま

    hon53
    hon53 2009/01/14
    packer作成
  • コンピュータにおける「データ表現」の基礎(第2回)

    矢沢 久雄 今回は,2進数で負の値を表す「補数表現」と,同じ値のまま2進数のビット数を増やす「符合拡張」を説明します。紙の上ならマイナス記号を使って「-1011」のような負の2進数を表すことができますが,コンピュータにはできません。デジタルICの構造上,0と1の数字を表せても,マイナス記号を表す手段がないからです。0と1だけで,どうやって負の値を表すかが前半のテーマです。後半では,8ビットから16ビット,16ビットから32ビット,というように,2進数のビット数を増やす方法がテーマです。単に上位けたを0で満たせばよいと思われるかもしれませんが,それだけではダメなのです。 足し算で引き算ができる 2進数の0と1だけを使って負の値を表すにはどうしたらよいか? いきなりですが,答えを言ってしまいましょう。負の値を正の値で表すのです。「そんなバカげたことができるのか?」と思われるかもしれませんが,で

    コンピュータにおける「データ表現」の基礎(第2回)
    hon53
    hon53 2009/01/12
    補数とかわかりやすく解説してあります。忘れたときに読むとよい
  • バイナリエディタ一覧 - フリーソフト100

    ファイル内容がアプリケーション固有のデータファイルや実行ファイルなどをバイナリデータと呼び、そのバイナリデータで構成されているファイルを閲覧、編集することができるエディターソフトです。 プログラム開発やエラー時に出力された固有のログファイル解析などに利用されます。バイナリエディターは、対象バイナリファイルをドラッグ&ドロップしてバイト表示ができます。

    バイナリエディタ一覧 - フリーソフト100
    hon53
    hon53 2009/01/11
    バイナリエディタ
  • Hex Rays - State-of-the-art binary code analysis solutions

    IDA Pro The best-of-breed binary code analysis tool, an indispensable item in the toolbox of world-class software analysts, reverse engineers, malware analyst and cybersecurity professionals. A powerful disassembler and a versatile debugger IDA Pro as a disassembler is capable of creating maps of their execution to show the binary instructions that are actually executed by the processor in a symbo

    hon53
    hon53 2009/01/10
    disassembler IDAPro
  • インポートアドレステーブルと API フック - Web/DB プログラミング徹底解説

    概要 ある実行可能ファイルから、他の実行可能ファイル (DLL) にある関数を呼び出すために、実行可能ファイルのヘッダー情報の中のインポートセクションという場所に記録されている情報を使います。 インポートセクションには、「この EXE (または DLL) は foo.dll の Bar() 関数を呼び出しますよ。アドレスはここです。」 というような情報が書いてあります。この資料ではその仕組み、特に実際の関数のアドレ スが記載されているインポートアドレステーブルの仕組みを説明します。最後にこれを活用する例として、MessageBox API をフックして自前の関数を呼び出してみます。 インポート セクションと IAT いわゆる普通の実行ファイル (EXE) は PE (Portable Executable) 形式と呼ばれるフォーマットです。その詳細は別の回でご説明したいと思いますが、今回の

    インポートアドレステーブルと API フック - Web/DB プログラミング徹底解説
    hon53
    hon53 2009/01/06
    IATとAPIフック
  • Windows実行ファイルのバイナリ概要

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Windows実行ファイルのバイナリ概要
    hon53
    hon53 2009/01/06
    RVAについて
  • S.S'S HOMEPAGE 逆アセのスス乂 目次 MicrosoftのCOFFフォーマット解説 日本語訳

    目次 1. 基概念 2. 概要 3. ファイル ヘッダ 3.1 MS-DOSのスタブ(イメージのみ) 3.2 シグネチャ(イメージのみ) 3.3 COFFファイル ヘッダ(オブジェクトとイメージ) 3.3.1 マシン タイプ 3.3.2 特性 3.4 オプション ヘッダ(通常はイメージのみ) 3.4.1 オプション ヘッダの標準フィールド(イメージのみ) 3.4.2 オプション ヘッダのWindows NT固有フィールド(イメージのみ) 3.4.3 オプション ヘッダのデータ ディクショナリ(イメージのみ) 4. セクション テーブル(セクション ヘッダ) 4.1 セクション フラグ 4.2 Grouped Sections(オブジェクトのみ) 5. 他のファイル内容 5.1 セクション データ 5.2 COFFの再配置(オブジェクトのみ) 5.2.1 タイプ インジケータ 5.3 CO

    hon53
    hon53 2009/01/05
    windows ディレクトリエントリの構造
  • otool

    以下のドキュメントは、Mac OS X の man otool を翻訳したものです。使用例も付けてあります。 OTOOL(1) 名前 otool - オブジェクトファイル表示ツール 文法 otool [ option ... ] [ file ... ] 内容 otool コマンドは、オブジェクトファイルやライブラリの特定の部分を表示するんだ。-m オプションが使われてなければ、引数として渡されるファイルは libx.a(foo.o) の形だと思う。完全なライブラリじゃなくて、オブジェクトファイルの情報の要求なんだ。(普通は、この引数はクォートで囲まれているんだ、``libx.a(foo.o)'' っていう感じに。これでシェル経由でできる。)otool は、Mach-O と fat の両方のフォーマットを理解することができるんだ。あと、特定の情報を、生(数字)で表示したり(

    hon53
    hon53 2009/01/04
    otool
  • Fink - 移植 - 共有コード

  • バイナリファイルを解析する

    Perlといえばテキスト処理や正規表現が得意で、バイナリを扱うような話についてはあまり聞かない印象があります。Perlが持つ関数pack/unpack等でもバイナリ処理は可能ですが、今回はData::ParseBinaryを使ってバイナリファイルを気軽に解析してみましょう。 基 ファイルからストリームを作る 解析したいファイルをData::ParseBinaryで扱えるストリームに変換します。 use Data::ParseBinary; my $stream = CreateStreamReader(File => $file_handle); 解析したい構造を定義する Struct関数で解析したい構造を定義します。Struct以下には基データ型やコンテナ型、ビット/バイトパディング型、制御構文型等を使用できます。各型に指定したラベルが解析結果として得られるハッシュのキーとなります。

  • Apple Developer Documentation

    連絡先|プライバシーポリシー 製品のご購入・ご購入相談は、お気軽にアップルストアまで。 0120-APPLE-1(0120-27753-1) Copyright © 2008 Apple Inc. All rights reserved | Terms of use | Privacy Notice