タグ

asmに関するtrashsuiteのブックマーク (14)

  • 64ビットCPU(AMD64+EM64T)でアセンブラ

    プログラミングメモ 以下の記述はすべて、当方が学習する際の備忘録として書いているものです。 記述には間違いがあるものとお考えください。 内容に対する保証は行いませんし、内容についていかなる責任も負いませんので、 その旨をご了承いただいた上で、お読みください。 IEで表示させた時に画面レイアウトが崩れ、横方向のスクロールバーが出る場合があります。 こうなった時はリロード(更新)してください。

  • off-by-one error でreturn addressが上書きされるまで - memologue

    Phrack Magazine (http://phrack.org/phrack/55/P55-08) の off-by-one exploit を読みました。要約しておきます。 void func(const char* sm) { char buffer[256]; for(int i=0; i<=256; ++i) { // 255が正解 buffer[i] = sm[i]; } } int main(int argc, char** argv) { func(argv[1]); return 0; } このような、1バイトだけオーバーフローするbugのあるコードを書いてしまい、更に引数 sm に自由なバイト列を設定できる場合、それがどのようにして arbitrary code execution に繋がるかが書いてあります。 以下、簡単な解説です。 buffer[256] には

    off-by-one error でreturn addressが上書きされるまで - memologue
    trashsuite
    trashsuite 2010/04/13
    『gccはデフォルトで、スタックの末尾を16バイト境界にアラインさせる』
  • x86カルトクイズ (mitsunari@cybozu labs)

    x86の解説をいざ始めてみると,どうもblogという媒体はやりにくいので別ページで進めることにしました.すいません.まとめ直すまでしばらくお待ちください.あと基的なことばかり続いたので,ちょっとマニアックネタに走ってみます. というわけで突然ですがクイズです.そこそこ高い難易度に設定したつもりですが,いかがでしょう.初心者の方は全然分からなくても大丈夫です.あえて曖昧な記述をしている部分もあります.後半の答えは凄いものがあるといいなあ.あと,難問奇問募集中. 以下は断りがない限り, 環境は32bit OS上のPentium4以降のx86 CPU 関数の呼び出し規約は__cdecl 配列は16byte alignmentされていて複数の配列はオーバーラップしていない ループは4の倍数と仮定してよい ものとします.CPUに依存する場合は明記してください. Q1(5点) 符号なしeaxの値を4

  • AT&T Assembly Syntax | Sig9

    This article is a ‘quick-n-dirty’ introduction to the AT&T assembly language syntax, as implemented in the GNU Assembler as(1). For the first timer the AT&T syntax may seem a bit confusing, but if you have any kind of assembly language programming background, it’s easy to catch up once you have a few rules in mind. I assume you have some familiarity to what is commonly referred to as the INTEL-syn

  • Using as

  • http://docs.sun.com/app/docs/doc/817-5477?l=Ja

    trashsuite
    trashsuite 2009/08/09
    AT&T 形式アセンブリの解説ドキュメント / x86 系
  • CandASM

    C とアセンブラ Cを知るためにはアセンブラ(機械語)の知識があることが望ましいと言われている。しかし現在ではアセンブラの解説書はほとんど見かけない。もっともアセンブラを1から学ぶのはよほどの動機付けがないと難しいであろう。昔はメモリが少なくCPUも遅かったので機械語は必須であった。 この講座ではC コンパイラが出すコードを見てアセンブラの勉強をすることにする。 ただしここで扱う CPU は Intel のいわゆる x86 系のものである。 いくつかのアセンブラ出力をみると最適化なしのものはとんでもないコードが多くて勉強には有害と思えるほどである。最適化した方を主に見てほしい。 アセンブラ入門(未完成) 文字列表示  C のソース  アセンブラのソース  解説 足し算  Cのソース  アセンブラのソース  解説  最適化(-O2) 問題1 条件文 C のソース  アセンブラのソース  解説

    trashsuite
    trashsuite 2009/08/09
    gcc の吐くアセンブリコードを読む
  • Gnu Assembler

    通常Intel系のアセンブラは、Intel Syntaxと呼ばれる文法を使用していますが、GNU AssemblerはAT&T Syntaxを使用しています。そして、AT&T System V/386アセンブラの文法は、インテル アセンブラの文法と非常に異なっています。BSD kernelのアセンブラ部分はAT&T Syntaxが使われているので、これらの違いについて説明しておきます。 なお現在の、GNU AssemblerはIntel Syntaxもサポートしており、Intel ModeとAT&T Mode双方の変更が可能となります。 '.intel_syntax'ディレクティブを指定する事によりIntel Mode '.att_syntax'ディレクティブを指定する事によりAT&T Mode

  • x86 Assembly/GNU assembly syntax - Wikibooks, open books for an open world

    General Information[edit | edit source] Examples in this article are created using the AT&T assembly syntax used in GNU AS. The main advantage of using this syntax is its compatibility with the GCC inline assembly syntax. However, this is not the only syntax that is used to represent x86 operations. For example, NASM uses a different syntax to represent assembly mnemonics, operands and addressing

  • fnami: Assembler

    アセンブラでの高速化 はじめに 共通/80286以前 80386以降 80486以降 Pentium PentiumPro以降 Pentium4 高速化の例 主な命令一覧 参考文献 はじめに アセンブリ言語でプログラムを書くということは、プログラムに最高の自由度と性能を与えるということである。アセンブリ言語ではコンピュータの持つ機能をすべて使えるので、高級言語では不可能だった処理が可能になるし、高級言語からは見えないCPUの機能を利用してプログラムを高速にしたり、プログラムを小さくしたりすることができる。特にインテルの8086とその後継プロセッサ(86系プロセッサ)の場合、アセンブリ言語で書き直すだけでプログラムが大幅に小さく、そして速くなることは多い。しかし、ただ単純にアセンブリ言語で書いただけでは、コンピュータはその来の力を発揮しているとは言い難い。コンピュータには、もっと速く実行す

  • Assembly Programming Linux

    はじめに. アセンブラを使って Linux のプログラミングで遊んでみます.アセンブラには NASM を使用して,カーネルを直接利用することにします. いまさらアセンブラでプログラムを作成することは,時代錯誤と感じる人も 多いかもしれません.「アセンブラでプログラミングなんて職人芸でしょう」 と思うかもしれません. 20年前では趣味のプログラミングは BASIC か アセンブラしか選択肢がありません でしたが,今ではPerl, Ruby からアセンブラまでの間に非常に多くの言語があって, アセンブラは普通では不要な最下層の知識となっていると思います. 10BaseT のツイストペアケーブルのインピーダンスを気にする人はほとんどいない ようなものでしょうか? アセンブリ言語の学習で最も困難なのは,最近では書籍が見つからないこと かもしれません. …と書いていましたが、また増えてきているようで

    trashsuite
    trashsuite 2009/07/27
    Linux + nasm
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • 目指せプログラマー!

    目指せプログラマー!にようこそ。 当サイトはこちらに引っ越しました。 お手数をおかけしますが、上記サイトへご移動くださいませ。

  • アルゴリズム入門

    アルゴリズム入門はアルゴリズムを独学したい人のページです。アルゴリズムってなに?という人からフローチャートの書き方、ソートなどの一般的なアルゴリズムを解説しています。練習問題なども収録しています。

  • 1