タグ

アセンブラに関するfa11enprinceのブックマーク (4)

  • 低レイヤを知りたい人のための Cコンパイラ作成入門

    はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム このには一冊のに盛り込むにはやや欲張りな内容を詰め込みました。書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 このでは、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう

    fa11enprince
    fa11enprince 2018/11/02
    面白そう。これは嬉しい。
  • CTF for Beginners のバイナリ問題を見てみた - security etc...

    SECCON2014 オンライン予選もひと段落した。 前回のエントリ書いたときにreversing力が欲しいとか思ったので、手始めにCTF for Beginnersのバイナリを見てみた。 といってもそこまでちゃんと見たわけではないけど…。 問題名とかは忘れてしまったので、バイナリファイル5つをファイル名順に見ていく。 第1回に参加したため、第2回とは問題ファイルが違っているかもしれない。 なお、IDAはデモ版でなくてFree版を使っている。 なぜデモ版を使わないの? と言われると特に理由はないです。しいて言えばデモ版のメリット/デメリットを評価できてないからかな。 今度調べてみよう。てか有償版ほしい。 ctf_bin1 ctf_bin1 ファイルが与えられるため、fileコマンドで確認する。 [root@kali] # file ctf_bin1 ctf_bin1: Microsoft

    fa11enprince
    fa11enprince 2015/07/12
    おもしろそう!
  • プログラミングノート - x86

    movl 3(%esi,%ebx,2), %eax 整数演算 ロード/ストア mov eax, [4] mov eax, [ebx] mov eax, [ebx+4] mov eax, [ecx*2+4] mov eax, [ebx+ecx] mov eax, [ebx+ecx+4] mov eax, [ebx+ecx*2] mov eax, [ebx+ecx*2+4] mov eax, [rip+4] レジスタ (eax, ebx, ecx の部分) は汎用レジスタどれでも指定できる。 シフト (*2 の部分) は 2, 4, 8 のいずれか。 オフセット (+4 の部分) は符号付き 8 ビットまたは 32 ビット。 64 ビットでは rip 相対アドレッシングが可能。 ただし単純にオフセット (符号付き 32 ビット) を加算する形式のみ。 32 ビットでは eip 相対は不可。 c

  • X86アセンブラ/GASでの文法 - Wikibooks

    GAS(GNU Assembler)は、GNUプロジェクトによって開発されたアセンブラであり、GNU Binutilsの一部として配布されています。Binutilsには、アセンブラ(GAS)、リンカー(ld)、およびオブジェクトファイル操作ツール(nm、objdump、sizeなど)が含まれています。 GASは、x86、ARM、PowerPC、MIPSなど、多くのアーキテクチャをサポートしています。GASは、AT&T構文とIntel構文の両方をサポートしていますが、AT&T構文がデフォルトです。 一方、GCCは、GNU Compiler Collectionの略で、C、C ++、Objective-C、Fortran、Ada、およびその他の言語のコンパイラとして使用されます。GCCは、オブジェクトファイルを生成するためにGASを使用することができますが、GASに依存しない方法でもオブジェク

  • 1