Chuyển đổi ELF thực thi (Linux) thành PE.exe (Windows)


0

Tôi là người mới khi sử dụng tập tin mã máy !!!

Tôi cần sử dụng mã máy thực thi có được dưới dạng ELF (Linux) vào tệp exe cho Windows. Tôi đã thử 'objconv' nhưng, mặc dù định dạng gợi ý sử dụng '-fPE', khi tôi sử dụng dòng lệnh đó chỉ ra 'Lỗi dòng lệnh không xác định 2004' và 'Lỗi 2103 không thể đọc tệp đầu vào'. Tôi nghi ngờ rằng có một số sự không tương thích giữa các nền tảng Linus và Windows


việc này sẽ không hiệu quả. Bạn cố gắng chuyển đổi công cụ nào? Hãy xem nếu đã có bản dựng Windows.
magicandre1981

1
Điều này nghe có vẻ như là một vấn đề XY . Bạn cần giải thích những gì bạn đang cố gắng làm, không phải cách bạn đang cố gắng làm điều đó. (Bạn bắt đầu bằng cách nói "Tôi cần sử dụng ..." nhưng không giải thích lý do tại sao bạn cần phải làm điều đó. Điều này khiến bạn không thể trả lời câu hỏi của mình.)
David Schwartz

1
Những gì bạn đang yêu cầu là không thể. Tuy nhiên, bạn có thể khiến ELF chạy trên Windows bằng Cygwin hoặc một công cụ có liên quan và bạn có thể khiến EXE chạy trên Linux bằng WINE. Và tất nhiên bạn có thể chạy mọi thứ trong máy ảo.
Bắn Parthian

Câu trả lời:


1

Mặc dù mã đối tượng cơ bản có thể giống nhau giữa các nền tảng, các ứng dụng gốc không tầm thường không thể tương thích nhị phân giữa Windows và Linux.

Nếu Linux thực thi mà bạn đang cố gắng chuyển đổi được liên kết động, thì nó sẽ yêu cầu sự hiện diện của các thư viện không tồn tại trên Windows (bạn có thể xem danh sách các thư viện này bằng cách chạy ldd /path/to/programtrên máy Linux).

Ngay cả khi bạn đã chuyển đổi tất cả các thư viện sang định dạng thực thi PE hoặc liên kết tĩnh chúng, các cuộc gọi hệ thống đến hạt nhân NTLinux hoàn toàn khác nhau. Không có sự tương ứng một-một trực tiếp giữa chúng.

Tùy chọn tốt nhất của bạn là tìm mã nguồn cho ứng dụng gốc nếu có thể. Nếu chương trình được viết theo cách di động, nó có thể biên dịch trên cả Windows và Linux. Mặc dù các cuộc gọi hệ thống không giống nhau giữa hai nền tảng, một tập hợp con của việc triển khai thư viện C của chúng có hành vi được tiêu chuẩn hóa.


0

Điều này gần như chắc chắn sẽ không đi làm. Linux và Windows không chơi tốt với nhau. Ứng dụng bạn đang muốn "chuyển đổi" sẽ phải được xây dựng lại từ nguồn cho Windows (sẽ yêu cầu vá lỗi cụ thể của Windows). Với bất kỳ may mắn nào, ứng dụng bạn đang cố chạy đã có cổng Windows.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.