Setup Kernel Debugger (kd) on WinXP (http://www.reaonline.net/forum/showthread.php?t=3259)
Trước khi nghiên cứu về Rootkit, chúng ta phải cần biết cách sử dụng và cài đặt các công cụ debugger. Bài viết này hướng dẫn cách cài đặt một debugger dùng để debugging 1 driver trên HĐH Windows. Bài viết theo phong cách hỏi và trả lời. Đây là những kinh nghiệm vấp phải khi cài đặt WinDbg mà các bạn nên rút kinh nghiệm.
Tổng hợp : Benina
(DDK) Setup Kernel Debugger (kd) on WinXP?
Theo hướng dẫn : "Typically, the KD tool will not be run on the computer being debugged. Two machines (the host computer and the target computer) are needed for kernel-mode debugging." Làm sao cài đặt sử dụng 1 máy thôi. Trong Win2000 thì có hướng dẫn, nhưng trong WinXP thì làm sao nhỉ. Có ai cài đặt thành công chỉ em với. Thanz trước. Benina |
Trong WinXP thì bác Be không cần, vì XP support live debugger. Anh tìm livekd đi, hay tìm WinDbg để debug. WinDbg mới nhất là 6.6.3.5. Anh vào menu File - Kernel Debug - vào Tab Local. |
Cám ơn TQN nhiều, làm được gòi. Vì BE down trong fpt của exetools cái DDK cho WinXP về vọc thử, tưởng giống Win2000. Ai dè.... |
Sao kỳ quá. Tôi xài SP2 WinXP, vào trang : http://www.microsoft.com/whdc/devtoo...symbolpkg.mspx download symbols SP2 về cài ,dù đã set biến môi trường là "_NT_SYMBOL_PATH"=c:\windows\symbols mà WinDbg ko nhận ra symbols: Ghi chú về cài đặt biến môi trường theo TQN: Tui có thể giúp cậu làm ngắn gọn như sau: 1. Khai báo biến môi trường sau trong My Computer - Properties - Advance - Environment Variables: _NT_SYMBOL_PATH = %SystemRoot%;%SystemRoot%\system32;SRV*%SystemRoot %\Symbols*http://msdl.microsoft.com/download/symbols 2. Tạo thư mục Symbols trong thư mục Windows của cậu. Vd Windows của cậu ở C thì cậu tạo thư mục C:\Windows\Symbols 3. Rồi, chạy được rồi, nhưng lần đầu tiên debug thì sẽ pause hơi lâu vì dbghelp và symsvr.dll của VS sẽ download các file .pdb hoặc .dbg của các dll được load bởi app đang debug về thư mục Symbols. Và nói trước là thư mục này càng về sau càng lớn, khoảng 3-500 MB đấy. Chúc làm được. icrosoft (R) Windows Kernel Debugger Version 3.0.0020.0 Copyright (c) Microsoft Corporation. All rights reserved.
Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE Loaded dbghelp extension DLL Loaded ext extension DLL Loaded exts extension DLL Loaded kext extension DLL Loaded kdexts extension DLL Symbol search path is: C:\WINDOWS\Symbols Executable search path is: *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntoskrnl.exe - Windows XP Kernel Version 2600 (Service Pack 2) UP Free x86 compatible Built by: 2600.xpsp1.020828-1920 Kernel base = 0x804d4000 PsLoadedModuleList = 0x8054be30 Debug session time: Sat Apr 15 22:26:25 2006 System Uptime: 0 days 0:46:09 | Chắc bác TQN help em tiếp quá. À, thấy TQN báo có WinDbg mới nhất là 6.6.3.5. Tìm mãi mới ra nơi download: http://www.microsoft.com/whdc/devtoo...nstallx86.mspx Help me, help me.
TB: Thấy có vài tut trên NET cho Newbiez như em: Driver Debugging with WinDbg and VMWare
http://silverstr.ufies.org/lotr0/windbg-vmware.html
Secure Coding Practices: Running with Least Privileges in Windows
http://www.codeproject.com/tips/runas.asp |
Thug4Lif3 | 04/16/06 02:48:50 | Oops, anh Be thử cách sau xem:
+ Chọn File -> Symbol File Path -> Browse rùi chọn thư mục Symbol + Chọn reload. + Khi vào livekd rồi, anh type "!sym noisy" + Sau khi nhập lệnh này xong thì ".reload /f"
Nếu nó vẫn error thì anh xem lại các thông báo nó nói sao hoặc post lên với.
Em nghĩ làm vậy chắc được thôi. Em dùng WinDBG 6.4.0007.0 + WinXP SP1 + Service Pack 1a x86 retail symbols, all languages. Lúc đầu nó có bị như anh, nhưng sau khi dùng Ctrl+S để browse symbols folder thì nó không bị nữa. |
Thanz Thug. Làm như Thug thì nó báo là: Microsoft (R) Windows Debugger Version 6.6.0003.5 Copyright (c) Microsoft Corporation. All rights reserved.
Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE Symbol search path is: D:\WINDOWS\Symbols Executable search path is: *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntoskrnl.exe - ************************************************** ***************************** WARNING: Local kernel debugging requires booting with /debug to work optimally. ************************************************** ***************************** Windows XP Kernel Version 2600 (Service Pack 2) UP Free x86 compatible Product: WinNt, suite: TerminalServer SingleUserTS Built by: 2600.xpsp1.020828-1920 Kernel base = 0x804d4000 PsLoadedModuleList = 0x8054be30 Debug session time: Sun Apr 16 12:28:38.165 2006 (GMT+7) System Uptime: 0 days 0:05:02.753 lkd> !sym noisy noisy mode - symbol prompts on lkd> .reload /f Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE DBGHELP: D:\WINDOWS\Symbols\ntoskrnl.pdb - file not found DBGHELP: D:\WINDOWS\Symbols\symbols\exe\ntoskrnl.pdb - file not found DBGHELP: D:\WINDOWS\Symbols\exe\ntoskrnl.pdb - mismatched pdb DBGHELP: ntoskrnl.pdb - file not found DBGHELP: Couldn't load mismatched pdb for ntoskrnl.exe *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntoskrnl.exe - DBGHELP: nt - export symbols Loading Kernel Symbols . DBGHELP: D:\WINDOWS\Symbols\halacpi.pdb - file not found DBGHELP: D:\WINDOWS\Symbols\symbols\dll\halacpi.pdb - file not found DBGHELP: D:\WINDOWS\Symbols\dll\halacpi.pdb - mismatched pdb DBGHELP: halacpi.pdb - file not found DBGHELP: Couldn't load mismatched pdb for halacpi.dll *** ERROR: Symbol file could not be found. Defaulted to export symbols for halacpi.dll - DBGHELP: hal - export symbols . DBGHELP: D:\WINDOWS\Symbols\kdcom.pdb - file not found DBGHELP: D:\WINDOWS\Symbols\symbols\dll\kdcom.pdb - file not found DBGHELP: kdcom - public symbols D:\WINDOWS\Symbols\dll\kdcom.pdb . DBGHELP: D:\WINDOWS\Symbols\bootvid.pdb - file not found DBGHELP: D:\WINDOWS\Symbols\symbols\dll\bootvid.pdb - file not found DBGHELP: BOOTVID - public symbols D:\WINDOWS\Symbols\dll\bootvid.pdb . DBGHELP: D:\WINDOWS\Symbols\acpi.pdb - file not found DBGHELP: D:\WINDOWS\Symbols\symbols\sys\acpi.pdb - file not found DBGHELP: D:\WINDOWS\Symbols\sys\acpi.pdb - mismatched pdb DBGHELP: acpi.pdb - file not found DBGHELP: Couldn't load mismatched pdb for ACPI.sys *** ERROR: Module load completed but symbols could not be loaded for ACPI.sys DBGHELP: ACPI - no symbols loaded . |
|
Ko biết tại sao tìm ra .pdb phù hợp mà ko load sysmbols lên được như đã thông báo như trên. Bí quá, bí quá. |
Để cài lại SP1 như Thug xem sao. |
Khoan, khoan, anh Be ơi. Đừng xóa và cài lại cái gì hết. Máy anh do có autoupdate nên các file symbol không còn match nữa. Anh có kết nối internet không, = bằng ADSL hay modem. Mặc định thì symbol server dll (symsrv.dll) sẽ connect website của MS để lấy symbol về khi symbol trên máy không đúng. Hoặc anh có thể làm thủ công là đánh lệnh symchk.exe /v [path của dll/exe/sys...] cần lấy symbol về. Anh tạo trong thư mục Windows của anh 1 thư mục symbols, rồi tạo các thư mục con có tên là phần mở rộng của binary file, như dll, exe, drv, sys. Sau đó anh thay đổi biến môi trường _NT_SYMBOL_PATH của anh như sau: _NT_SYMBOL_PATH=%SystemRoot%;%SystemRoot%\system32 ;SRV*%SystemRoot%\Symbols*http://msdl.microsoft.com/download/symbols Sau đó anh kết nối Internet, cứ cái nào báo mismatch hay not found symbol thì cứ symchk /v cho em. Sau đó, copy chúng vào các thư mục tương ứng trong thư mục Windows\symbols anh vừa tạo, tức: ntoskrnl.exe vào thư mục exe, ntdll.dll vào thư mục dll... Chúc anh làm được |
WOW, thanz TQN. Thấy tip này TQN đã post bên exetools. Tưởng hết sử dụng được gòi chứ (post năm 2005), ai dè cũng current. Đang download các file .pdb. hí hí. http://exetools.com/forum/showthread...ghlight=WinDbg A tip to get Microsoft Debug Symbol Hi all ! I saw many question about how to get debug symbol files from Microsoft Symbol Server at Woodmann forum, and have many answers, but seem too complex to follow. In the past, I have use Symbol Retriever tool of DriverStudio, but it alway failed, so I should find another way. Sometime, I use WinDbg to debug, and found it can download the request debug symbol files from Microsoft Symbol Server. After reading WinDbg document and using depends tool, I have collected a small package, can run standlone without need to install whole WinDbg free package (> 10 MB). I attached it here. The steps: 1. You only need to extract it to a folder, better than if its folder name is placed in the PATH enviroment. 2. You create two folder, C:\Symbols and C:\WinNT\Symbols (or C:\Windows\Symbols on your XP machine). In C:\Winxx\Symbols, you create some subdirectory, name exe, dll, sys, cpl, ... 3. Create a enviroment variable, name: "_NT_SYMBOL_PATH", with value:"%SYSTEMROOT%;%SYSTEMROOT%\system32;SRV*C:\S ymbols*http://msdl.microsoft.com/download/symbols" 4. At here, you can begin to get debug symbol files by issue command: symchk.exe /v [dllpath/exepath...]. Ex: symchk /v c:\winnt\system32\ntoskrnl.exe or symchk /v c:\winnt\system32\ntdll.dll or symchk /v c:\winnt\system32\win32k.sys If your debug symbol file on your machine is not mach with exe/dll file, or did not exist, the symbol file will be downloaded from Microsoft Symbol server and placed in C:\Symbols directory, at [exe/dllname.pdb/dbg]/[signature]/. According to debug information in exe/dll file, the pdb file or dbg file or two files will be downloaded. And you can move .pdb/.dbg file to subdirectory %systemroot%\symbols\... Ex: ntoskrnl.pdb/.dbg to exe subdir ntdll.pdb/.dbg to dll subdir win32k.pdb/.dbg to sys subdir I use this way on my Win2000 server, use ADSL at work and WinXP Pro, use modem at home. All run well. Everytime I need a debug symbol file, I only need type: symchk /v .... Hope you will like and enjoy this method. Wait for your idea! Regards |
|
dbghelp.dll, symsrv.dll, symchk.exe ... có sẵn trong bộ Debugging Tools, nếu anh đã download rồi thì không cần các file .rar của em nữa, cũ rồi (6.2.x). Anh nhớ đặt path của Debuggin Tool đầu tiên, rồi download thêm livekd về dùng. |
Thanz TQN và Thug giúp đỡ. Vì tui dùng WinXP , máy báo là SP2 (chắc SP2 beta), nhưng sysmbol SP2 ko sử dụng được. Tui down sysmbols SP1 về thì all OK. Vậy là máy tui thực chất là SP1. Nếu ai bị sự cố như tôi thì chú ý nhé. Cài được gòi, khóai quá. hêhê mất hết 3 ngày ko uổng công. Tưởng tiêu gòi. Một lần nữa thanz TQN và Thug. |
trickyboy | 05/19/06 09:46:09 | Cho em hỏi cái Driver Studio 3.2 (SoftIce) , nó có cho thư mục để down symbol về, em tạo tên thư mục như hướng dẫn trên CrackLab nhưng ko thể connect down các Symbol đó về được. Trình down của SoftIce có bị lỗi gì ko vậy mấy anh ? |
nếu lão có symbols .pdb rồi thì dùng cái nmstran của softice để convert sang .nms cho nhanh, đỡ phải tải rắc rối . ok |
trickyboy | 07/16/06 10:33:59 | Originally Posted by Lord nếu lão có symbols .pdb rồi thì dùng cái nmstran của softice để convert sang .nms cho nhanh, đỡ phải tải rắc rối . ok | Àh, để em thử coi sao. Cám ơn anh Lord nhé. |
à , chính xác đường dẫn của nó là : Program Files\Compuware\DriverStudio\DriverWorks\Bin\nmsym .exe
đánh lệnh vd :
nmsym d:\WINDOWS\system32\hal.dll /OUTPUT:hal.nms
Good luck. |
Ver mới: Windbg version 6.8.4.0 Download: http://www.microsoft.com/whdc/devtoo...nstallx86.mspx
Symbols: http://www.microsoft.com/whdc/devtoo...symbolpkg.mspx
Nếu ai chưa biết cài đặt biến môi trường thì đọc TQN posted: Tui có thể giúp cậu làm ngắn gọn như sau: 1. Khai báo biến môi trường sau trong My Computer - Properties - Advance - Environment Variables: _NT_SYMBOL_PATH = %SystemRoot%;%SystemRoot%\system32;SRV*%SystemRoot %\Symbols*http://msdl.microsoft.com/download/symbols 2. Tạo thư mục Symbols trong thư mục Windows của cậu. Vd Windows của cậu ở C thì cậu tạo thư mục C:\Windows\Symbols 3. Rồi, chạy được rồi, nhưng lần đầu tiên debug thì sẽ pause hơi lâu vì dbghelp và symsvr.dll của VS sẽ download các file .pdb hoặc .dbg của các dll được load bởi app đang debug về thư mục Symbols. Và nói trước là thư mục này càng về sau càng lớn, khoảng 3-500 MB đấy. Chúc làm được. |
Download LiveKD v3.0
_http://www.microsoft.com/technet/sysinternals/Sys temInformation/LiveKd.mspx |