banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thủ thuật reverse engineering Heap corruption debug, VS2005, VC++?  XML
  [Question]   Heap corruption debug, VS2005, VC++? 05/06/2008 06:14:46 (+0700) | #1 | 134175
[Avatar]
Z0rr0
Q+WRtaW5pc3RyYXRvc+g

Joined: 14/08/2002 12:52:01
Messages: 1323
Location: Underground
Offline
[Profile] [PM] [WWW] [Yahoo!]
Tôi đang làm một ứng dụng dạng Windows service, C++/VC++, nó tải OpenOffice để thực hiện vài tác vụ, sau khi xong sẽ đóng lại.
Tuy nhiên hiện thỉnh thoảng gặp vấn đề, khi debug sẽ thấy Visual Studio 2005 báo "Heap corruption detected at 023A2322", vẫn ko rõ nội tại bên trong OO gặp vấn đề hay service tui có vấn đề.

Đảm bảo sử dụng các lời gọi đến OO theo đúng OO SDK.

Anh em nào có kinh nghiệm hay công cụ debug/RE lại cái địa chỉ "023A2322" để dò lại vị trí hàm, dll,...nào bị heap overflow không, vui lòng chỉ giáo.

Cảm ơn nhiều.
Hibernating
[Up] [Print Copy]
  [Question]   Re: Heap corruption debug, VS2005, VC++? 05/06/2008 08:13:32 (+0700) | #2 | 134192
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
Cách đơn giản nhất là Z0rr0 tìm và down BoundsChecker hay Purify về dùng.
Còn nếu không thì dùng chính Visual Studio hoặc WinDbg + gflags để debug.
Z0rr0 chỉ nói chung chung vậy nên mình không thể giúp chi tiết được. Service của Zorro build ở Release mode hay Debug mode. Nên build ở Debug mode, dùng các macro của CRTL về Debug mode để check memory...
Còn nếu lỗi chỉ xảy ra ở Release mode thì Z0rr0 check thêm option tạo pdb file trong Release mode, tắt Optimize đi, rồi dùng VS hay WinDbg để debug. Nếu lỗi xảy ra mà xem được stack trace thì coi như vấn đề đã giải quyết được 90%.
[Up] [Print Copy]
  [Question]   Re: Heap corruption debug, VS2005, VC++? 06/06/2008 23:26:17 (+0700) | #3 | 134420
[Avatar]
Z0rr0
Q+WRtaW5pc3RyYXRvc+g

Joined: 14/08/2002 12:52:01
Messages: 1323
Location: Underground
Offline
[Profile] [PM] [WWW] [Yahoo!]
Cảm ơn TQN, thật sự tôi cũng đã thử rất nhiều cách như bồ đã nêu ra, vì làm software development với VC++ nhiều năm rồi smilie
Trong suốt thời gian này, việc debug các lỗi liên quan đến Heap overflow là khó khăn nhất.

Vấn đề là code không phải tôi viết mà phải hỗ trợ debug, các vấn đề cơ bản như kiểm tra các lời gọi sử dụng heap, chuỗi, tạo/đóng process, dereference... đều đã xem cả nhưng vẫn chưa ra ngô ra khoai.

Nên chỉ hỏi thăm anh em có kinh nghiệm về việc trace back từ một heap memory address cho thêm ý kiến khơi mở thêm.
Hibernating
[Up] [Print Copy]
  [Question]   Re: Heap corruption debug, VS2005, VC++? 07/06/2008 01:10:48 (+0700) | #4 | 134432
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
Mình vẫn không hiểu vấn đề Z0rr0 đưa ra:
1. Z0rr0 có source code hay không ?
2. Source có thể build lại hay không để tạo pdb file ?
3. Z0rr0 đã thử làm các cách nào ?
4. Có thể up file bộ run (không cần source) với debug pdb file lên đâu đó không ?

Hì hì, debug thì phải debug tận tay còn chưa ra thì nói chung chung làm sao được ? Z0rr0 có cho phép remote debug để mình debug từ máy mình hay không ?
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|