Hotline: 098 821 7749 info@acinternational.com.vn
Mã SP: REV - 001
Hex-Rays Decompiler
Giá:liên hệ Còn hàng
Số lượng:

Hex-Rays Decompiler

Hãng sản xuất Hex-Rays Phiên bản: Lastest Version
Bản quyền Perpetual
Thời hạn bản quyền Vĩnh viễn (Theo phiên bản)
Ngành nghề Lập trình
Đối tượng tác động Mã nguồn, Source code, mã máy

Mô tả

Hex-Rays Decompiler là một plugin bổ sung trình biên dịch vào chương trình dịch mã ngược C Decompiler vào IDA, mang đến công cụ phân tích phần mềm nhị phân trong tầm tay của hàng triệu lập trình viên. Nó chuyển đổi mã nhị phân trong các bộ vi xử lý riêng thành các đoạn mã khai báo giống ngôn ngữ lập trình C có thể đọc được (readable C-like pseudocode text). Hex-Rays Decompiler chạy trên tất cả các nền tảng tiêu chuẩn - MS Windows, Linux và Mac OS X, cả ở chế độ GUI và console mode.
Thông tin liên hệ:

Liên hệ với tôi qua:

Thông tin chi tiết sản phẩm

Phiên bản >>

Dùng thử >>

HDSD >>

Yêu cầu hệ thống >>

Xuất xứ >>

Mô tả: Hex-Rays Decompiler mang đến khả năng phân tích phần mềm nhị phân trong tầm tay của hàng triệu lập trình viên. Nó chuyển đổi mã bộ xử lý Processor Code gốc thành văn bản mã giả C-like Pseudocode có thể đọc được.


Tổng quan về phần mềm


Hex-Rays Decompiler

Hex-Rays Decompiler brings binary software analysis within reach of millions of programmers. It converts native processor code into a readable C-like pseudocode text. 


Ưu điểm của Hex-Rays Decompiler


So với hợp ngữ cấp thấp “Low Level Assembly Language”, biểu diễn ngôn ngữ cấp cao trong trình dịch ngược Hex-rays Decompiler có một số ưu điểm:


  • Ngắn gọn: cần ít thời gian hơn để đọc nó;
  • Có cấu trúc: logic chương trình rõ ràng hơn;
  • Năng động: tên và loại biến có thể được thay đổi nhanh chóng;
  • Quen thuộc: không cần học hợp ngữ;
  • Văn bản mã giả được tạo ra một cách nhanh chóng. Công nghệ của chúng tôi đủ nhanh để phân tích 99% chức năng trong vòng vài giây.

Hiện tại, Hex-Rays Decompiler hỗ trợ mã được tạo bởi trình biên dịch cho các bộ xử lý x86, x64, ARM32, ARM64 và PowerPC Processors. Hex-Rays dự định chuyển nó sang các nền tảng khác trong tương lai. API có lập trình cho phép người dùng cải thiện kết quả của trình dịch ngược. Tìm kiếm lỗ hổng bảo mật, xác thực phần mềm, phân tích phạm vi bảo hiểm là những hướng mà bạn nghĩ ngay đến.


Hex-Rays Decompiler chạy trên MS Windows, Linux và Mac OS X. Hỗ trợ phiên bản GUI và văn bản IDA.

Phiên bản demo giới hạn của trình dịch ngược x64

được đóng gói cùng với gói đánh giá IDA!


Phần mềm Hex-Rays Decompiler có sẵn cho 9 nền tảng


Trình dịch ngược Hex-Rays Decompilers yêu cầu IDA Pro, Bạn hãy kiểm tra các giới hạn của trình dịch ngược trước khi đặt hàng.


Các bộ xử lý Processor được Hex-Rays Decompiler hỗ trợ 


So sánh quá trình dịch ngược và tháo gỡ


Nếu bạn chưa rõ quá trình dịch ngược “Decompilation” có thể mang lại những gì sau khi tháo gỡ “disassembly”, hãy xem các trang so sánh sau:



Các bộ xử lý Processor được Hex-Rays Decompiler hỗ trợ 


Giới thiệu về Decompilation vs. Disassembly


Trình dịch ngược “Decompiler” thể hiện các tệp nhị phân thực thi “Executable binary files” ở dạng có thể đọc được. Chính xác hơn, nó chuyển đổi mã nhị phân thành văn bản mà các nhà phát triển phần mềm có thể đọc và sửa đổi. Ngành bảo mật phần mềm dựa vào sự chuyển đổi này để phân tích và xác thực các chương trình. Việc phân tích được thực hiện trên mã nhị phân vì mã nguồn “source code ” (dạng văn bản của phần mềm) theo truyền thống không có sẵn vì nó được coi là bí mật thương mại.


Các chương trình chuyển đổi mã nhị phân thành dạng văn bản luôn tồn tại. Việc ánh xạ một-một đơn giản các mã lệnh của bộ xử lý vào trong việc ghi nhớ lệnh được thực hiện bởi các trình tháo gỡ hay trình phân tách “Disassemblers”. Có rất nhiều công cụ tháo gỡ có sẵn trên thị trường, cả miễn phí và thương mại. Trình dịch ngược mạnh mẽ nhất là IDA Pro của Hex-Rays. Nó có thể xử lý mã nhị phân cho một số lượng lớn bộ xử lý và có kiến trúc mở cho phép các nhà phát triển viết các mô-đun phân tích bổ sung.


Trình dịch ngược “Decompiler” khác với trình tháo gỡ “Disassemblers” ở một khía cạnh rất quan trọng. Mặc dù cả hai đều tạo ra văn bản mà con người có thể đọc được, nhưng Trình dịch ngược “Decompiler” lại tạo ra văn bản cấp cao hơn nhiều, ngắn gọn hơn và dễ đọc hơn nhiều.


So với ngôn ngữ hợp ngữ cấp thấp, biểu diễn ngôn ngữ cấp cao có một số ưu điểm:


  • Đó là sự đồng ý.
  • Nó có cấu trúc.
  • Nó không yêu cầu các nhà phát triển phải biết ngôn ngữ lập trình Assembly Language.
  • Nó nhận biết và chuyển đổi các thành ngữ cấp thấp “Low level idioms” thành các khái niệm cấp cao “High Level notions”.
  • Nó ít gây nhầm lẫn hơn và do đó dễ hiểu hơn.
  • Nó ít lặp đi lặp lại và ít gây mất tập trung hơn.
  • Nó sử dụng phân tích luồng dữ liệu “Data Flow Analysis”.

Chúng ta hãy xem xét những điểm này một cách chi tiết.


Thông thường, đầu ra của trình dịch ngược “Decompiler” ngắn hơn năm đến mười lần so với đầu ra của trình tháo gỡ “Disassemblers”. Ví dụ: một chương trình hiện đại điển hình chứa từ 400KB đến 5 MB mã nhị phân. Đầu ra của trình tháo gỡ “Disassemblers” cho một chương trình như vậy sẽ bao gồm khoảng 5-100MB văn bản, có thể mất từ vài tuần đến vài tháng để phân tích hoàn toàn. Các nhà phân tích không thể dành nhiều thời gian như vậy cho một chương trình vì lý do kinh tế.


Đầu ra của trình dịch ngược “Decompiler” cho một chương trình thông thường sẽ từ 400KB đến 10MB. Mặc dù đây vẫn là một khối lượng lớn để đọc và hiểu (có kích thước bằng một cuốn sách dày) nhưng thời gian cần thiết cho thời gian phân tích được chia cho 10 trở lên.


Sự khác biệt lớn thứ hai là đầu ra của trình dịch ngược “Decompiler” có cấu trúc. Thay vì một luồng hướng dẫn tuyến tính trong đó mỗi dòng tương tự với tất cả các dòng khác, văn bản được thụt vào để làm cho logic chương trình trở nên rõ ràng. Các cấu trúc luồng điều khiển như câu lệnh điều kiện, vòng lặp và công tắc được đánh dấu bằng các từ khóa thích hợp.


Đầu ra của trình dịch ngược “Decompiler” dễ hiểu hơn đầu ra của trình tháo gỡ “Disassemblers” vì nó ở mức cao. Để có thể sử dụng trình tháo gỡ “Disassemblers”, nhà phân tích phải biết ngôn ngữ hợp ngữ của bộ xử lý đích. Các lập trình viên chính thống không sử dụng hợp ngữ cho các công việc hàng ngày, nhưng ngày nay hầu như mọi người đều sử dụng ngôn ngữ cấp cao. Trình dịch ngược “Decompiler” loại bỏ khoảng cách giữa ngôn ngữ lập trình điển hình và ngôn ngữ đầu ra. Nhiều nhà phân tích có thể sử dụng trình giải mã hơn là trình dịch ngược.


Trình dịch ngược “Decompiler” chuyển đổi các thành ngữ ở mức hợp ngữ thành các thành phần trừu tượng ở mức cao. Một số thành ngữ có thể khá dài và tốn thời gian để phân tích. Mã một dòng sau đây


x = y / 2;


có thể được trình biên dịch “Compiler” chuyển đổi thành một chuỗi gồm 20-30 lệnh xử lý “Processor Instructions”. Phải mất ít nhất 15-30 giây để một nhà phân tích có kinh nghiệm nhận ra mẫu “pattern” và thay thế nó bằng dòng lệnh “line” ban đầu trong đầu. Nếu mã bao gồm nhiều thành ngữ như vậy, nhà phân tích buộc phải ghi chú và đánh dấu từng mẫu bằng cách trình bày ngắn gọn của nó. Tất cả điều này làm chậm quá trình phân tích rất nhiều. Trình dịch ngược “Decompiler” loại bỏ gánh nặng này khỏi các nhà phân tích.


Số lượng lệnh Assembler instructions để phân tích là rất lớn. Chúng trông rất giống nhau và hoa văn của chúng hay lặp đi lặp lại. Đọc kết quả của trình tháo gỡ “Disassemblers” không giống như đọc một câu chuyện hấp dẫn. Trong một chương trình do trình biên dịch “Compiler” tạo ra, 95% mã sẽ thực sự nhàm chán khi đọc và phân tích. Nhà phân tích rất dễ nhầm lẫn giữa hai đoạn mã trông giống nhau và đơn giản là không hiểu được kết quả đầu ra. Hai yếu tố này (kích thước và tính chất nhàm chán của văn bản) dẫn đến hiện tượng sau: chương trình nhị phân không bao giờ được phân tích đầy đủ. Các nhà phân tích cố gắng xác định vị trí các phần đáng ngờ bằng cách sử dụng một số phương pháp phỏng đoán và một số công cụ tự động hóa. Các trường hợp ngoại lệ xảy ra khi chương trình cực kỳ nhỏ hoặc nhà phân tích dành một lượng thời gian rất lớn cho việc phân tích. Trình dịch ngược “Decompiler” giải quyết được cả hai vấn đề: đầu ra của chúng ngắn hơn và ít lặp lại hơn. Đầu ra vẫn chứa một số sự lặp lại, nhưng con người có thể quản lý được. Ngoài ra, sự lặp lại này có thể được giải quyết bằng cách tự động hóa việc phân tích.


Các mẫu “pattern” lặp đi lặp lại trong mã nhị phân cần có giải pháp. Một giải pháp rõ ràng là sử dụng máy tính để tìm ra các mẫu “pattern” và bằng cách nào đó rút gọn chúng thành một cái gì đó ngắn hơn và dễ dàng hơn cho các nhà phân tích con người nắm bắt. Một số trình tháo gỡ (bao gồm IDA Pro) cung cấp phương tiện để tự động phân tích. Tuy nhiên, số lượng mô-đun phân tích có sẵn vẫn ở mức thấp nên mã lặp lại tiếp tục là một vấn đề. Lý do chính là việc nhận dạng các mẫu nhị phân “Binary patterns” là một nhiệm vụ khó khăn một cách đáng ngạc nhiên. Bất kỳ hành động "đơn giản" nào, bao gồm các phép tính số học cơ bản như cộng và trừ, đều có thể được biểu diễn theo vô số cách dưới dạng nhị phân. Trình biên dịch “Compiler” có thể sử dụng toán tử cộng để trừ và ngược lại. Nó có thể lưu trữ các số không đổi ở đâu đó trong bộ nhớ và tải chúng khi cần. Nó có thể sử dụng thực tế là, sau một số thao tác, giá trị thanh ghi có thể được chứng minh là một hằng số đã biết và chỉ sử dụng thanh ghi mà không cần khởi tạo lại nó. Sự đa dạng của các phương pháp được sử dụng giải thích số lượng nhỏ các mô-đun phân tích có sẵn.


Tình hình sẽ khác với trình dịch ngược “Decompiler”. Tự động hóa trở nên dễ dàng hơn nhiều vì trình dịch ngược “Decompiler” cung cấp cho người phân tích các khái niệm cấp cao. Nhiều mẫu được tự động nhận dạng và thay thế bằng các khái niệm trừu tượng. Các mẫu còn lại có thể được phát hiện dễ dàng nhờ các hình thức mà trình dịch ngược “Decompiler” đưa vào. Ví dụ, các khái niệm về tham số hàm và quy ước gọi hàm được chính thức hóa chặt chẽ. Trình dịch ngược “Decompiler” giúp dễ dàng tìm thấy các tham số của bất kỳ lệnh gọi hàm nào, ngay cả khi các tham số đó được khởi tạo cách xa lệnh gọi. Với một trình tháo gỡ “Disassemblers”, đây là một nhiệm vụ khó khăn, đòi hỏi phải xử lý từng trường hợp riêng lẻ.


BTrình dịch ngược “Decompiler”, trái ngược với trình tháo gỡ “Disassemblers”, thực hiện phân tích luồng dữ liệu mở rộng trên đầu vào. Điều này có nghĩa là những câu hỏi như "Biến được khởi tạo ở đâu?" và "Biến này có được sử dụng không?" có thể được trả lời ngay lập tức mà không cần thực hiện bất kỳ tìm kiếm rộng rãi nào về hàm. Các nhà phân tích thường xuyên đặt ra và trả lời những câu hỏi này và có câu trả lời ngay lập tức làm tăng năng suất của họ.



So sánh song song giữa quá trình tháo gỡ và dịch ngược

Dưới đây bạn sẽ tìm thấy những so sánh song song giữa kết quả đầu ra của quá trình tháo gỡ và dịch ngược. Các ví dụ sau đây có sẵn:


Các ví dụ sau đây được trình bày dưới đây:


  • Phép chia cho 2
  • Đơn giản chưa?
  • Biến của tôi ở đâu?
  • Số học không phải là môn khoa học tên lửa
  • Thủ tục Window mẫu
  • Đánh giá ngắn mạch
  • Hoạt động chuỗi nội tuyến


Ví dụ 1: Phép chia cho 2


Chỉ cần lưu ý sự khác biệt về kích thước! Mặc dù đầu ra của quá trình tháo rời “disassemble” yêu cầu bạn không chỉ biết rằng trình biên dịch tạo ra mã phức tạp như vậy cho phép chia có dấu và phép toán modulo, mà bạn còn phải dành thời gian để nhận dạng các mẫu “patterns”. Không cần phải nói, trình dịch ngược “decompiler” khiến mọi việc trở nên thực sự đơn giản.



Ví dụ 2: Đơn giản chưa?


Những câu hỏi như


  • Các giá trị trả về có thể có của hàm là gì?
  • Hàm này có sử dụng chuỗi nào không?
  • Hàm này làm gì?

có thể được trả lời gần như ngay lập tức khi nhìn vào đầu ra của trình dịch ngược “decompiler”. Không cần phải nói rằng nó trông đẹp hơn vì tôi đã đổi tên các biến cục bộ. Trong trình tháo gỡ “Disassemblers”, các thanh ghi rất hiếm khi được đổi tên vì nó che giấu việc sử dụng thanh ghi và có thể dẫn đến nhầm lẫn.



Ví dụ 3: Biến của tôi ở đâu?


IDA đánh dấu mã định danh hiện tại “Current Identifier”. Tính năng này hóa ra hữu ích hơn nhiều với đầu ra ở mức cao. Trong ví dụ này, tôi đã cố gắng theo dõi cách hàm sử dụng con trỏ hàm được truy xuất. Trong đầu ra của quá trình tháo gỡ “Disassembly”, nhiều lần xuất hiện sai wrong eax được đánh dấu trong khi trình dịch ngược “decompiler” thực hiện chính xác những gì tôi muốn.



Ví dụ 4: Số học không phải là môn khoa học tên lửa


Số học không phải là một môn khoa học tên lửa nhưng sẽ tốt hơn nếu có ai đó giải quyết nó cho bạn. Bạn có nhiều điều quan trọng hơn để tập trung vào.



Ví dụ 5: Thủ tục window procedure mẫu


Trình dịch ngược “Decompiler” đã nhận ra câu lệnh switch và thể hiện rõ ràng thủ tục windows procedure. Nếu không có sự trợ giúp nhỏ này, người dùng sẽ phải tự mình tính toán số lượng tin nhắn. Không có gì đặc biệt khó khăn, chỉ tốn thời gian và nhàm chán. Lỡ như cô ấy mắc lỗi thì sao?...




Ví dụ 6: Đánh giá ngắn mạch


Đây là một đoạn trích từ một hàm lớn để minh họa việc đánh giá ngắn mạch. Những điều phức tạp xảy ra trong các hàm dài và sẽ rất tiện lợi khi có trình dịch ngược “Decompiler” để thể hiện mọi thứ theo cách của con người. Xin lưu ý cách mã nằm rải rác trong không gian địa chỉ được hiển thị chính xác trong hai câu lệnh if.




Ví dụ 7: Hoạt động chuỗi nội tuyến


Trình dịch ngược “Decompiler” cố gắng nhận dạng các hàm chuỗi nội tuyến thường xuyên như strcmp, strchr, strlen, v.v. Trong đoạn mã này, các lệnh gọi hàm strlen đã được nhận dạng.



Giá bán & Chính sách cấp bản quyền

(Lưu ý: Giá trên web có tính chất tham khảo, có thể tăng hoặc giảm so với hiện tại, Quý khách vui lòng liên hệ để có báo giá tốt nhất.)


Part No

Product

Price

HEXARM64FM

ARM64 Decompiler Floating License [Mac]

4145 USD

HEXARM64M

ARM64 Decompiler Fixed License [Mac]

2765 USD

HEXARMFM

ARM32 Decompiler Floating License [Mac]

4145 USD

HEXARMM

ARM32 Decompiler Fixed License [Mac]

2765 USD

HEXMIPS64FM

MIPS64 Decompiler Floating License [Mac]

4145 USD

HEXMIPS64M

MIPS64 Decompiler Fixed License [Mac]

2765 USD

HEXMIPSFM

MIPS Decompiler Floating License [Mac]

4145 USD

HEXMIPSM

MIPS Decompiler Fixed License [Mac]

2765 USD

HEXPPC64FM

PPC64 Decompiler Floating License [Mac]

4145 USD

HEXPPC64M

PPC64 Decompiler Fixed License [Mac]

2765 USD

HEXPPCFM

PPC Decompiler Floating License [Mac]

4145 USD

HEXPPCM

PPC Decompiler Fixed License [Mac]

2765 USD

HEXX64FM

x64 Decompiler Floating License [Mac]

4145 USD

HEXX64M

x64 Decompiler Fixed License [Mac]

2765 USD

HEXX86FM

x86 Decompiler Floating License [Mac]

4145 USD

HEXX86M

x86 Decompiler Fixed License [Mac]

2765 US


Các loại giấy phép Hex-rays có sẵn


Giấy phép theo người dùng (Named licenses)

  • Giấy phép theo người dùng được liên kết với một người dùng cuối cụ thể và có thể được sử dụng trên máy tính xách tay của người dùng và hai máy tính để bàn. Chúng là sự lựa chọn hợp lý cho người dùng cá nhân nhưng cũng có sẵn cho các tập đoàn và trường đại học nếu và khi chỉ có một người dùng cuối sử dụng phần mềm.

Giấy phép theo máy tính (Computer licenses)

  • Giấy phép máy tính được liên kết với một máy tính cụ thể và có thể được sử dụng bởi những người dùng cuối khác nhau trên máy tính đó với điều kiện chỉ có một người dùng hoạt động vào bất kỳ lúc nào. Loại giấy phép này phù hợp với các tập đoàn vì chúng không bị ràng buộc với con người và cho phép cấp lại giấy phép dễ dàng.

Giấy phép thả nổi (Floating licenses)

  • Giấy phép nổi (hoặc giấy phép mạng “Network licenses”) có thể được cài đặt trên số lượng máy tính không giới hạn (trong một tổ chức) nhưng chỉ cho phép một số lượng bản sao chạy đồng thời có giới hạn.

Giấy phép nhóm (Teams licenses)

  • Giấy phép nhóm có thể được cài đặt trên số lượng máy tính không giới hạn trong một tổ chức. Một nhóm kỹ sư có thể làm việc trực tuyến hoặc ngoại tuyến và hợp nhất công việc của họ khi họ đạt được các cột mốc quan trọng, dù lớn hay nhỏ. Máy chủ vault server đi kèm với giấy phép nhóm sẽ theo dõi tất cả các thay đổi.

Giấy phép giáo dục (Educational licenses)

  • Hex-rays cung cấp giấy phép giáo dục miễn phí cho các trường đại học và các tổ chức học thuật khác đăng ký công khai sinh viên một cách thường xuyên. Các cơ sở quân sự không đủ điều kiện để được cấp giấy phép giáo dục.

  • Giấy phép giáo dục hỗ trợ bộ xử lý x86, x64, ARM và ARM64. Nó đi kèm với trình dịch ngược đám mây x86/x64 cloud decompilers và trình gỡ lỗi debugger cục bộ gốc cho Windows hoặc Linux. Tập lệnh Python và IDC scripts được hỗ trợ. Không giới hạn kích thước cho các tập tin đầu vào.
 

Hạn chế của từng loại giấy phép

 

Named

Computer

Floating

Teams

Educational

Available to individuals (Dành cho cá nhân)

Yes

No

No

No

No

Available to companies (Có sẵn cho các công ty)

Yes

Yes

Yes

Yes

No

Available to universities (Có sẵn cho các trường đại học)

Yes

Yes

Yes

Yes

Yes

Single license can be used by many different users (Một giấy phép có thể được sử dụng bởi nhiều người dùng khác nhau)

No 1

Yes 2

Yes 3

No

Yes

Single license can be installed on more than one machine (Một giấy phép có thể được cài đặt trên nhiều máy)

Yes 4

No

Yes 5

Yes 5

No

Tied to a specific end user (Gắn với người dùng cuối cụ thể)

Yes 1

No 9

No 9

No 10

No

Several copies can be run simultaneously (Có thể chạy nhiều bản sao đồng thời)

Yes 6

Yes 6

Yes 6

Yes 6

Yes 6

Requires network connection (Yêu cầu kết nối mạng)

No

No

Yes 7

Yes 7

No

Locked to hardware (Bị khóa phần cứng)

No

No

No 8

No 8

No

Support period (Thời gian hỗ trợ)

1 year

1 year

1 year

1 year

Included11

Expires (Thời hạn)

Never

Never

Never

Yes

 

Ghi chú:

  1. Mỗi giấy phép theo người dùng “named license” sẽ được gán cho một người dùng cụ thể và chỉ người dùng đó mới có thể sử dụng. Việc chuyển nhượng lại giấy phép cho người dùng khác thường có thể được thực hiện trong thời gian hỗ trợ (tối đa hai lần mỗi năm)
  2. Mỗi giấy phép máy tính “computer license” có thể được sử dụng bởi bất kỳ người dùng nào trên máy tính vật lý hoặc ảo nơi nó được cài đặt
  3. Mỗi giấy phép thả nổi “floating license” cho phép một người sử dụng đồng thời phần mềm
  4. Người dùng có thể cài đặt phần mềm trên máy tính xách tay và hai máy tính để bàn của mình với điều kiện là không có người dùng nào khác sử dụng phần mềm trên các máy tính đó.
  5. Phần mềm có thể cài đặt trên nhiều máy tính theo yêu cầu (trong cùng một công ty)
  6. Nhiều bản sao chỉ có thể chạy trên một máy tính cùng một lúc
  7. Đối với máy chủ cấp phép “license server”; có thể mượn giấy phép để làm việc ngoại tuyến
  8. Chỉ có máy chủ cấp phép “license server” bị khóa
  9. Giấy phép máy tính và giấy phép thả nổi được gán một email, thường là của người quản lý giấy phép; có thể cập nhật địa chỉ email trong thời gian hỗ trợ (tối đa hai lần mỗi năm)
  10. Việc quản lý người dùng được thực hiện bởi công ty của bạn
  11.  Chỉ dành cho người hướng dẫn và trong suốt thời gian khóa học

 


Các sản phẩm cùng loại

Giá: liên hệ

Kho: Còn hàng

Chi tiết 749 lượt xem

Giá: liên hệ

Kho: Còn hàng

Chi tiết 558 lượt xem

Giá: liên hệ

Kho: Còn hàng

Chi tiết 407 lượt xem

Giá: liên hệ

Kho: Còn hàng

Chi tiết 380 lượt xem

Giá: liên hệ

Kho: Còn hàng

Chi tiết 422 lượt xem

Giá: liên hệ

Kho: Còn hàng

Chi tiết 430 lượt xem

Giá: liên hệ

Kho: Còn hàng

Chi tiết 671 lượt xem

Giá: liên hệ

Kho: Còn hàng

Chi tiết 516 lượt xem