トップページ
ひらく | たたむ | ページトップ
↓マウスで反転選択した文字を検索
VisualStudio
   
ページ内検索 ページ外検索
検索したい文字を入力して
ENTERを押すと移動します。
\n
[ トップページ ]
[ ____CommandPrompt ] [ ____JScript ] [ ____MySQL ] [ ____Cygwin ] [ ____Java ] [ ____Emacs ] [ ____Make ] [ ____Perl ] [ ____Python ] [ ____OpenGL ] [ ____C# ] [ ____StyleSheet ] [ ____C++ ] [ ____Winsock ] [ ____Thread ] [ ____VisualStudio ] [ ____C ] [ ____Win32API ] [ ____Lua ] [ ____PhotoShop ]
ヘッダ検索
___

■ CRT


    インポート関数とは外部 DLL から公開されている関数のこと。
    
    C 標準ライブラリでも DLL からロードすることを選択できる。
    コンパイラは実際にジャンプする関数のアドレスではなく
    間接アドレスにジャンプするコードを生成する。



    /MD, /MT を変更すると混合モードでのアセンブラ表示で call 命令の引数が変わる。
    00401018  call        dword ptr [__imp__printf (406220h)]   

    00401018  call        printf (401029h) 
MessageBox などの WindowsAPI は /MT, /MD の設定によらず常に間接参照を使っての DLL内の関数呼び出しであることがわかる。
    00401034  call        dword ptr [__imp__MessageBoxA@16 (4253DCh)] 
dumpbin /imports を使うと Import Adress Table のアドレスがわかる。
    MSVCR90.dll
                4061FC Import Address Table
                4060B8 Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

                  10B _adjust_fdiv
                   CB __p__commode
                   CF __p__fmode
                  16A _encode_pointer
                   E0 __set_app_type
                   43 ?terminate@@YAXXZ
                   E3 __setusermatherr
                   96 __dllonexit
                  276 _lock
                  31C _onexit
                  160 _decode_pointer
                  173 _except_handler4_common
                  20B _invoke_watson
                  13F _controlfp_s
                  14B _crt_debugger_hook
                  13C _configthreadlocale
                  205 _initterm_e
                  204 _initterm
                   A0 __initenv
                  4CC exit
                   66 _XcptFilter
                  17C _exit
                  12C _cexit
                   9F __getmainargs
                  115 _amsg_exit
                  52E printf
___

■ VirtualQuery

SYNTAX DWORD VirtualQuery( LPCVOID lpAddress, // 領域のアドレス PMEMORY_BASIC_INFORMATION lpBuffer, // 情報バッファのアドレス DWORD dwLength // バッファサイズ ); 呼び出し側のプロセスの仮想アドレス空間にある範囲のページの情報を取得する。 指定されたアドレスから始まる連続ページのうち 次の属性で共通しているページに関する情報が取得できる。 ほかのプロセスのアドレス空間にある範囲のページに関する情報を取得するには VirtualQueryEx() を使う。
___

■ VirtualProtect

SYNTAX
___

■ VirtualProtect

SYNTAX BOOL VirtualProtect( LPVOID lpAddress, // コミット済みページ領域のアドレス DWORD dwSize, // 領域のサイズ DWORD flNewProtect, // 希望のアクセス保護 PDWORD lpflOldProtect // 従来のアクセス保護を取得する変数のアドレス ); 呼び出し側のプロセスの仮想アドレス空間内のコミット済みページ領域に対する アクセス保護をの状態を変更する。 コミット済みページに限ってアクセス保護値を設定できる。 指定された領域内のページがコミット済みではない場合、この関数は失敗し どのページのアクセス保護も変更しない。
___

■ MakePtr


















NINJAIDX 15