タグ

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

  • Windows実行ファイルのバイナリ概要

    EXEファイルには具体的に、どのような情報が格納されているのでしょうか。通常、Visual C++やVisual Basic、Delphiなどのコンパイラが自動的に生成してくれるので、考えることはありませんが、今回はこの疑問に真っ向から勝負を挑んでいきます。 EXEは魔法の箱? 筆者は「ActiveBasic」というネイティブコンパイラ搭載型の統合開発環境を開発しています。コンパイラ開発イコール、EXEファイルの仕様をかなり細かい部分まで理解しなければならないという状況に置かれることを意味します。 Javaや.NETが騒がれる昨今、あえてEXEファイルというディープな内容に迫っていこうということで稿へ筆を入れ始めたわけですが、やはり、この手の話題はプログラマ魂がうずきます。このように感じる技術者の方は多いはず。しかしその反面、世の中にはアセンブラを書けないプログラマが数多く存在すると聞き

    Windows実行ファイルのバイナリ概要
  • Windows/デバッガ検出 - す部屋

    謎のメールたちAdmin デバッガを検出する方法 IsDebuggerPresent()を使う 以下を実行した結果、alが0以外ならデバッガあり mov eax,fs:[0x18] mov eax,[eax+0x30] mov al,[eax+0x02] まだ試していないが、pushfでTFを見てみる いずれも、簡単にそれを試すと検出している部分が簡単に特定されてしまうので、いくらか小細工が必要となる。 デバッガ検出コードの目くらまし VirtualAlloc→VirtualProtectで実行可能領域を動的に作り、その中に検出コードを作ってチェックする。コードを置くアドレスがランダムになっていると吉。 SEHを利用した特殊な処理 WindowsのSEHの仕組みをうまく使うと、あえて例外を発生させることで、デバッグレジスタを含むCPUレジスタの内容を変更できるようになる。 ハードウェア命令

  • 「アセンブリ言語の教科書」の原稿

    このテキストは、2005年7月にデータハウスから出版された「アセンブリ言語の教科書」の原稿をWEB用に修正したものです。WEB用に修正したといっても、誤植を直した程度であり、ほぼそのままの状態で公開しています。 現在でも「アセンブリ言語の教科書」は書店で売られており、一般に流通しているため、来ならば、出版社との契約上、このようにフリーでWEB上に公開することはできません。しかし、「アセンブリ言語の教科書」は、発売後すでに一年を過ぎようとしているにも関わらず、現在でも安定した売り上げを伸ばしており、当初の予想を超えて多くの方々に読んでいただけました。 よって、出版社に「書の値段が高くて、読みたくても買えない学生の方々や、まだ書の存在を知らない人たちのために、原稿の一部をWEB上にも公開できないだろうか」と、相談を持ちかけたところ、書に関わった編集者からも「原稿のすべては無理だが一部分

  • インラインアセンブラ - 周回遅れのブルース

    先日のわんくま勉強会でアセンブラのセッションがありましたが、たいへん興味深く見させてもらいました。 アセンブラは触り程度にしか判らないのですが、久々にアセンブラの話しを聞いて思い出したのが、 Delphi-ML の以下のスレッド。わたしのレスもしっかり残ってますね(汗 【Delphi-ML:49205】文字列の置換速度について 10年ほど前のスレッドですが、このスレッドで始めてインラインアセンブラコードを見た時の驚きは忘れられません。 今も ML にいるか判りませんが、このコードを書いた pcode 氏には尊敬の念を抱いたものです。以下、pcode 氏が書いたコードの改造版です。 procedure CharReplace( var S: string; const Old, New: Char ); var ConvTbl : array[char] of char; var ch :

    インラインアセンブラ - 周回遅れのブルース
  • 1