2012-04-27 11 views
6

Tôi đã phát hiện một số lỗi trên hội đồng bên thứ ba cũ mà chúng tôi đang sử dụng trên mã của chúng tôi sẽ giải mã chúng. Tôi muốn sửa chúng nhưng vì tôi không có mã nguồn tôi cần phải trực tiếp sửa đổi bytecode. Các thay đổi thực sự đơn giản (thay đổi AND cho OR hoặc NOPing một số dòng).Có trình chỉnh sửa IL nào để thay đổi mã byte của một assembly không?

Có trình chỉnh sửa nào để thực hiện loại điều này không? Làm công việc với một trình soạn thảo hex sẽ là tùy chọn cuối cùng, tôi sẽ có một gợi ý về những hướng dẫn mà tôi có xung quanh con trỏ ...

Trả lời

4

Tôi nghĩ rằng những gì bạn đang tìm kiếm là .NET Reflector với tiện ích bổ sung Reflexil. Hãy nhìn vào các ảnh chụp màn hình, nó khá mạnh mẽ và nó có thể sửa đổi mã IL khi chạy. Reflector được sử dụng để được miễn phí, bạn có thể có thể nhận được một số phiên bản cũ ở đâu đó.

+0

Tuyệt vời! Đó là những gì tôi đang tìm kiếm. Trông tuyệt vời và tôi có một bản sao cũ vẫn đang hoạt động. Cảm ơn! –

3

Tôi giả định rằng các assembly không được đặt tên mạnh bởi vì không có gì bạn có thể làm mà không có phím ký.

Nếu không, có vẻ như Ildasm sẽ hoạt động cho bạn. Bạn có thể dịch ngược các hội đồng, thực hiện các sửa đổi và lắp ráp lại chúng với Ilasm.

Một tùy chọn miễn phí khác có thể là số JustDecompile của Telerik, trong đó "có thể tạo dự án Visual Studio từ một hội đồng được biên dịch ngược". - Tôi chưa từng sử dụng nó, nhưng điều này nghe có vẻ như nó giải mã nguồn và tạo một dự án sẵn sàng để xây dựng. Đó sẽ là siêu thuận tiện vì bạn thậm chí sẽ không phải làm việc với IL.

+1

Không hề. Nó không cho phép bạn chỉnh sửa bytecode. Tôi cần chỉnh sửa bytecode. Xây dựng toàn bộ hội đồng không phải là một lựa chọn. –

+0

Tại sao đó không phải là một lựa chọn? – Iridium

+0

Bởi vì toàn bộ mã là "nguồn obfuscated" và không thể được biên dịch mà không có một nỗ lực thực sự cao và vì decompilers không bao giờ tạo mã có thể được biên dịch một lần nữa mà không dành nhiều thời gian cho công việc đó. –

1

dnSpy, cho phép bạn chỉnh sửa IL và C# mã. Xem số screenshots của họ.