Trao đổi với tôi

http://www.buidao.com

6/11/09

[Rootkit] Cài đặt WinDbg

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

benina

04/14/06 22:22:20


(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

TQN

04/14/06 22:42:49


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.

benina

04/14/06 23:18:59


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è....

benina

04/15/06 23:30:01


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.

Quote:


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.

benina

04/16/06 13:39:29


Thanz Thug. Làm như Thug thì nó báo là:

Quote:


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
.


benina

04/16/06 13:43:41


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á.

benina

04/16/06 14:12:04


Để cài lại SP1 như Thug xem sao.

TQN

04/16/06 16:27:41


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

benina

04/16/06 23:11:02


3 Attachment(s)

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

Quote:


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


TQN

04/17/06 09:55:08


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.

benina

04/17/06 22:24:19


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 ?

Lord

07/16/06 00:48:40


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


Quote:


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é.

Lord

07/17/06 20:55:14


à , 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.

benina

11/05/07 18:06:58


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.

benina

11/06/07 14:53:04


Download LiveKD v3.0

_http://www.microsoft.com/technet/sysinternals/Sys temInformation/LiveKd.mspx