こんにちは、JS です。 今回は、Visual Studio を使ったネットワーク接続でのカーネルデバッグについて、設定の手順を紹介したいと思います。 最近、シリアルポートがない PC が多いため、手軽に利用できるネットワークケーブルでのカーネルデバッグの接続方法に関するお問い合わせが増えております。WinDbg を使った方法は、すでに K 里さんが「ネットワークケーブルを用いたカーネルデバッグ接続の設定手順」で書かれているので、今回は Visual Studio で接続する方法をご案内したいと思います。MSDN ドキュメントにも、「Setting Up Kernel-Mode Debugging over a Network Cable in Visual Studio」の記事が用意されているので、併せてご確認いただければ幸いです。 主な手順は以下の 3 つになります。 1.環境の用意
だいたいの関数は関数プロローグ、関数コード、関数エピローグの3つの部分に分けて考えることが出来ます。コンパイルされた関数のアセンブリコード(x86)を見ると、ほとんどは次のような形になっていると思います。 mov edi,edi push ebp mov ebp,esp これが関数プロローグにあたる部分で、要は関数コードを実行するための準備と呼び出し元へ戻るための情報の退避をしているわけですが、一番最初に出てくるmov edi,ediという命令は、実行しても何ら意味のない命令です。この意味のないmov命令は、プログラムを停止させることなく実行中のコードにパッチを当てる、ホットパッチと呼ばれる機能のためにあります。ホットパッチはmov命令をjmp命令に置き換えて必要な箇所に処理を飛ばすことで実現できます。ただしmov edi,ediは2バイト命令ですので、jmp命令が指せるアドレスは127バ
■ はじめに ひとつのプログラムを完成させるまでには、多くの場合「デバッグ」という作業が必要です。 まったくバグのないプログラムを一気に書き上げるのは難しいことですから、 プログラミングの際には実行時のエラーを見つけやすくするための工夫が必要ですし、 実際にエラーが発生した場合にはできるだけ手際よく対処したいものです。 デバッグを行う上での最初の目標である「原因の特定」を効率的に行うための ツールや流儀はプラットフォームや使用言語により一様ではありませんが、 ここではネイティブな Windows プログラムをデバッグする上で役に立つ小技をいくつかとり上げてみたいと思います。 今回は、自作のプログラムの実行中にプロセスが異常終了する状況において、 問題箇所を手早く探すための方法のひとつをご紹介します。 記事では Microsoft Visual C++ を開発環境と想定しています。 どうやら
日本マイクロソフト株式会社の DDK/WDK サポートチームの blog です。 Japan WDK Support Blog 終了のお知らせ こんにちは、Windows Driver Kit サポートチームです。 2019 年1 月をもちまして、弊社システム刷新の都合により、本Blog を終了いたします。... Date: 12/26/2018 Authenticode 署名のドライバインストールのトラブルシューティングの一例 Authenticode 署名のドライバインストールのトラブルシューティングの一例をご紹介します。... Date: 09/27/2018 プリンタードライバーの GPD ファイル記述に関する注意事項 今回は Universal プリンタードライバーにて記述を行う GPD ファイルの記述に関する注意事項を簡単にご紹介させていただきます。 GPD ファイルはテキスト
更新履歴 DNS拡張EDNS0の解析 Linuxカーネルをハッキングしてみよう Windowsシステムプログラミング Part 3 64ビット環境でのリバースエンジニアリング Windowsシステムプログラミング Part2 Windowsシステムプログラミング Part1 Contents インフォメーション 「TCP/IPの教科書」サポートページ 「アセンブリ言語の教科書」サポートページ 「ハッカー・プログラミング大全 攻撃編」サポートページ ブログ(はてな) BBS メール このサイトについて テキスト 暗号 詳解 RSA暗号化アルゴリズム 詳解 DES暗号化アルゴリズム crypt() アルゴリズム解析 MD5 メッセージダイジェストアルゴリズム crypt() アルゴリズム解析 (MD5バージョン) TCP/IP IP TCP UDP Header Format(IPv4) Ch
はじめに このテキストは、Windowsシステムに関するプログラミングを中心に記述している。カーネルランドのデバッグ、SYSENTER、SYSEXITなどを中心に解説している。 SYSENTER 「Windowsシステムプログラミング Part2」にて、「SYSENTERはユーザーランドとカーネルランドを繋ぐ命令であり、これをフックできる」ことを述べた。そして、SYSENTER実行時に以下の処理が走ることを書いた。 // sysenter実行時の処理内容 1. CSレジスタにSYSENTER_CS_MSR(MSR-174H)の値をロード 2. EIPレジスタにSYSENTER_EIP_MSR(MSR-176H)の値をロード 3. SSレジスタにSYSENTER_CS_MSRの値に8を加算した値をロード 4. ESPレジスタにSYSENTER_ESP_MSR(MSR-175H)の値をロード
はじめに このテキストは、Windowsシステムに関するプログラミングを中心に記述している。WinDbgの導入、カーネルランドのデバッグ、SYSENTERの解析などを中心に解説している。 WinDbgの導入 カーネルランドで動作するプログラムをデバッグするには、カーネルモードデバッガが必要となる。Windows環境でのカーネルモードデバッガは、SoftICEとWinDbgが有名だが、SoftICEは販売停止となったため、このテキストでは、WinDbgを使うことにする。まず、実行用と解析用で、マシンを2台と、それらを繋ぐシリアルクロスケーブルを用意する。 マシンを2台用意する(実行用と解析用) シリアルクロスケーブルで2台のマシンを繋ぐ(COM1使用) 実行用マシンに適当なOSをインストール(自分はWinXPSP2使用) 実行用マシンにインストールされているOSの「C:\boot.ini」を
はじめに このテキストは、Windowsシステムに関するプログラミングを中心に記述している。他プロセスへのコード注入、APIフック、サービス制御マネージャ、カーネルレベルプログラミング、任意のコードの隠蔽などを中心に解説している。 任意のコードを別のプロセスへ注入する方法 http://www.codeproject.com/threads/winspy.asp 上記のサイトには「任意のコードを別のプロセスへ注入する方法」として、3つ の手法が紹介されている。 SetWindowsHookExを用いてグローバルフックし他プロセスへDLLをマッピング CreateRemoteThreadとLoadLibraryを使い他プロセスへDLLをマッピング CreateRemoteThreadとWriteProcessMemoryを使い他プロセスへコードを注入 1と2に関しては、任意のコードをDLLと
はじめに 私は以前、任意のプログラムを他プロセスへ注入する「DLLインジェクション」のテクニックを紹介しました。このテクニックについての詳細は「常駐プログラム隠蔽テクニック」を参照してください。 さて、この「DLLインジェクション」は、任意のプログラムを現在実行中の他プロセスへ注入し、他プロセスの一部としてこちら側が用意したプログラムを実行させるテクニックでした。これはとても面白く、任意のプロセスの情報を取得するための手法としてはSetWindowsHookExと同じくらい強力であり、かつ、実行したいプロセスの隠蔽という目的においても利用できるものでした。しかし、これはあくまでも実行中のプロセスへ注入したわけであり、EXEファイル自体を書き換えたわけではありません。よって、例えば、そのプロセスが何かしらの理由で強制終了し、再度起動された場合、もう一度、任意のプログラムの注入処理をほどこさな
はじめに Windowsアプリケーションは、通常APIを利用することによって実現されています。たとえ.NETやMFCなどを利用して作成されたプログラムであったとしても、内部的にはすべてWindowsAPIが呼び出され処理されているというのは周知の事実です。プログラムがWindows上で動作している限り、何かしらのカタチでAPIが使われていることは確かなのです。では、今回はそのAPIをフックすることを考えてみます。「Wizard Bible vol.15」の「リバースエンジニアリング」にて、私はAPIフックについて少しだけ触れましたが、今回はそのAPIフックについてのさらに深い話題となります。あらかじめ必要な知識は、Windowsプログラミングに多少の知識があることと、特にDLL関連に詳しいことです。あと「Wizard Bible vol.10」の「常駐プログラム隠蔽テクニック」も読んでおい
How to inject code into another processes address space, and then execute it in the context of this process. Download entire package - 157.31 KB Download WinSpy - 20 KB (demo application) Contents Introduction Windows Hooks The CreateRemoteThread & LoadLibrary Technique Interprocess Communications The CreateRemoteThread & WriteProcessMemory Technique How to Subclass a Remote Control With this Tech
Matt Pietrek is the author of Windows 95 System Programming Secrets (IDG Books, 1995). He works at NuMega Technologies Inc., and can be reached at mpietrek@tiac.com. Of all the facilities provided by Win32® operating systems, perhaps the most widely used but underdocumented is structured exception handling (SEH). When you think of Win32 structured exception handling, you probably think of terms l
Internet Explorer Team Blog We've moved! Find us at the new Microsoft Edge Dev Blog As we announced last week, with the reveal of Microsoft Edge we are archiving the IEBlog. Future... Date: 05/08/2015 Microsoft Edge is the browser for Windows 10 This morning, Joe Belfiore took to the stage at Build 2015 to share more about the next chapter in... Date: 04/29/2015 Announcing improvements to Enterpri
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く