[Debugging Toolbox]Retrieving information from ASP
[DT]Retrieving information from ASP
글 : Roberto Alexis Farah
번역 : 이태화
오늘은 kernel 에 대한 script 가 아니고 ASP 에 script 입니다.
--------------------------------------------------------------------------------
이런 상황을 격은적이 있을 것이다. : IIS process 의 ASP 정보를 얻고자 할 때가 있을 것입니다. 만약 그렇다면 DebugDiag tool 을 사용해서 dump file 을 생성해서 분석할 수 있을 것입니다. 가끔 DebugDiag 를 사용하기도 하지만 debug 를 할때 좀더 많은 정보를 필요로 할때 도 있을 것입니다. 아니면 Windbg 를 사용해서 dump file 을 분석하고 ASP 정보를 얻고자 할때가 있을 것입다.
IISINFO.DLL extension 을 DebugDiag 에서 복사해서 Windbg 의 WinExt 폴더에 복사해서 이런 일들을 할 수 있을 것이다. 아주 쉽다. 그러나 extension 의 사용법을 익혀야 할 것입니다.
이 script 는 IISINFO.DLL extension 의 wrapper 이고 extension command 를 공부하는시간을 줄여줍니다.
이것은 IIS process 의 ASP 정보를 보여주는데 유용합니다.
Some screenshots:
참고
~* e !iisinfo.aspstack -x -v 는 ~* e 는 ~e (Thread-Specific Command) 명령으로 모든 thread 에iis 관련 명령어를 실행 시키라는 것입니다.
!iisinfo 로 되어 있는 명령들은 IISINFO.DLL Extension 의 명령입니다.
0:001> !iisinfo.help
ISInfo.dll - DebugDiag/WinDBG hybrid extension for IIS and ASP information.
-----------------------------------------------------------------------------------------------
Usage:
!clientconns - Active client connections
!asprequests - ASP request information about all executing ASP requests
!asprequest [<CHitObj>] - ASP request information executing on current thread or specified optional CHitObj address
!templates - All cached templates
!aspstack - Script call stack for the ASP page running on the current thread
!asppages - ASP page running on all threads
!asptemplate <CTemplate> - Detailed information and include heirarchy for the specified template
!templatecode <CTemplate> - Compiled template code or expanded code for the specified template
!includecode <FileMapKey> - Compiled template code or expanded code for the specified include file
!aspapps - Loaded ASP applications
!aspapp <CAppln> - Detailed information for the specified ASP application
!appvars <CAppln> - Variables stored in the specified ASP Application collection
!sessions <CAppln> - Active sessions in the specified ASP application
!session <CSession> - Detailed information about the specified ASP session
!sessvars <CSession> - Variables stored in the specified ASP Session collection
!help - Shows this help
Options:
[-v|-x] - Verbose mode. Displays extra information for most commands
-----------------------------------------------------------------------------------------------
Feedback alias - chdiagv2
Support alias - iisdbtk
Developed by - Kamal R. Balakrishnan (kamalbal)
Source code for GET_ASP_INFORMATION.TXT:
$$
$$ ==============================================================================================
$$ This script is a wrapper for the extension IISINFO.DLL that is part of DebugDiag tool.
$$
$$ Compatibility: Win32.
$$
$$ Usage: $$>< to run the script.
$$
$$ Requirements: Public symbols.
$$
$$ If necessary change the filename below to include your path and filename.
$$ By default it uses the WinDbg path and the default file name is GET_ASP_INFORMATION.TXT
$$
$$ Roberto Alexis Farah
$$ Blog: https://blogs.msdn.com/debuggingtoolbox/
$$
$$ All my scripts are provided "AS IS" with no warranties, and confer no rights.
$$ ==============================================================================================
$$
ad /q *
.block
{
as ScriptName MYSCRIPTS\\GET_ASP_INFORMATION.TXT
}
.printf /D "\n<${ScriptName}\">ASP Applications\n\n"
.printf /D "\n<${ScriptName}\">Client Connections\n\n"
.printf /D "\n<${ScriptName}\">ASP Pages\n\n"
.printf /D "\n<${ScriptName}\">ASP Stack for current thread\n\n"
.printf /D "\n<${ScriptName}\">ASP Stack for all threads\n\n"
.printf /D "\n<${ScriptName}\">ASP Requests\n\n"
.printf /D "\n<${ScriptName}\">ASP Templates\n\n"
.printf /D "\nFor ASP Template Source Code click above on ASP Templates, get the Template pointer then use !iisinfo.templatecode \n\n"
.printf /D "\nFor ASP Template Hierarchy click above on ASP Templates, get the Template pointer then use !iisinfo.asptemplate \n\n"
.printf /D "\nFor detailed information about ASP session click on ASP Pages above then use the CSession pointer as argument for\n"
.printf /D "\n !iisinfo.session and !iisinfo.sessvars \n\n"
$$ =============================================================================