본문 바로가기

디버그37

[windbg]!wow64exts.sw 64bit 에서 wow64 프로세스 분석하기 wow64 콜스택 보기 !wow64exts.sw 2016. 2. 19.
windbg 파일 덤프 저장 windbg로 attach 된 상태에서 덤프 파일을 생성하는 방법이다. .dump (Create Dump File) The .dump command creates a user-mode or kernel-mode crash dump file .dump Options FileName .dump /? 예> 0:000> .dump /mfh myfile.dmp 자세한건 windbg 도움말을 참고 2016. 1. 11.
windbg로 핸들 릭을 찾아보자 windbg에서는 htrace로 얼마만큼 해당 프로세스가 핸들릭을 가지고 있는지 찾을 수 있다. 아래와 같이 핸들릭 발생 코드를 생성 후 for (DWORD i = 1; i !htrace -------------------------------------- Handle = 0x0000000000000134 - OPEN Thread ID = 0x00000000000028dc, Process ID = 0x00000000000026d0 0x00007fff9235b25a: ntdll!NtCreateFile+0x000000000000000a 0x00000000770eae5c: wow64!whNtCreateFile+0x00000000000000f8 0x00000000770ebb64: wow64!Wow64System.. 2014. 9. 30.
[windbg] CodeMachine extension dll kd> !stack -p -t . . . 48 fffffa600171b5c0 fffffa60009751e8 NDIS!ndisMIndicateNetBufferListsToOpen+ac (perf) Parameter[0] = fffffa8007877680 : rcx setup in parent frame by mov instruction @ fffffa60009751db from NvReg rdi which is saved by current frame Parameter[1] = fffffa8007877c00 : rdx saved in current frame into NvReg rsi which is saved by child frames Parameter[2] = 0000000000000000 : r8 .. 2013. 2. 22.
브레이크 포인트 실전 활용4 아래와 같은 코드가 있습니다. 만일 TrueProc2 함수에 브레이크 포인트를 설정하려고 할 경우 어떻게 하나요. 1: void foo() { 2: //... 3: if(Jurdge()) 4: { TrueProc1(); TrueProc2(); TrueProc3(); } 5: else 6: FalseProc(); 7: //... 8: } 브레이크 포인트 실전 활용3에서 봤던 조건 중단점 설정으로 Jurdge함수에 브레이크 포인트를 설정해 트리깅 시킨 후, Step Into(F11)을 이용하곤 합니다. 그런데 Step Into를 이용하면 원하지 않는 TrueProc3 함수의 정의부 까지 들어갔다가 나오는 불편함이 있습니다. 물론 TrueProc2 함수의 정의부로 가서 브레이크 포인트를 설정해 놓으면 되긴 합.. 2012. 2. 14.
[펌] Debugging Tips (2) - Access Violation 핸들링하기 map 파일과 cod 파일을 사용해 분석하는 방법 을 익혔다고 해도 정작 Exception이 발생한 주소를 모른다면 소용없다. 그래서... Memory Fault 등이 터졌을 때 이것을 로그에 기록한 후 죽도록 구현한다면 디버깅에 매우 도움이 될 것이다. Memory Fault 와 같은 Critical Exception을 핸들링하는 방법은 크게 두가지가 있다. 이런 방법들을 잘 이용하면 Memory Fault가 발생했을 때 죽지 않고 계속 실행하게 하는 것도 가능할 것이다. 1. SEH (Standard Exception Handling) : __try ~ __except 혹은 __try ~ __finally 구문 __try는 C++의 try ~ catch 구문과는 다르다. (SEH에 관한 자세한 내용은.. 2012. 2. 1.