Có bất kỳ chương trình Linux nào có thể tháo rời một nhị phân Mach-O OSX phổ quát x86/x86_64 như objdump không? Objdump của GNU binutils hỗ trợ các tệp ELF và Windows PE nhưng không hỗ trợ Mach-O.Bộ tách rời Mach-O của Linux
Trả lời
AFAIK, công cụ nhị phân Darwin gốc là một phần của gói cctools. Chúng không có cùng cú pháp dòng lệnh hoặc đầu ra là GNU binutils. Tuy nhiên, các binutils sau này (tức là, 2.22) hỗ trợ định dạng Mach-O. Bạn có thể nhận các bản dựng sẵn này, với tiền tố 'g
' cho tên công cụ, như đã đề cập here. Ngoài ra, bạn có thể biên dịch binutils, với một cái gì đó như:
> ./configure --prefix=$CROSSTOOLDIR --target=x86_64-apple-darwin \
--enable-64-bit-bfd --disable-nls --disable-werror
cài đặt sẽ tạo ra một thư mục bin/
nơi các tiện ích được bắt đầu với x86_64-apple-darwin
. Nó sẽ xử lý các định dạng i386 Mach-O (và FAT nhị phân).
Điều đó đã hiệu quả. Cảm ơn nhiều. – Jeff
Cảm ơn một triệu! Làm việc xuất sắc!^_^ – TrinitronX
Chỉ cần rõ ràng, đây là để xây dựng binutils đặc biệt cho Mac OSX? Không phải cho Linux như câu hỏi ban đầu được hỏi? –
Một số công cụ nổi tiếng để đảo ngược kỹ thuật các mã nhị phân Mach-O là otool, chuỗi, nm, otx vv. Điều này chắc chắn hoạt động trên MAC OSX, tôi nghĩ nó hoạt động trên nền tảng Linux.
Không, otool không hoạt động trên Linux. Nếu bạn có bất kỳ bằng chứng trái ngược nào, vui lòng nêu rõ. Nếu bạn có phiên bản của các công cụ khác hoạt động trên Linux cho các tệp Mac OS X, vui lòng nêu rõ nơi bạn đã nhận chúng. – pts
có ... otool là công cụ dòng lệnh OSX cmd ... Có một công cụ thay thế cho nền tảng Linux .. Google và tìm nó! – Anil
Tôi đã thử googling nó và tôi đã nhận ... câu trả lời này. – Buge
Liên quan đến phản ứng của Jeff:
bintuils không bao gồm liên kết hỗ trợ (ld/GLD) cho mach o thậm chí không có trong phiên bản hiện tại 2.23 đó là thực sự đáng thất vọng nhưng không đáng ngạc nhiên. Thật không may là những gì sẽ xảy ra khi bạn thực hiện một hệ điều hành, và tái tạo lại những thứ "mà thực sự không cần phải được tái tạo lại." Mọi người đều có những ưu tiên khác nhau. Tôi vẫn chưa nghe thấy kết thúc của a.out vs elf từ một số người.
cẩn thận để thử chạy các tệp nhị phân ELF trên OSX? https://stackoverflow.com/a/2613170/1867574
Bạn có thể tháo rời các tệp nhị phân Mach-O trên Linux bằng Hopper. Không giống như objdump, nó có giao diện người dùng đồ họa rất đẹp.
Tôi nghĩ bạn cần otool
. Nó được bao gồm trong mac osx command tools
. Ví dụ: nếu bạn muốn tháo rời a.out
, tất cả những gì bạn cần làm là nhập otool -tv a.out
vào dòng lệnh của mình.
- 1. Tách rời YAGNI
- 2. Khoảng cách gần nhất giữa hai điểm (bộ tách rời)
- 3. Python: Tính giai thừa của một số không tách rời
- 4. Tạo chữ ký tách rời PKCS # 7
- 5. công cụ trên Linux để đọc/kết xuất các tệp MachO?
- 6. Làm thế nào để tách rời các bit (UnMortonizing?)
- 7. Entity Framework: ObjectContext.ExecuteStoreQuery tạo ra các đối tượng tách rời
- 8. HEAD Git/tách rời, tải lại công việc?
- 9. Hibernate tải lười biếng trong các đối tượng tách rời
- 10. Tách rời khác nhau cho mỗi @Test trong jUnit
- 11. Thực thể tách rời và pháp nhân được quản lý
- 12. Truy vấn tách rời Hibernate như một phần của truy vấn tiêu chí
- 13. Không thể lấy ví dụ về phiên màn hình tách rời của Fabric để làm việc
- 14. Tách thư viện chia sẻ linux
- 15. Hibernate có thể xóa các bộ sưu tập mồ côi khi cập nhật một đối tượng tách rời không?
- 16. gdb tháo rời một dòng
- 17. Bộ công cụ web của Google (GWT) + Công cụ ứng dụng của Google (GAE) + Tính bền vững dữ liệu được tách rời
- 18. org.hibernate.PersistentObjectException: tách rời thực thể thông qua để tồn tại với H2 trong cơ sở dữ liệu bộ nhớ
- 19. Bộ tách dòng RTF
- 20. Dường như không dọn dẹp các phần tử DOM tách rời
- 21. Chọn khối rời nhau của mã trong Vim cho giật
- 22. Thêm trình điều hướng điều hướng vào chế độ xem chi tiết trong phần tách rời
- 23. Làm thế nào để sử dụng các thành phần symfony được tách rời?
- 24. Bộ tách điều khiển MVC của Spring từ HTTPServlet
- 25. Có một đối tượng hàm C++ tiêu chuẩn để tách rời một cặp :: std không?
- 26. Màu sắc có ý nghĩa gì đối với các nút DOM tách rời trong Trình tạo heap của Chrome?
- 27. Tại sao thiết lập EntityState để tách rời một thuộc tính của danh sách loại <T>?
- 28. Tôi làm cách nào để “tách rời” một ngày trong một múi giờ cụ thể?
- 29. Tách tệp trong linux dựa trên nội dung
- 30. Bộ lọc rời rạc cho Kích thước Df Crossfilter
Bạn có chắc chắn rằng 'binutils' không hỗ trợ Mach-O? Có lẽ bạn cần phải cấu hình nó cho nó và biên dịch lại nó (tất nhiên, binutils' phân phối chuẩn của bạn không hỗ trợ nó, bởi vì nó không cần thiết cho điều đó)? –
Tôi đã đọc ở đâu đó rằng các binutils GNU không hỗ trợ nó. Tôi chỉ đơn giản giả định rằng cổng mac đã được sửa đổi để hỗ trợ nó. Đây không phải là trường hợp như @Brett Hale mô tả. – Jeff