Tôi đang tìm một thư viện sẽ tháo rời mã x86 thành một kiểu mô hình đối tượng nào đó mà sau đó tôi có thể sử dụng để viết các thường trình phân tích mã. Tôi không quan tâm đến một thư viện chuyển đổi mã x86 thành văn bản tháo gỡ - Tôi đã tìm thấy nhiều hơn một vài trong số đó, nhưng chúng không hữu ích vì tôi muốn thực hiện một số công việc trên đầu mã mà tôi đã tháo rời . Oh, và tôi muốn nó được. Net code (VB hoặc C# thích hợp hơn).Có bất kỳ thư viện phân tách VB/C# x86 nào tốt không?
Trả lời
Trình phản xạ không thực hiện x86 theo như tôi biết.
Đặt cược tốt nhất của bạn là sử dụng giao diện tập lệnh hoặc COM đến OllyDbg hoặc IDA Pro.
Tôi muốn giới thiệu IDA Pro nếu bạn có thể mua được. IDA có một API rất phong phú, phát triển tích cực và rất nhiều tài liệu. Bạn có thể chạy nó ở chế độ tự trị, tôi tin rằng sử dụng công tắc '-AS'. Xem http://www.hex-rays.com/idapro/idadoc/417.htm để biết thêm thông tin về các đối số dòng lệnh.
Tôi cũng chạy vào libdasm, nhưng không bao giờ sử dụng nó, vì vậy không chắc chắn nó tốt như thế nào. libdasm trông giống như C/C++ vì vậy nó sẽ được đơn giản để viết một wrapper API trong C#.
Tôi đã sử dụng IDA Pro như một bộ tách rời trực tiếp nhưng tôi không nghĩ đến việc sử dụng nó vì nó trông giống như nó chỉ có tự động hóa nội bộ. Có thể tự động hóa nó từ bên ngoài không? Tôi đoán tôi không phải là 100% phản đối làm việc hoàn toàn trong IDA Pro, nhưng tôi muốn sử dụng một ngôn ngữ .Net nếu tôi có thể. – panopticoncentral
Có, bạn có thể chạy nó ở chế độ tự trị và chỉ định tập lệnh IDC bạn muốn chạy. Bạn cũng có thể phát triển bằng cách sử dụng giao diện C API và COM từ API plugin. Đó có lẽ là giải pháp tháo gỡ và phân tích tốt nhất bạn sẽ nhận được. – kervin
Câu hỏi cũ, nhưng nếu người khác đến và bạn đang thực hiện 100% C# .NET thay vì sử dụng interop, SharpDisasm cung cấp bộ tách x86/x86-64 cho cả hai cú pháp của Intel và AT & T. Nó giải mã mỗi lệnh cho một đối tượng cung cấp quyền truy cập vào thông tin cấp thấp về lệnh (ví dụ: kích thước lệnh, số hạng toán và các loại vv).
SharpDisasm là cổng C# đầy đủ của bộ tách rời C-library libudis86.
Bộ tách rời được hiển thị thông qua lớp SharpDisam.Disassembler
.
Output từ ví dụ giao diện điều khiển ứng dụng được cung cấp:
C:\>echo a1 c9 fd ff ff a1 37 02 00 00 b8 37 02 00 00 b4 09 8a
25 09 00 00 00 8b 04 6d 85 ff ff ff 89 45 f0| disasmcli 32
00000000 a1 c9 fd ff ff mov eax, [0xfffffdc9]
00000005 a1 37 02 00 00 mov eax, [0x237]
0000000a b8 37 02 00 00 mov eax, 0x237
0000000f b4 09 mov ah, 0x9
00000011 8a 25 09 00 00 00 mov ah, [0x9]
00000017 8b 04 6d 85 ff ff ff mov eax, [ebp*2-0x7b]
0000001e 89 45 f0 mov [ebp-0x10], eax
C:\>echo 488b05f7ffffff67668b40f06766035e1048030425ffff
000067660344bef04c0384980000008048a10000000000800000 | disasmcli 64
0000000000000000 48 8b 05 f7 ff ff ff mov rax, [rip-0x9]
0000000000000007 67 66 8b 40 f0 mov ax, [eax-0x10]
000000000000000c 67 66 03 5e 10 add bx, [esi+0x10]
0000000000000011 48 03 04 25 ff ff 00 00 add rax, [0xffff]
0000000000000019 67 66 03 44 be f0 add ax, [esi+edi*4-0x10]
000000000000001f 4c 03 84 98 00 00 00 80 add r8, [rax+rbx*4-0x80000000]
0000000000000027 48 a1 00 00 00 00 00 80 00 00 mov rax, [0x800000000000]
Necromancing, như khá nhiều thời gian đã trôi qua.
Có, thực sự có một số.
Capstone.NET là khá nhiều tính năng hoàn chỉnh (libcapsone-port ARM, ARM64 (còn gọi là ARMv8/AArch64), M68K, Mips, PowerPC, Sparc, SystemZ, XCore, X86 (bao gồm X86_64).Nó hỗ trợ hầu hết các phần mở rộng CPU hiện đại):
https://github.com/9ee1/Capstone.NET
http://www.capstone-engine.org/features.html
(MIT giấy phép)
Sau đó, như đã đề cập, có SharpDisasm (libudis cổng):
https://sharpdisasm.codeplex.com/
(Giản thể BSD Giấy phép (BSD))
Tiếp theo là Reko (x86-Decompiler)
https://github.com/uxmal/reko
(GNU General Pu Giấy phép blic)
Có ElfSharp để đọc file ELF:
https://github.com/konrad-kruczynski/elfsharp
(MIT & LLVM Giấy phép)
Hoặc đọc các định dạng PE như thế này:
http://code.cheesydesign.com/?p=572
Hoặc sử dụng PETools:
https://github.com/jsok/PETools
(Giấy phép MIT)
Ngoài ra còn có một công cụ để kiểm tra file lib:
https://github.com/BlazingHeart/SymbolExplorer
Ngoài ra còn có một thư viện x86 lắp ráp:
https://code.google.com/p/managed-x86/
Và chức năng ELF băm
https://damieng.com/blog/2007/11/24/calculating-elf-32-in-c-and-net
Plus có một trang chuyên dụng tại wikibooks:
https://en.wikibooks.org/wiki/X86_Disassembly/Disassemblers_and_Decompilers
Ngoài ra còn có các snowman-decompiler, trong đó sử dụng Capstone:
https://github.com/yegord/snowman
- 1. Bất kỳ thư viện phân tách Java x86 linh hoạt hướng đối tượng nào?
- 2. Bất kỳ thư viện DSP C/C++ nào tốt?
- 3. Bất kỳ thư viện python dhcp nào?
- 4. Có bất kỳ Websocket C# nào triển khai tốt không?
- 5. Bất kỳ thư viện java VFS miễn phí nào?
- 6. SCTP: bất kỳ thư viện đa nền tảng nào?
- 7. Bạn có biết về bất kỳ thư viện OpenSSH nào cho Windows không?
- 8. Có bất kỳ thư viện GUI cao cấp, dễ cài đặt nào cho Common Lisp không?
- 9. Bất kỳ vấn đề nào với thư viện trộn có và không có std = C++ 0x
- 10. Bất kỳ vấn đề nào với thư viện System.Net.PeerToPeer?
- 11. Sử dụng clojure.math.numeric-tower hoặc bất kỳ thư viện nào
- 12. bất kỳ thư viện pdf417 nào cho Android SDK?
- 13. Bất kỳ thư viện nào tốt để đọc và ghi tệp csv?
- 14. Bất kỳ thư viện duyệt ảnh tốt nào cho Mục tiêu C?
- 15. có bất kỳ thư viện C# nào để nhận dạng đối tượng được đặt tên không?
- 16. Có bất kỳ khung và thư viện cụ thể nào của Scala đáng xem xét không?
- 17. Bất kỳ thư viện Java nào có xác nhận cú pháp SQL không?
- 18. Minecraft có sử dụng bất kỳ thư viện Java nguồn mở nào ngoài JDK không?
- 19. Có bất kỳ thư viện chuẩn nào cho các bộ lọc Bloomier chạy quanh không?
- 20. có bất kỳ nguồn chống mẫu tốt nào không?
- 21. là có bất kỳ thư viện mạng lưới scala nào với diễn viên mẫu
- 22. có thư viện nào để phân tích cú pháp địa chỉ ở Hoa Kỳ không?
- 23. Có bất kỳ thư viện hoặc mẫu cho chunking WCF không song công không?
- 24. Có thư viện mạng Java tốt không?
- 25. Có một thư viện Python tốt có thể phân tích cú pháp C++ không?
- 26. Bất kỳ thư viện java markdown nào có lợi cho cú pháp github?
- 27. Bất kỳ thư viện nào có sẵn để thực hiện mẫu LINQ over Entity Attribute?
- 28. Có bất kỳ tổng quan ổi nào không?
- 29. Có ai biết về bất kỳ hướng dẫn tốt nào cho Slick 2D lib không?
- 30. JavaScript nhận lớp yếu tố mà không cần bất kỳ thư viện nào
Native x86? hoặc IL? –
Gốc x86. IL rất dễ dàng ... :-) – panopticoncentral
[Reflector] (http://www.red-gate.com/products/reflector/) là bạn của bạn. – Vadim