2009-02-27 36 views
17

Bạn có nên phân phối lại các tệp pdb cùng với một ứng dụng thương mại không?Bao nhiêu thông tin tệp pdb chứa? (C#/.NET)

Thỉnh thoảng, tôi đang sử dụng theo dõi ngăn xếp để nhận báo lỗi báo cáo chi tiết hơn từ các ứng dụng được triển khai; chức năng này có thể đạt được mà không cần dựa vào các tệp đó không?

Ngoài ra, bao nhiêu gợi ý của mã nguồn gốc mà các tệp này chứa? Nó sẽ được dễ dàng hơn để đảo ngược kỹ sư ứng dụng của tôi bằng cách sử dụng nó?

+0

Sẽ giúp ích nếu bạn chỉ định môi trường bạn đang sử dụng. Rất nhiều công cụ dev tạo ra các tệp PDB. –

Trả lời

11

Nó cơ bản cho biết thêm thông tin cho:

  • Tất cả ngoài công lập loại, giao diện, cấu trúc, các lớp học
  • biến địa phương trong các chức năng
  • tên tập tin
  • Nguồn cho mã có liên quan và số dòng tương ứng trong mã nguồn .

tất cả kết hợp làm cho kỹ thuật đảo ngược trở nên rất dễ dàng đối với mã gốc.

May mắn là bạn có thể tạo phiên bản rút gọn của tệp PDB chỉ chứa thông tin công khai với thông số /PDBSTRIPPED.

Oh bạn đã chỉnh sửa để thêm C# /. NET, vì vậy tôi không chắc liệu "PDBSTRIPPED" có được áp dụng hay không. Tuy nhiên, các ứng dụng .NET rất dễ dàng để reverse engineer thậm chí không có bất kỳ thông tin ký hiệu nào. Tôi sẽ không nhớ bao gồm chúng trong một dự án .NET.

3

Bạn có thể thử sử dụng dia2dump để xem nội dung.

3

Các tập tin quản lý PDB chứa các thông tin sau:

  • Tên của tất cả các biến địa phương
  • Tên của tất cả các file mã nguồn và các ánh xạ từ hướng dẫn IL vào dòng trong các tập tin.

Mọi thứ khác được chứa trong chính tệp nhị phân, bao gồm tên của tất cả các loại, thành viên và đối số chức năng.

Nguồn: PDB files: what every developer must know.

Các vấn đề liên quan