タグ

programmingとbinaryに関するmitsuki_engawaのブックマーク (12)

  • Portable Binary Hacks

    Binary Hacks は GNU/Linux & x86 メインですが、 それ以外だとどんな感じだろうってことを書くところです。 私が個人的にいじってるものですが、 他の人にいじってもらっても問題ありません、 というか知らないことだらけなのでありがたいです。 1. イントロダクション Binary Hack入門 Binary Hack用語の基礎知識 file でファイルの種類をチェックする od でバイナリファイルをダンプする 2. オブジェクトファイルHack ELF 入門 静的ライブラリと共有ライブラリ ldd で共有ライブラリの依存関係をチェックする readelf で ELF ファイルの情報を表示する objdump でオブジェクトファイルをダンプする objdump でオブジェクトファイルを逆アセンブルする objcopy で実行ファイルにデータを埋め込む nm でオブジェク

  • Dr. Dobb's | Good stuff for serious developers: Programming Tools, Code, C++, Java, HTML5, Cloud, Mobile, Testing

  • Dynamic Test Runner 0.0.1 - 更新履歴兼雑記

    http://shinh.skr.jp/binary/dtr-0.0.1.tar.gz Binary 2.0 時代のテストツールを書きました。 suite.addTest(test1); suite.addTest(test2); suite.addTest(test2); suite.addTest(test4);こういうミス、よくやりますよね。 DTR によって煩雑なテスト登録作業から解放されます…なんか珍しく当に使いものになる気が。 ./dtr test/add.o test/zlib.o test/*.a -lzなどとすると .o ファイルやらなんやらの中身を見て dtr_test とかいう文字列が混じっている関数をかたっぱしから実行してまわります。 実装紹介 .o とか .a を普通に読み込んでメモリ上に書き出す .so は適当に dlopen しておく .o を libbfd

    Dynamic Test Runner 0.0.1 - 更新履歴兼雑記
    mitsuki_engawa
    mitsuki_engawa 2005/11/23
    .oレベルでテスト関数を実行してまわるユニットテストドライバ。夢がひろがりんぐ。
  • mydl - 兼雑記

    .o をロードするダイナミックローダを書いてみました。 http://shinh.skr.jp/koneta/mydl.tgz int add(int x, int y) { return x+y; }みたいなコードを gcc -c add.c とコンパイルしておき、 #include <stdio.h> #include "mydl.h" int main() { void* handle = mydlopen("add.o"); int (*fp) (int, int) = mydlsym(handle, "add"); char* p = (char*)fp; printf("add (%p):\n", fp); while (*p != (char)0xc3) { printf("%02x ", (*p++) & 0xff); } printf("c3\n"); printf("2

    mydl - 兼雑記
    mitsuki_engawa
    mitsuki_engawa 2005/11/22
    .oをダイナミックロード。もうなんでもありの世界に。
  • reflection.cc - 兼雑記

    http://shinh.skr.jp/koneta/reflection_cpp.tar.gz 以下のように、 Test クラス内の test ではじまっているメソッドをイテレートして呼び出せます。 #include "reflection.h" #include <iostream> #include <cstring> using namespace std; class Test { void test_func1(); void test_func2(); void ignore(); }; void Test::test_func1() { cout << "func1" << endl; } void Test::test_func2() { cout << "func2" << endl; } void Test::ignore() { cout << "error" <<

    reflection.cc - 兼雑記
    mitsuki_engawa
    mitsuki_engawa 2005/11/17
    メソッドを名前で列挙する。
  • GNU Software Service from SRA

    (C) 1999, 2000, 2001, 2002, 2003, 2006 SRA (Software Research Associates, Inc.) Wingnut チーム

    mitsuki_engawa
    mitsuki_engawa 2005/11/15
    gcc、binutils関連の文書
  • いやなブログ: 普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す

    普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す Linux などの多くの Unix 的なOS には ptrace というシステムコールがあります。 ptrace を使うと実行中のプロセスに対して、レジスタの書き換えやメモリ上のデータの書き換えといったさまざまな操作を行うことができます。 普通のやつらの下を行けの第6回として、今回は ptrace を使って実行中のプロセスにちょっかいを出す方法を取り上げたいと思います。 ptrace とは デバッガの理論と実装 に次のような記述があります。 Unix の ptrace() は物のデバッガ API (アプリケーションプログラムインターフェイス) の一例であり、商品に相応しい品質を持ったデバッガをサポートするために設計された、最初の専用 API の1つである。 ptrace はデバッガ用に作られた API のようで

    mitsuki_engawa
    mitsuki_engawa 2005/11/14
    WindowsのRead/WriteProcessMemory()他のデバッグAPIに相当するシステムコールかな。
  • 更新履歴兼雑記

    このへんの話もーちょい調べたら今度まとめてみたいなとか思うけど何がわかってないのか混乱してきたから、現状のまとめ。

    更新履歴兼雑記
    mitsuki_engawa
    mitsuki_engawa 2005/11/03
    各種OSでの実行バイナリ情報取得法のまとめ
  • 普通のやつらの下を行け: Cで動的コード生成・実行 - bkブログ

    普通のやつらの下を行け: Cで動的コード生成・実行 スクリプト言語には動的にコードを生成して実行する機能を持ったものが多くあります。 普通のやつらの下を行けの第3回として、今回は C による動的なコード生成と実行に取り組んでみたいと思います。 今回書いたコードの main() 関数は以下のようなものです。 int main(int argc, char **argv) { assert(argc == 2); define(int, add, (int x, int y), "{ return x + y; }"); define(int, mul, (int x, int y), "{ return x * y; }"); define(int, add_argv1, (int x), "{ return x + %d; }", atoi(argv[1])); printf("%d\n"

  • 普通のやつらの下を行け: assert_caller() - bkブログ

    普通のやつらの下を行け: assert_caller() 以前に、低レベルプログラミングを愛好する知人が「普通のやつらの下を行け」を口癖にしていました。当時は何を言っているのかと聞き流していましたが、自分も最近になってようやく低レベルプログラミングのおもしろさがわかってきました。今回は「普通のやつらの下を行け」企画の第一弾として assert_caller() なるものを作ってみたいと思います。 assert_caller() とは assert_caller() とは、特定の関数からの関数呼び出しだけを通すためのアサーションです。たとえば、次のように foo() の先頭で assert_caller(main) と書いた場合、 foo() は main() からしか呼び出せなくなります。他の関数から foo() を呼び出した場合はエラーメッセージとともに異常終了します。 void foo

    mitsuki_engawa
    mitsuki_engawa 2005/10/24
    低レベルな話。関数の長ささえ分かれば、大抵の環境で可能は可能なんだけどなあ。
  • Yahoo | Mail, Weather, Search, Politics, News, Finance, Sports & Videos

    Noah Lyles comes from behind to win thrilling 200M final — and gets shoved in the back Loni Anderson, popular 1980s actor and star of 'WKRP in Cincinnati,' dies at 79

    Yahoo | Mail, Weather, Search, Politics, News, Finance, Sports & Videos
  • 1