タグ

binaryに関するtztのブックマーク (6)

  • プログラムはどう動くのか? 〜 ELFの黒魔術をかいまみる

  • Hex Editors - Sourcepole

    Hex Editors for Lin/unix Around ca. 2006 I needed a hex editor really badly. Back then only a few and really few usable ones were available. This page is here to spare others my search time. Your feedback is very welcome. This list gets updated every now and then. There are other nice lists and reviews of hex editors: on Stackoverflow on Ubuntuforums on LinuxLinks on Unixlab Blog on Wikipedia on F

  • バイナリエディタbvi入れてみた。 - ボクノス

    Vimのバイナリモードは激しく使いにくいので、viライクなバイナリエディタbvi入れてみた。 BVI - Binary VIsual editor fedoraのパッケージには無かったので、ソースコンパイルした。 基的な使い方 viライクです。 hjklで移動。 TAB移動が便利。 /,?で検索も出来る。 BVI: Quick Tutorial を見ると、かなり高機能らしい。熟読しとこう〜。 ヘルプの見かた :!でシェルが起動出来るので、manを呼ぶ。 :!man bvi大体生きていけると思う。 編集する インサートモードはデフォルトでOFFになってるので、 :set memmoveとする必要がある。 :set mmでも良い。iで編集開始!! 設定ファイル .bvircに set mm set cm=16と書いておけば、大体意図したとおりに動くと思う。 ソースをちょっと読んでみた 「wc

    バイナリエディタbvi入れてみた。 - ボクノス
  • データ型のアラインメントとは何か,なぜ必要なのか?

    以前このサイトとブログに,何度かアラインメントに関する記事を書きました (サイト内関連ページ参照). そのせいか「アラインメント」で検索して来てくれる人が多いので, 過去の記事に加筆修正してこのページを新たに作成しました. 加筆した点は次のとおりです. アラインメントとメモリアクセス回数の関係をわかりやすくするため, (ほんの少し) 図を導入しました. 「データがアラインされていないとメモリアクセス回数が増える」 と言葉で説明しているサイトは多いのですが, 図で示しているところはまだ見たことありません. アラインされていないアドレスにデータを書き込む場合, 読み出しの場合以上にメモリアクセス回数がかかる可能性があることを追記しました. 以前は「複合データ型 (配列,構造体,共用体) のアラインメント」はほとんど自明のことだと思っていたので軽く流していましたが, 意外なことにこれを解説してい

  • ライブラリの外に公開するシンボルを制限する - bkブログ

    ライブラリの外に公開するシンボルを制限する C言語にはファイル内 (コンパイル単位) からしかアクセスできない static 関数と、別のファイルからもアクセスできる非static 関数があります。しかし、ライブラリを作成する上では、この2つのスコープだけでは不十分なときがあります。 記事では GNUの開発環境において、ライブラリの外に公開するシンボルを制限する方法を紹介します。 次のような例を考えてみます。 % cat a.c // foo() は libfoo の主役の関数なので公開したい void foo() { bar(); } % cat b.c // bar() はライブラリの中だけで使われるべきなので当は公開 // したくない。しかし別のファイルに含まれる foo() から使われ // ているので、非staticにせざるをえない void bar() { } このようなコ

  • いやなブログ - 実行時のスタックの消費量を調べる

    実行時のスタックの消費量を調べる 先日の記事では checkstack.pl を用いて個々の関数がどのくらいスタックを消費するか調べる方法を紹介しました。今回は、実行時の実際のスタック消費量を調べてみます。 以下のコードでは次のような方法でスタックの消費量を調べます。x86_32 の Linux 用です。 最初に max_num_pages 分だけスタックを伸ばす 伸ばした分をすべて mprotect でアクセス不能にしてしまう SIGSEGV を拾って 1ページずつアクセス可能に設定する 最後に、何ページ使ったかを表示する このような処理を行う共有オブジェクトを作成して LD_PRELOAD してやれば、実行時のスタック消費量をページ単位で調べられるのではないか、という試みです。 #include <asm/page.h> #include <assert.h> #include <er

  • 1