SlideShare a Scribd company logo
1 of 17
Download to read offline
Trang 1
Các công cụ cần thiết cho quá trình Revere Engineering .NET
Tác giả: Levis Nickaster (http://ltops9.wordpress.com )
Các chương trình viết bằng .NET có cấu trúc khác với các native PE file, cho nên các công cụ debug/disassembler thong
thường không thể phát huy hết sức mạnh, mà muốn dịch ngược được các chương trình .NET và phân tích cấu trúc + mã
nguồn của chúng, không gì tốt hơn bằng việc sử dụng các chương trình chuyên dụng dành riêng cho .NET, tôi sẽ giới thiệu
với các bạn trong bài viết này.
Tôi sẽ tạm thời phân chia thành 2 nhóm chương trình chính sau đây:
- Nhóm Editor/Decompiler/Disassembler/Utilities: Nhóm này là tập hợp các công cụ giúp ta xem xét, phân tích cũng
như thay đổi cấu trúc và thong số của chương trình .NET. Kèm theo đó là một vài tiện ích nho nhỏ để phục vụ cho
quá trình dịch ngược chương trình được trở lên dễ dàng hơn
- Nhóm Unpacker/Deobfuscator/Detector: Nhóm này tập hợp các công cụ giúp chúng ta phát hiện và loại bỏ các lớp
bảo vệ của chương trình .NET. Hiện tại có rất nhiều các sản phẩm bảo vệ cho mã nguồn .NET để tránh việc dịch
ngược, đọc và phân tích code cho nên nhóm công cụ này cũng khá quan trọng.
OK, bây giờ tôi sẽ liệt kê các chương trình phổ biến trong 2 nhóm trên. Bắt đầu với nhóm 1 trước.
1. CFF Explorer
Thông tin và download: http://www.ntcore.com/exsuite.php
Đây là 1 chương trình rất đa năng nằm trong bộ Explore Suite của NTCore phát triển. Mặc dù đây chỉ là dự án ngoài lề (Side-
project) được viết bởi Daniel Pistelli, tuy nhiên các tính năng của nó được đánh giá rất cao và hữu ích. Chương trình là 1 PE
Editor đúng nghĩa với các tính năng sau:
 Process Viewer
 Drivers Viewer
 Windows Viewer
 PE and Memory Dumper
 Full support for PE32/64
 Special fields description and modification (.NET supported)
 PE Utilities
 PE Rebuilder (with Realigner, IT Binder, Reloc Remover, Strong Name Signature Remover, Image Base Changer)
 View and modification of .NET internal structures
 Resource Editor (full support for Windows Vista icons)
 Support in the Resource Editor for .NET resources (dumpable as well)
 Hex Editor
 Import Adder
 PE integrity checks
 Extension support
 Visual Studio Extensions Wizard
 Powerful scripting language
 Dependency Walker
 Quick Disassembler (x86, x64, MSIL)
 Name Unmangler
 Extension support
 File Scanner
 Directory Scanner
 Deep Scan method
 Recursive Scan method
 Multiple results
 Report generation
Trang 2
 Signatures Manager
 Signatures Updater
 Signatures Collisions Checker
 Signatures Retriever
(Vì đây đa phần là các thuật ngữ chuyên môn nên khi dịch ra tiếng Việt có thể không sát nghĩa, cho nên tôi để nguyên tiếng
Anh).
Đối với việc Reversing .NET thì các tính năng sau rất hữu ích:
 Special fields description and modification (.NET supported)
 PE Rebuilder (with Realigner, IT Binder, Reloc Remover, Strong Name Signature Remover, Image Base Changer)
 View and modification of .NET internal structures
 Support in the Resource Editor for .NET resources (dumpable as well)
 Hex Editor
 Quick Disassembler (x86, x64, MSIL)
 Dependency Walker
Đây cũng là chương trình đầu tiên hỗ trợ việc xem và thay đổi cấu trúc, thông số của .NET PE file, có thể thực hiện ngay cả
khi trong máy không cài .NET Framework. Ta cũng có thể mở rộng khả năng hoạt động của chương trình bằng cachs viết các
script cho chương trình tự động chạy, đó cũng là điểm mạnh rất đáng giá. Vậy nên, nếu bạn muốn thực hiện Reverse
Engineering .NET, đây là công cụ bạn cần phải có trong bộ “đồ nghề” của mình
+ Điểm cộng: Nhẹ, miễn phí, nhiều tính năng rất hữu ích, hỗ trợ hiệu quả .NET, khả năng mở rộng tốt
+ ĐIểm trừ: Không có
Trang 3
2. .NET Reflector
Thông tin và Download: http://www.red-gate.com/products/dotnet-development/reflector/
Nhắc đến .NET Reflector thì không phải là cái tên quá xa lạ đối với những ai đang nghiên cứu về .NET. Đây là công cụ phổ
biến nhất trong việc dịch ngược .NET. Có một decompile engine chất lượng, có nhiều plugin/addin hỗ trợ, tính năng hữu ích,
giao diện trực quan dễ sử dụng, có thể tích hợp vào trong Visual Studio, kèm theo đó là 1 “ông trùm” chống lung phía sau là
Red-Gate, không lạ lắm khi .NET Reflector càng ngày càng trở lên mạnh mẽ và phổ biến hơn. Tính năng dịch ngược của .NET
Reflector theo quan điểm cá nhân của tôi là rất tốt, có thể đưa về 90-95% code gốc, và có thể browse code không khác lắm
so với việc chúng ta đọc code trong Visual Studio. Tuy nhiên tôi vẫn thích các phiên bản cũ của .NET Reflector khi Lulz Roeiier
còn phát triển độc lập. Lúc đó .NET Reflector chạy rất nhẹ nhàng và chính xác, mặc dù không có nhiều tính năng hay ho như
.NET Reflector hiện hành, và quan trọng nhất là nó “miễn phí”. Red-Gate đã mua lại .NET Reflector và biến nó thành một
công cụ độc quyền của hang, và bán với giá cao. Tất nhiên là cracker / reverser không thích điều này, và họ đã phát triển các
công cụ thay thế khác với tính năng giống .NET Reflector và chạy nhẹ nhàng hơn rất nhiều (tôi sẽ giới thiệu một vài các công
cụ nổi bật khác ở phần dưới).
+ Điểm cộng: Mạnh, phổ biến, dễ sử dụng, nhiều addin, khả năng tích hợp tốt với Visual Studio, nhiều tính năng hữu ích
+ Điểm trừ: Nặng, mất phí, thiếu các tính năng chuyên dụng và nâng cao
3. Simple Assembly Explorer
Thông tin và download: https://sites.google.com/site/simpledotnet/simple-assembly-explorer
Đây là công cụ mà độ phổ biến của nó cũng ngang tầm với .NET Reflector. Thường được gọi tắt là SAE, một dự án mã nguồn
mở được viết bởi Wicky Hu. Chương trình cung cấp các tính năng sau:
- Assembler: call ilasm to assemble il file
Disassembler: call ildasm to disassemble assembly
Deobfuscator: de-obfuscate obfuscated assembly
Trang 4
Strong Name: remove strong name, sign assembly, add/remove assembly to/from GAC
PE Verify: call peverify to verify assemblies
- Class Editor: browse/view assembly classes, edit method instructions
Run Method: run static methods
Profiler: Trace function calls and parameters with SimpleProfiler
- Relector: plugin which call Reflector to browse selected assembly
ILMerge: plugin which call ilmerge to merge selected assemblies
Edit File: plugin which call your editor to view selected assembly
Plugin Sample: plugin sample
- Copy Info: copy information of selected assemblies to clipboard
Open Folder: open container folder
Delete File: delete selected file(s)
Đây là các tính năng rất mạnh và chuyên nghiệp mà hầu như không có trong .NET Reflector. Một điểm mạnh khác của
chương trình là có hỗ trợ sử dụng decompiler Engine của .NET Reflector hay ILSpy để đưa ra code dịch ngược dưới dạng các
ngôn ngữ bậc cao (C#,VB.NET….) bởi vì mặc định của chương trình là dịch ngược về mã IL. Nó cũng có thể dịch ngược rất
nhiều những file .NET mà .NET Reflector bó tay (ví dụ điển hình là các .NET bị obfuscated/packed)
Điểm yếu của chương trình là nó hơi khó sử dụng, và thích hợp với những người có nhiều kinh nghiệm hơn là những người
mới bắt đầu. Tuy nhiên nếu bạn hiểu và nắm rõ cách sử dụng của chương trình, thì đây là một chương trình tuyệt vời nhất
cho việc dịch ngược .NET
+ Điểm cộng: RẤT MẠNH, mã nguồn mở, nhẹ, miễn phí, nhiều tính năng chuyên nghiệp mà các công cụ khác không có, khả
năng mở rộng và tích hợp các công cụ khác
+ Điểm trừ: Khó sử dụng, đòi hỏi có kinh nghiệm
Trang 5
4. Telerik JustDecompile
JustDecomple của Telerik cũng là một công cụ chịu nhiều ảnh hưởng từ .NET Reflector, và được coi là sự thay thế tốt nhất
cho .NET Reflector. Bao gồm các tính năng chính sau:
- 10 times faster than competitors.
- Open API for everyone to create extensions.
- Supports .NET 2, 3.5, 4, 4.5, 4.5.1, WinRT Metadata, C#5, APPX and WinMD.
- Code becomes easily searchable with JustDecompile.
- Create a Visual Studio project from a decompiled assembly.
- JustDecompile integrates with JustCode and JustTrace.
- Switch easily between different methods and assemblies in one JustDecompile instance.
- Decompile referenced assemblies in a Visual Studio project.
- Save resources from assemblies.
- Bookmark usages in loaded assemblies.
- Export code directly from the command prompt.
Decompile an assembly after browsing to it in Windows Explorer.
Đây là một công cụ khá tốt cho việc dịch ngược .NET, được một doanh nghiệp phát triển cho nên được đầu tư khá tốt. Nó
bao gồm các tính năng cơ bản có trong .NET Reflector và có khả năng mở rộng tốt. Tuy nhiên vì mới được phát triển cho nên
chưa có quá nhiều sự nổi bật và tính năng khác biệt nên vẫn phải đứng sau cái bóng quá lớn của .NET Reflector. Trong tương
lai chắc chắn đây sẽ là một công cụ rất mạnh và hữu ích. Còn bây giờ, nó vẫn là một sự lựa chọn khá tốt cho việc thay thế
.NET Reflector vì hai công cụ này tính năng có nhiều điểm tương đồng và rất dễ sử dụng. Một vài điểm khác đáng chú ý ở
đây là hỗ trợ command line và khả năng export ra source code rất tuyệt. Về plugin thì lúc tôi sử dụng mới chỉ có 3 plugin.
+Điểm cộng: miễn phí, dễ sử dụng, nhiều tính năng hữu ích giống .NET Reflector, khả năng mở rộng tốt, khả năng decompile
tốt, nhẹ, được phát triển khá tốt
+ ĐIểm trừ: Mới, ít plugin hỗ trợ, thiếu các tính năng chuyên dụng nâng cao
Trang 6
5. ILDASM
ILDASM là tên viết tắt của IL DisASseMbler. Đây là 1 công cụ decompile các file .NET của chính Microsoft tạo ra, nằm cùng
trong bộ Visual Studio + Window SDK, có thể được gọi từ Visual Studio Command Prompt (nguồn: MSDN). Chức năng chính
là dịch ngược chương trình .NET và có thể chuyển về dạng IL, sau đó save lại dưới dạng txt file. Chúng ta có thể sửa code từ
file text này, và sau đó compile lại bằng một công cụ đi cùng với ILDASM là ILASM. ILDASM và ILASM (cũng nằm trong bộ
Visual Studio).
Đúng như tên gọi của nó, ILDASM chỉ đơn thuần là 1 công cụ Disassemble không hơn không kém, và nhiệm vụ của nó chỉ là
dịch ngược về mã IL, cho nên nó thiếu đi rất nhiều tính năng cần thiết như :code analysis, code search, multi-file
disassemble,…
ILDASM
+ Điểm cộng: Nhẹ, có sắn (nếu như có cài Visual Studio và Windows SDK), hiện thị code tốt, export code khá tốt
+Điểm trừ: Quá đơn điệu, thiếu nhiều tính năng cơ bản cũng như các tính năng mở rông, nâng cao
6. ILSpy
Thông tin và download: http://ilspy.net/
ILSpy là trình decompiler/Disassembler mã nguồn mở, được tạo ra nhằm mục đích thay thế cho .NET Reflector sau khi Red-
Gate mua lại .NET Reflector và biến nó thành phần mềm thương mại. ILSpy là 1 công cụ rất nhẹ, chỉ bao gồm các tính năng
cơ bản đủ dùng, đã có thể thay thế một phần nào .NET Reflector. Cá nhân tôi thích nhất ở phần mềm này là sự nhanh và nhẹ
của nó. Code sau khi dịch ngược khá chuẩn xác.
Tính năng:
 Assembly browsing
Trang 7
 IL Disassembly
 Support C# 5.0 "async"
 Decompilation to C#
o Supports lambdas and 'yield return'
o Shows XML documentation
 Decompilation to VB
 Saving of resources
 Save decompiled assembly as .csproj
 Search for types/methods/properties (substring)
 Hyperlink-based type/method/property navigation
 Base/Derived types navigation
 Navigation history
 BAML to XAML decompiler
 Save Assembly as C# Project
 Find usage of field/method
 Extensible via plugins (MEF)
 Assembly Lists
+ Điểm cộng: RẤT NHẸ, nhanh, đầy đủ tính năng cơ bản, mã nguồn mở, miễn phí
+Điểm trừ: Ít plugin, thiếu tính năng mở rộng nâng cao
7. Dotnet Resolver
Thông tin và download: http://dotnetresolver.eu5.org/
Đây là 1 công cụ do cộng động Reverser thiết kế ra, nhằm mục đích thay thế cho .NET Reflector và các chương trình
decompile khác, Vì được xây dựng bởi các Reverser có nhiều kinh nghiệm cho nên nó đáp ứng được khá đầy đủ các tính
năng cần thiết, vừa có sự trực quan và dễ sử dụng như .NET Reflector, vừa nhẹ và nhanh như ILSpy, vừa nhẹ và nhanh hơn
cả ILSpy, và cũng rất mạnh, gần như SAE. Cá nhân tôi đánh giá đây là 1 công cụ rất tốt, tuy nhiên công cụ này khá mới mẻ và
Trang 8
vẫn còn đang trong giai đoạn phát triển, và chúng ta có thể hi vọng sẽ có thêm nhiều tính năng mới trong tương lai. Phiên
bản hiện tại rất ổn định và đã sẵn sang để sử dụng.
Tính năng:
- Translate to C# and Visual Basic
- Editing MSIL Instructions
- Stable Assembly Reader
- Member Analyser
- Plug-in Support
+Điểm cộng: Nhanh, mạnh, khá đầy đủ tính năng, nhẹ, miễn phí, phát triển tốt, dễ sử dụng, khả năng mở rộng tốt
+Điểm trừ: Ít plugin
8. IDA
Thông tin và download: https://www.hex-rays.com/products/ida/
IDA thì quá nổi tiếng trong giới Reverser rồi. Đây là công cụ mạnh nhất trong việc dịch ngược và phân tích chương trình với
rất nhiều plugin và các tính năng chuyên nghiệp. Thế nhưng nhà phát triển IDA tập trung chủ yêu vào việc phát triển công cụ
này cho mục đích dịch ngược native PE file và các ứng dụng trên các nền tảng khác như iOS, ARM, Linux, Android,… Cho nên
các tính năng cho việc dịch ngược .NET chỉ dừng lại ở mức vừa đủ, không thế so sánh với các chương trình dịch ngược tôi đã
giới thiệu ở trên được. Và tôi cũng không sử dụng IDA quá nhiều cho việc dịch ngược các chương trình .NET, cho nên phần
Trang 9
này chỉ viết cho mục đích để tham khảo là chính, không thể đánh giá cụ thể. Bởi vì chỉ dựa trên khả năng dịch ngược .NET
của IDA mà đánh giá sức mạnh của chương trình này thì thật sự không chính xác chút nào.
9. WinDbg
Thông tin và download: http://msdn.microsoft.com/en-us/windows/hardware/hh852365.aspx
WinDbg là công cụ nằm trong bộ Debugging Tools của WDK (Windows Development Kit), do Microsoft tạo ra, Đây là 1 trình
debugger rất mạnh, có thể debug các ứng dụng ở user-mode lẫn kernel-mode. Nó cũng có thể debug các chương trình .NET.
Tuy nhiên để sử dụng được WinDbg đòi hỏi có nhiều kinh nghiệm về Reverse Engineering cũng như programming. Công cụ
này cũng không được sử dụng quá phổ biến khi dịch ngược các chương trình .NET, tôi thường thấy nó được sử dụng trong
việc phân tích hoạt động của các file .NET bị obfuscated cũng như tìm hiểu cơ chế hoạt động của các trình packer/protector
cho .NET. Nếu bạn đã tiến đến mức guru/expert – nôm na là “lão làng” rồi thì đây là công cụ không thể thiếu của bạn. Tôi
cũng chưa sử dụng WinDbg quá nhiều cho việc debug cho nên cũng chưa thể đưa ra những nhận định cá nhân, vì vậy phần
này chỉ viết để tham khảo + giới thiệu
.
Trang 10
10. Nhóm các công cụ tiện ích nhỏ (Utilities)
Nhóm các công cụ tiện ích là tập hợp các chương trình nho nhỏ để giúp cho việc dịch ngược .NET trở nên dễ dàng hơn, chứ
chúng không phải là các chương trình dịch ngược như các chương trình tôi đã giới thiệu ở trên. Số lượng các công cụ này
(theo những gì tôi biết) không quá nhiều nhưng chúng thật sự rất hữu ích Chúng ta có thể kể đến:
MSIL Opcode Table: Đây là 1 chương trình rất nhỏ cho ta xem các thông tin cơ bản của các mã IL. Đây có thể coi như một
dạng cheatsheet, vô cùng tiện lợi cho ta tra cứu. Có rất nhiều các mã IL, mỗi mã IL lại kèm theo những thông tin quan trọng
cho nên việc ghi nhớ tất cả là rất khó. Cho nên chúng ta RẤT CẦN đến công cụ này:
Dotnet Tracer: Một tiện ích nhỏ nhưng vô cùng đáng giá, theo tôi biết thì nó sẽ load chương trình .NET vào, sau đó hook
Jit-compiler và sẽ đưa ra các thông tin vô cùng hữu ích, đại loại như:
o Các module được load
o Thông tin về các method sẽ được compile bởi jit
o Các exception
o Các thread sẽ được chạy
Đây gần như là 1 chương trình debug cho .NET, để cho ta biết được cớ chế hoạt động của chương trình cần phân
tích. Để sử dụng hiệu quả công cụ này, bạn cần phải có kinh nghiệm nhất định về .NET và cơ chế hoạt động của .NET
framework cũng như jit compiler
Trang 11
.NET Method Parser
Đây là một công cụ nhỏ gọn giúp liệt kê, phân tích và đưa ra các thông tin về các method trong một chương trình
.NET (offset, name, type, flag, size,….).
Thế là đã xong phần về các công cụ Decompiler/Disassembler/Utilities, tôi sẽ tiếp tục với phần về các
Deobfuscator/Unpacker/Detector
Trang 12
1. De4dot
Thông tin và download: https://github.com/0xd4d/de4dot
De4dot là một công cụ miễn phí mã nguồn mở, có chức năng tự động thực hiện deobfuscate cho hầu hết các obfuscator phổ
biến trên thế giới. Công cụ này rất dễ sử dụng, phù hợp với cả newbie lần người có nhiều kinh nghiệm, và mạng lại kết quả
“trên cả tuyệt vời”. Đây là công cụ bạn CẦN PHẢI CÓ trong bộ đồ nghề của mình để giúp cho công việc Reverse Engineering
trở nên dễ dàng hơn. Tất nhiên bạn vẫn có thể deobfuscate thủ công, nhưng việc này mất nhiều thời gian và đòi hỏi bạn có
một đống kiến thức rất lớn về .NET cũng như debugging, thế nên với một công cụ giúp bạn tự động làm mọi thứ như thế
này, tôi đánh giá nó thật sự rất tốt. Bạn là người mới? Chỉ việc kéo thả. Bạn là người có nhiều kinh nghiệm? Có hàng tá
option cho bạn tha hồ sử dụng, đối với mỗi loại obfuscator. Và thêm nữa, đây là một ứng dụng mã nguồn mở, cho nên bạn
có thể tải mã nguồn của nó về, đọc, hiểu, cải tiến code và biên dịch để nó hoạt động theo ý bạn. Bạn có thể làm bất cứ điều
gì, quá tuyệt phải không?
Thật không quá khi nói de4dot là nỗi ác mộng của các nhà phát triển obfuscator. Có một vài nhà phát triển luôn theo dõi
de4dot, mỗi khi de4dot cập nhật lên phiên bản mới là họ lại lẳng lặng nghiên cứu và update luôn cho obfuscator của họ để
tránh khỏi de4dot.
2. DotnetDumper/ MegaDumper
Thông tin và download : Tuts4you forum (http://forum.tuts4you.com)
Phương pháp cơ bản và phổ biến nhất để unpack/deobfuscate các chương trình .NET là dump code/file từ memory.
MegaDumper (tên cũ là DotnetDumper) là một công cụ viết bởi CodeCracker của nhóm SND nhằm mục đích để thực hiện
công việc đó. Công cụ này cũng có mã nguồn mở, tuy nhiên mã nguồn này không public như de4dot mà được share trên các
trang RE nổi tiếng như tuts4you, Bl@ckStorm,... Lí do tôi đánh giá cao công cụ này bởi vì nó có chức năng anti-anti-dump rất
tốt, vượt qua được hầu hết các cơ chế antidump đã biết, và thêm nữa là công cụ này cũng rât nhẹ và dễ sử dụng, hiệu quả
và độ tùy biến cũng khá cao.
Trang 13
3. JitDumper
Thông tin và download: Bl@ckStorm Forum( http://board.b-at-s.info)
Cũng là dumper, nhưng cách hoạt động của JitDumper khác nhiều so với MegaDumper tôi đã nói ở trên.
MegaDumper thực hiện dump file trong khi file đó đang chạy (execution time), còn JitDumper, theo tôi tìm hiểu thì sẽ dump
code ngay trước khi JIT Compiler tiến hành chuyển code IL thành mã máy. Điều này thực sự hữu ích với các obfuscator áp
dụng phương pháp encrypt code và chỉ decrypt ra khi chương trình chạy. MegaDumper khi dump sẽ chỉ dump được chương
trình với code vẫn bị encrypt, còn JitDumper sẽ dump được chương trình với code đã được decrypt (bởi vì code được
decrypt trước, sau đó JITCompiler mới chuyển code được decrypt này thành mã máy, như thế thì chương trình mới có thể
chạy được).
Điệm hạn chế của JitDumper là hiện tại thì nó hơi bị “quá hạn” (cũ). Tuy nhiên chương trình vẫn hoạt động hết sức hiệu quả.
Chương trình này do yck1509 (nghe giang hồ đồn thổi là năm nay mới 19 tuổi :D)
Trang 14
4. Simple MSIL Decryptor
Thông tin và download: Tuts4you forum (http://forum.tuts4you.com)
Một công cụ khác được viết bởi CodeCracker, tính năng tượng tự JitDumper và có thêm nhiều tính năng mở rộng khác. Tôi
chưa dùng nhiều công cụ này nên cũng chưa hiểu rõ lắm về cách hoạt động của nó. Công cụ này bạn có thể down mã nguồn
trong forum tuts4you để về nghiên cứu và phát triển thêm theo ý mình.
5. Universal Fixer
Thông tin và download: Tuts4you forum (http://forum.tuts4you.com )
Universal Fixer là 1 tiện ích được viết bởi CodeCracker (tác giả của MegaDumper). Chương trình này có chức năng kiểm tra,
tìm kiếm và sửa các lỗi về cấu trúc của .NET File sau khi chúng được tạo ra bởi quá trình unpack/deobfuscate. Một vài
packer/deobfuscator/protector tiến hành phá hủy, làm sai lệch các thông số của file gốc, cho nên việc sửa chữa rất quan
trọng, để đảm bảo file sau khi unpack/deobfuscate có thể hoạt động bình thương, và có thể đưa vào phân tích trong các
decompiler/disassembler.
Trang 15
6. ExeinfoPE
Thông tin và download: https://www.facebook.com/pages/Exeinfo-Pe/157540614382356
exeinfoPE là 1 packer detector, có thể scan và phát hiện các packer/obfuscator/protector được sử dụng trong chương trình.
Hộ trợ cả native app và .NET app. Cá nhân tôi rất thích chương trình này bởi vì giao diện của nó khá đẹp, có thêm khung Hint
(để đưa ra một vài thông báo trợ giúp để có thể biết cách “xử” các packer/protector/obfuscator được sử dụng), công thêm
đó là các tính năng mở rộng khá hữu ích cho việc phân tích PE file. Tuy nhiên, có một điểm cần lưu ý là chương trình này
không support hoàn toàn việc nhận diện các obfuscator trong .NET, thế nên có thể sẽ không cho kết quả chính xác.
Trang 16
7. Detect It Easy (DiE)
Thông tin và download: http://ntinfo.biz/
DiE là một packer detector đang được phát triển rất ổn định, có nhiều tính năng hay ho, điều tôi thích nhất ở chương trình
này là nó support multi-platform. Bạn có thể download chương trình phù hợp để có thể chạy trên Windows, Mac, Linux.
Chương trình còn có cơ chế tạo Signature phải nói là “tuyệt vời”, khiến cho việc tạo signature, mở rộng khả năng detect của
chương trình không còn nhàm chán nữa mà bạn sẽ cảm thấy như mình đang được lập trình cho chương trình này hoạt động
vậy. Số lượng sign của chương trình này cũng khá lớn, có 1 vài sign support cho .NET, khả năng detect khá chính xác. Tuy
nhiên số lượng sign cho .NET còn rất hạn chế, không đầy đủ, Nhưng bạn hoàn toàn có thể tạo thêm các sign và bổ sung vào
để cải thiện hiệu suất của chương trình, rất thú vị
8. DNiD
Thông tin và download: N/A
DNiD là 1 detector/Scanner được phát triển dành riêng cho .NET, được phát triển bởi Rue (1 .NET reverser khá nổi tiếng), tuy
nhiên hiện tại chương trình này không còn được phát triển nữa, chỉ dùng lại ở v1.0, có nhiều protector/obfuscator mới mà
chương trình chưa nhận diện được. Nhưng với các obfuscator đã biết, chương trình có thể detect rất chính xác. Cá nhân tôi
cũng hay sử dụng chương trình này bởi vì nó là detector đầu tiên dành cho .NET, giống như PEiD trong PE file truyền thống,
tuy đã lỗi thời so với các chương trình mới hiện giờ nhưng vẫn có những giá trị nhất đinh.
Trang 17
9. ProtectionID
Thông tin và download: http://pid.gamecopyworld.com/
ProtectionID là một scanner rất đa năng, hỗ trợ cả detect cả native app và .NET app. Trong hình dưới các bạn có thể thấy
chương trình cung cấp rất nhiều thông tin khi tiến hành scan. ProtectionID được viết thuần tùy bằng ASM cho nên tốc độ
hoạt động của chương trình rất nhanh, khả năng detect của nó cũng khá chính xác.
10. Dotnet Obfuscator Detector
Thông tin và download: tuts4you forum (http://forum.tuts4you.com)
Dotnet Obfuscator Detector là 1 trình detector mới, được tạo bởi người bạn cũ của tôi trong REPT – LordCoder. Chương
trình này được viết dành riêng cho việc detect các chương trình .NET, và có khả năng nhận diện khá nhiều các
protector/obfuscator hiện hành. Chương trình này nhỏ gọn, hoạt động khá nhanh, xứng đáng để thay thế cho DNiD. Tuy
nhiên, có một điểm yếu đối với chương trình này là nếu một obfuscator nào đó áp dụng phương pháp Invalid Metadata thì
detector này sẽ trở nên vô dụng vì nó không thể scan được các thông số trong metadata nữa

More Related Content

What's hot

07 chương 5. lý thuyết số (2)
07  chương 5. lý thuyết số (2)07  chương 5. lý thuyết số (2)
07 chương 5. lý thuyết số (2)
Andy Nhân
 
Bai Thuc hanh DNS
Bai Thuc hanh DNSBai Thuc hanh DNS
Bai Thuc hanh DNS
np_thanh
 
Bai03 he thong tap tin fat
Bai03   he thong tap tin fatBai03   he thong tap tin fat
Bai03 he thong tap tin fat
Vũ Sang
 
Yêu cầu của người sử dụng
Yêu cầu của người sử dụngYêu cầu của người sử dụng
Yêu cầu của người sử dụng
Nguyen Tran
 
Giáo án an toàn và bảo mật thông tin.pdf
Giáo án an toàn và bảo mật thông tin.pdfGiáo án an toàn và bảo mật thông tin.pdf
Giáo án an toàn và bảo mật thông tin.pdf
Man_Ebook
 
Thuật toán Nhân Bình Phương - demo
Thuật toán Nhân Bình Phương - demoThuật toán Nhân Bình Phương - demo
Thuật toán Nhân Bình Phương - demo
Công Thắng Trương
 

What's hot (20)

Thuật toán mã hóa rsa
Thuật toán mã hóa rsaThuật toán mã hóa rsa
Thuật toán mã hóa rsa
 
07 chương 5. lý thuyết số (2)
07  chương 5. lý thuyết số (2)07  chương 5. lý thuyết số (2)
07 chương 5. lý thuyết số (2)
 
Tóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinderTóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinder
 
Bai Thuc hanh DNS
Bai Thuc hanh DNSBai Thuc hanh DNS
Bai Thuc hanh DNS
 
Bai03 he thong tap tin fat
Bai03   he thong tap tin fatBai03   he thong tap tin fat
Bai03 he thong tap tin fat
 
Bài 2: Phần mềm độc hại và các dạng tấn công sử dụng kỹ nghệ xã hội - Giáo tr...
Bài 2: Phần mềm độc hại và các dạng tấn công sử dụng kỹ nghệ xã hội - Giáo tr...Bài 2: Phần mềm độc hại và các dạng tấn công sử dụng kỹ nghệ xã hội - Giáo tr...
Bài 2: Phần mềm độc hại và các dạng tấn công sử dụng kỹ nghệ xã hội - Giáo tr...
 
Yêu cầu của người sử dụng
Yêu cầu của người sử dụngYêu cầu của người sử dụng
Yêu cầu của người sử dụng
 
HDH
HDHHDH
HDH
 
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
 
Mẫu báo cáo bài tập lớn
Mẫu báo cáo bài tập lớnMẫu báo cáo bài tập lớn
Mẫu báo cáo bài tập lớn
 
MATMA - Chuong2
MATMA - Chuong2MATMA - Chuong2
MATMA - Chuong2
 
Chuong 2. cnpm
Chuong 2. cnpmChuong 2. cnpm
Chuong 2. cnpm
 
Trí tuệ nhân tạo "Game cờ Caro"
Trí tuệ nhân tạo "Game cờ Caro"Trí tuệ nhân tạo "Game cờ Caro"
Trí tuệ nhân tạo "Game cờ Caro"
 
7. tìm hiểu hàm băm md5 và ứng dụng
7. tìm hiểu hàm băm md5 và ứng dụng7. tìm hiểu hàm băm md5 và ứng dụng
7. tìm hiểu hàm băm md5 và ứng dụng
 
Bài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mở
Bài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mởBài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mở
Bài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mở
 
Báo cáo UML hệ thống cho thuê nhà
Báo cáo UML hệ thống cho thuê nhàBáo cáo UML hệ thống cho thuê nhà
Báo cáo UML hệ thống cho thuê nhà
 
Chia subnetmask
Chia subnetmaskChia subnetmask
Chia subnetmask
 
Giáo án an toàn và bảo mật thông tin.pdf
Giáo án an toàn và bảo mật thông tin.pdfGiáo án an toàn và bảo mật thông tin.pdf
Giáo án an toàn và bảo mật thông tin.pdf
 
Thuật toán Nhân Bình Phương - demo
Thuật toán Nhân Bình Phương - demoThuật toán Nhân Bình Phương - demo
Thuật toán Nhân Bình Phương - demo
 
Đề thi môn công nghệ phần mềm
Đề thi môn công nghệ phần mềmĐề thi môn công nghệ phần mềm
Đề thi môn công nghệ phần mềm
 

Similar to Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)

Rational suite&rational rose enterprise
Rational suite&rational rose enterpriseRational suite&rational rose enterprise
Rational suite&rational rose enterprise
Nguyen Tran
 
Quan ly cau hinh pm
Quan ly cau hinh pmQuan ly cau hinh pm
Quan ly cau hinh pm
Nguyen Tran
 
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
DuongDo35
 

Similar to Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ) (20)

Mau slide
Mau slideMau slide
Mau slide
 
Chuong 1
Chuong 1Chuong 1
Chuong 1
 
Asp.net 3.5 _1
Asp.net 3.5 _1Asp.net 3.5 _1
Asp.net 3.5 _1
 
Reverse Engineering .NET - Advanced Patching, Playing with IL
Reverse Engineering .NET - Advanced Patching, Playing with ILReverse Engineering .NET - Advanced Patching, Playing with IL
Reverse Engineering .NET - Advanced Patching, Playing with IL
 
Bai giangvb.net
Bai giangvb.netBai giangvb.net
Bai giangvb.net
 
Cac bai tap .net
Cac bai tap .netCac bai tap .net
Cac bai tap .net
 
Clear case
Clear caseClear case
Clear case
 
Bai giangvb.net
Bai giangvb.netBai giangvb.net
Bai giangvb.net
 
Tùy biến Confuser
Tùy biến ConfuserTùy biến Confuser
Tùy biến Confuser
 
Bien dich nhan linux
Bien dich nhan linuxBien dich nhan linux
Bien dich nhan linux
 
Rational suite&rational rose enterprise
Rational suite&rational rose enterpriseRational suite&rational rose enterprise
Rational suite&rational rose enterprise
 
Sinh vienit.net --57669587-c-dhkh-hue
Sinh vienit.net --57669587-c-dhkh-hueSinh vienit.net --57669587-c-dhkh-hue
Sinh vienit.net --57669587-c-dhkh-hue
 
Quan ly cau hinh pm
Quan ly cau hinh pmQuan ly cau hinh pm
Quan ly cau hinh pm
 
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_uml
 
Phan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umlPhan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng uml
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_uml
 
Hdsd eclipse
Hdsd eclipseHdsd eclipse
Hdsd eclipse
 
Bạn cần chuẩn bị gì khi đi phỏng vấn vị trí DevOps?
Bạn cần chuẩn bị gì khi đi phỏng vấn vị trí DevOps?Bạn cần chuẩn bị gì khi đi phỏng vấn vị trí DevOps?
Bạn cần chuẩn bị gì khi đi phỏng vấn vị trí DevOps?
 
Câu hỏi phỏng vấn.pdf
Câu hỏi phỏng vấn.pdfCâu hỏi phỏng vấn.pdf
Câu hỏi phỏng vấn.pdf
 

More from Levis Nickaster

More from Levis Nickaster (9)

Xây dựng nhóm phân tích mã độc
Xây dựng nhóm phân tích mã độcXây dựng nhóm phân tích mã độc
Xây dựng nhóm phân tích mã độc
 
Reverse Engineering in Linux - The tools showcase
Reverse Engineering in Linux - The tools showcaseReverse Engineering in Linux - The tools showcase
Reverse Engineering in Linux - The tools showcase
 
McAfee Advance Theats Defense
McAfee Advance Theats DefenseMcAfee Advance Theats Defense
McAfee Advance Theats Defense
 
Phân tích ConfuserEX - Invalid Metadata (bài dịch)
Phân tích ConfuserEX - Invalid Metadata (bài dịch)Phân tích ConfuserEX - Invalid Metadata (bài dịch)
Phân tích ConfuserEX - Invalid Metadata (bài dịch)
 
Phân tích Confuser 1.9.0.0 - Constant Protection - Bản dịch
Phân tích Confuser 1.9.0.0 - Constant Protection - Bản dịchPhân tích Confuser 1.9.0.0 - Constant Protection - Bản dịch
Phân tích Confuser 1.9.0.0 - Constant Protection - Bản dịch
 
Phân tích Confuser 1.9.0.0 - method proxy confusion - Bản dịch
Phân tích Confuser 1.9.0.0 - method proxy confusion - Bản dịchPhân tích Confuser 1.9.0.0 - method proxy confusion - Bản dịch
Phân tích Confuser 1.9.0.0 - method proxy confusion - Bản dịch
 
Hướng dẫn tạo Loader trong .NET - bản dịch
Hướng dẫn tạo Loader trong .NET - bản dịchHướng dẫn tạo Loader trong .NET - bản dịch
Hướng dẫn tạo Loader trong .NET - bản dịch
 
Decrypt các MSIL methods một cách thử công - Bài dịch
Decrypt các MSIL methods một cách thử công - Bài dịchDecrypt các MSIL methods một cách thử công - Bài dịch
Decrypt các MSIL methods một cách thử công - Bài dịch
 
Hướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịch
Hướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịchHướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịch
Hướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịch
 

Recently uploaded

Recently uploaded (20)

BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
 
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢIPHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
 
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgspowerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
 
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 

Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)

  • 1. Trang 1 Các công cụ cần thiết cho quá trình Revere Engineering .NET Tác giả: Levis Nickaster (http://ltops9.wordpress.com ) Các chương trình viết bằng .NET có cấu trúc khác với các native PE file, cho nên các công cụ debug/disassembler thong thường không thể phát huy hết sức mạnh, mà muốn dịch ngược được các chương trình .NET và phân tích cấu trúc + mã nguồn của chúng, không gì tốt hơn bằng việc sử dụng các chương trình chuyên dụng dành riêng cho .NET, tôi sẽ giới thiệu với các bạn trong bài viết này. Tôi sẽ tạm thời phân chia thành 2 nhóm chương trình chính sau đây: - Nhóm Editor/Decompiler/Disassembler/Utilities: Nhóm này là tập hợp các công cụ giúp ta xem xét, phân tích cũng như thay đổi cấu trúc và thong số của chương trình .NET. Kèm theo đó là một vài tiện ích nho nhỏ để phục vụ cho quá trình dịch ngược chương trình được trở lên dễ dàng hơn - Nhóm Unpacker/Deobfuscator/Detector: Nhóm này tập hợp các công cụ giúp chúng ta phát hiện và loại bỏ các lớp bảo vệ của chương trình .NET. Hiện tại có rất nhiều các sản phẩm bảo vệ cho mã nguồn .NET để tránh việc dịch ngược, đọc và phân tích code cho nên nhóm công cụ này cũng khá quan trọng. OK, bây giờ tôi sẽ liệt kê các chương trình phổ biến trong 2 nhóm trên. Bắt đầu với nhóm 1 trước. 1. CFF Explorer Thông tin và download: http://www.ntcore.com/exsuite.php Đây là 1 chương trình rất đa năng nằm trong bộ Explore Suite của NTCore phát triển. Mặc dù đây chỉ là dự án ngoài lề (Side- project) được viết bởi Daniel Pistelli, tuy nhiên các tính năng của nó được đánh giá rất cao và hữu ích. Chương trình là 1 PE Editor đúng nghĩa với các tính năng sau:  Process Viewer  Drivers Viewer  Windows Viewer  PE and Memory Dumper  Full support for PE32/64  Special fields description and modification (.NET supported)  PE Utilities  PE Rebuilder (with Realigner, IT Binder, Reloc Remover, Strong Name Signature Remover, Image Base Changer)  View and modification of .NET internal structures  Resource Editor (full support for Windows Vista icons)  Support in the Resource Editor for .NET resources (dumpable as well)  Hex Editor  Import Adder  PE integrity checks  Extension support  Visual Studio Extensions Wizard  Powerful scripting language  Dependency Walker  Quick Disassembler (x86, x64, MSIL)  Name Unmangler  Extension support  File Scanner  Directory Scanner  Deep Scan method  Recursive Scan method  Multiple results  Report generation
  • 2. Trang 2  Signatures Manager  Signatures Updater  Signatures Collisions Checker  Signatures Retriever (Vì đây đa phần là các thuật ngữ chuyên môn nên khi dịch ra tiếng Việt có thể không sát nghĩa, cho nên tôi để nguyên tiếng Anh). Đối với việc Reversing .NET thì các tính năng sau rất hữu ích:  Special fields description and modification (.NET supported)  PE Rebuilder (with Realigner, IT Binder, Reloc Remover, Strong Name Signature Remover, Image Base Changer)  View and modification of .NET internal structures  Support in the Resource Editor for .NET resources (dumpable as well)  Hex Editor  Quick Disassembler (x86, x64, MSIL)  Dependency Walker Đây cũng là chương trình đầu tiên hỗ trợ việc xem và thay đổi cấu trúc, thông số của .NET PE file, có thể thực hiện ngay cả khi trong máy không cài .NET Framework. Ta cũng có thể mở rộng khả năng hoạt động của chương trình bằng cachs viết các script cho chương trình tự động chạy, đó cũng là điểm mạnh rất đáng giá. Vậy nên, nếu bạn muốn thực hiện Reverse Engineering .NET, đây là công cụ bạn cần phải có trong bộ “đồ nghề” của mình + Điểm cộng: Nhẹ, miễn phí, nhiều tính năng rất hữu ích, hỗ trợ hiệu quả .NET, khả năng mở rộng tốt + ĐIểm trừ: Không có
  • 3. Trang 3 2. .NET Reflector Thông tin và Download: http://www.red-gate.com/products/dotnet-development/reflector/ Nhắc đến .NET Reflector thì không phải là cái tên quá xa lạ đối với những ai đang nghiên cứu về .NET. Đây là công cụ phổ biến nhất trong việc dịch ngược .NET. Có một decompile engine chất lượng, có nhiều plugin/addin hỗ trợ, tính năng hữu ích, giao diện trực quan dễ sử dụng, có thể tích hợp vào trong Visual Studio, kèm theo đó là 1 “ông trùm” chống lung phía sau là Red-Gate, không lạ lắm khi .NET Reflector càng ngày càng trở lên mạnh mẽ và phổ biến hơn. Tính năng dịch ngược của .NET Reflector theo quan điểm cá nhân của tôi là rất tốt, có thể đưa về 90-95% code gốc, và có thể browse code không khác lắm so với việc chúng ta đọc code trong Visual Studio. Tuy nhiên tôi vẫn thích các phiên bản cũ của .NET Reflector khi Lulz Roeiier còn phát triển độc lập. Lúc đó .NET Reflector chạy rất nhẹ nhàng và chính xác, mặc dù không có nhiều tính năng hay ho như .NET Reflector hiện hành, và quan trọng nhất là nó “miễn phí”. Red-Gate đã mua lại .NET Reflector và biến nó thành một công cụ độc quyền của hang, và bán với giá cao. Tất nhiên là cracker / reverser không thích điều này, và họ đã phát triển các công cụ thay thế khác với tính năng giống .NET Reflector và chạy nhẹ nhàng hơn rất nhiều (tôi sẽ giới thiệu một vài các công cụ nổi bật khác ở phần dưới). + Điểm cộng: Mạnh, phổ biến, dễ sử dụng, nhiều addin, khả năng tích hợp tốt với Visual Studio, nhiều tính năng hữu ích + Điểm trừ: Nặng, mất phí, thiếu các tính năng chuyên dụng và nâng cao 3. Simple Assembly Explorer Thông tin và download: https://sites.google.com/site/simpledotnet/simple-assembly-explorer Đây là công cụ mà độ phổ biến của nó cũng ngang tầm với .NET Reflector. Thường được gọi tắt là SAE, một dự án mã nguồn mở được viết bởi Wicky Hu. Chương trình cung cấp các tính năng sau: - Assembler: call ilasm to assemble il file Disassembler: call ildasm to disassemble assembly Deobfuscator: de-obfuscate obfuscated assembly
  • 4. Trang 4 Strong Name: remove strong name, sign assembly, add/remove assembly to/from GAC PE Verify: call peverify to verify assemblies - Class Editor: browse/view assembly classes, edit method instructions Run Method: run static methods Profiler: Trace function calls and parameters with SimpleProfiler - Relector: plugin which call Reflector to browse selected assembly ILMerge: plugin which call ilmerge to merge selected assemblies Edit File: plugin which call your editor to view selected assembly Plugin Sample: plugin sample - Copy Info: copy information of selected assemblies to clipboard Open Folder: open container folder Delete File: delete selected file(s) Đây là các tính năng rất mạnh và chuyên nghiệp mà hầu như không có trong .NET Reflector. Một điểm mạnh khác của chương trình là có hỗ trợ sử dụng decompiler Engine của .NET Reflector hay ILSpy để đưa ra code dịch ngược dưới dạng các ngôn ngữ bậc cao (C#,VB.NET….) bởi vì mặc định của chương trình là dịch ngược về mã IL. Nó cũng có thể dịch ngược rất nhiều những file .NET mà .NET Reflector bó tay (ví dụ điển hình là các .NET bị obfuscated/packed) Điểm yếu của chương trình là nó hơi khó sử dụng, và thích hợp với những người có nhiều kinh nghiệm hơn là những người mới bắt đầu. Tuy nhiên nếu bạn hiểu và nắm rõ cách sử dụng của chương trình, thì đây là một chương trình tuyệt vời nhất cho việc dịch ngược .NET + Điểm cộng: RẤT MẠNH, mã nguồn mở, nhẹ, miễn phí, nhiều tính năng chuyên nghiệp mà các công cụ khác không có, khả năng mở rộng và tích hợp các công cụ khác + Điểm trừ: Khó sử dụng, đòi hỏi có kinh nghiệm
  • 5. Trang 5 4. Telerik JustDecompile JustDecomple của Telerik cũng là một công cụ chịu nhiều ảnh hưởng từ .NET Reflector, và được coi là sự thay thế tốt nhất cho .NET Reflector. Bao gồm các tính năng chính sau: - 10 times faster than competitors. - Open API for everyone to create extensions. - Supports .NET 2, 3.5, 4, 4.5, 4.5.1, WinRT Metadata, C#5, APPX and WinMD. - Code becomes easily searchable with JustDecompile. - Create a Visual Studio project from a decompiled assembly. - JustDecompile integrates with JustCode and JustTrace. - Switch easily between different methods and assemblies in one JustDecompile instance. - Decompile referenced assemblies in a Visual Studio project. - Save resources from assemblies. - Bookmark usages in loaded assemblies. - Export code directly from the command prompt. Decompile an assembly after browsing to it in Windows Explorer. Đây là một công cụ khá tốt cho việc dịch ngược .NET, được một doanh nghiệp phát triển cho nên được đầu tư khá tốt. Nó bao gồm các tính năng cơ bản có trong .NET Reflector và có khả năng mở rộng tốt. Tuy nhiên vì mới được phát triển cho nên chưa có quá nhiều sự nổi bật và tính năng khác biệt nên vẫn phải đứng sau cái bóng quá lớn của .NET Reflector. Trong tương lai chắc chắn đây sẽ là một công cụ rất mạnh và hữu ích. Còn bây giờ, nó vẫn là một sự lựa chọn khá tốt cho việc thay thế .NET Reflector vì hai công cụ này tính năng có nhiều điểm tương đồng và rất dễ sử dụng. Một vài điểm khác đáng chú ý ở đây là hỗ trợ command line và khả năng export ra source code rất tuyệt. Về plugin thì lúc tôi sử dụng mới chỉ có 3 plugin. +Điểm cộng: miễn phí, dễ sử dụng, nhiều tính năng hữu ích giống .NET Reflector, khả năng mở rộng tốt, khả năng decompile tốt, nhẹ, được phát triển khá tốt + ĐIểm trừ: Mới, ít plugin hỗ trợ, thiếu các tính năng chuyên dụng nâng cao
  • 6. Trang 6 5. ILDASM ILDASM là tên viết tắt của IL DisASseMbler. Đây là 1 công cụ decompile các file .NET của chính Microsoft tạo ra, nằm cùng trong bộ Visual Studio + Window SDK, có thể được gọi từ Visual Studio Command Prompt (nguồn: MSDN). Chức năng chính là dịch ngược chương trình .NET và có thể chuyển về dạng IL, sau đó save lại dưới dạng txt file. Chúng ta có thể sửa code từ file text này, và sau đó compile lại bằng một công cụ đi cùng với ILDASM là ILASM. ILDASM và ILASM (cũng nằm trong bộ Visual Studio). Đúng như tên gọi của nó, ILDASM chỉ đơn thuần là 1 công cụ Disassemble không hơn không kém, và nhiệm vụ của nó chỉ là dịch ngược về mã IL, cho nên nó thiếu đi rất nhiều tính năng cần thiết như :code analysis, code search, multi-file disassemble,… ILDASM + Điểm cộng: Nhẹ, có sắn (nếu như có cài Visual Studio và Windows SDK), hiện thị code tốt, export code khá tốt +Điểm trừ: Quá đơn điệu, thiếu nhiều tính năng cơ bản cũng như các tính năng mở rông, nâng cao 6. ILSpy Thông tin và download: http://ilspy.net/ ILSpy là trình decompiler/Disassembler mã nguồn mở, được tạo ra nhằm mục đích thay thế cho .NET Reflector sau khi Red- Gate mua lại .NET Reflector và biến nó thành phần mềm thương mại. ILSpy là 1 công cụ rất nhẹ, chỉ bao gồm các tính năng cơ bản đủ dùng, đã có thể thay thế một phần nào .NET Reflector. Cá nhân tôi thích nhất ở phần mềm này là sự nhanh và nhẹ của nó. Code sau khi dịch ngược khá chuẩn xác. Tính năng:  Assembly browsing
  • 7. Trang 7  IL Disassembly  Support C# 5.0 "async"  Decompilation to C# o Supports lambdas and 'yield return' o Shows XML documentation  Decompilation to VB  Saving of resources  Save decompiled assembly as .csproj  Search for types/methods/properties (substring)  Hyperlink-based type/method/property navigation  Base/Derived types navigation  Navigation history  BAML to XAML decompiler  Save Assembly as C# Project  Find usage of field/method  Extensible via plugins (MEF)  Assembly Lists + Điểm cộng: RẤT NHẸ, nhanh, đầy đủ tính năng cơ bản, mã nguồn mở, miễn phí +Điểm trừ: Ít plugin, thiếu tính năng mở rộng nâng cao 7. Dotnet Resolver Thông tin và download: http://dotnetresolver.eu5.org/ Đây là 1 công cụ do cộng động Reverser thiết kế ra, nhằm mục đích thay thế cho .NET Reflector và các chương trình decompile khác, Vì được xây dựng bởi các Reverser có nhiều kinh nghiệm cho nên nó đáp ứng được khá đầy đủ các tính năng cần thiết, vừa có sự trực quan và dễ sử dụng như .NET Reflector, vừa nhẹ và nhanh như ILSpy, vừa nhẹ và nhanh hơn cả ILSpy, và cũng rất mạnh, gần như SAE. Cá nhân tôi đánh giá đây là 1 công cụ rất tốt, tuy nhiên công cụ này khá mới mẻ và
  • 8. Trang 8 vẫn còn đang trong giai đoạn phát triển, và chúng ta có thể hi vọng sẽ có thêm nhiều tính năng mới trong tương lai. Phiên bản hiện tại rất ổn định và đã sẵn sang để sử dụng. Tính năng: - Translate to C# and Visual Basic - Editing MSIL Instructions - Stable Assembly Reader - Member Analyser - Plug-in Support +Điểm cộng: Nhanh, mạnh, khá đầy đủ tính năng, nhẹ, miễn phí, phát triển tốt, dễ sử dụng, khả năng mở rộng tốt +Điểm trừ: Ít plugin 8. IDA Thông tin và download: https://www.hex-rays.com/products/ida/ IDA thì quá nổi tiếng trong giới Reverser rồi. Đây là công cụ mạnh nhất trong việc dịch ngược và phân tích chương trình với rất nhiều plugin và các tính năng chuyên nghiệp. Thế nhưng nhà phát triển IDA tập trung chủ yêu vào việc phát triển công cụ này cho mục đích dịch ngược native PE file và các ứng dụng trên các nền tảng khác như iOS, ARM, Linux, Android,… Cho nên các tính năng cho việc dịch ngược .NET chỉ dừng lại ở mức vừa đủ, không thế so sánh với các chương trình dịch ngược tôi đã giới thiệu ở trên được. Và tôi cũng không sử dụng IDA quá nhiều cho việc dịch ngược các chương trình .NET, cho nên phần
  • 9. Trang 9 này chỉ viết cho mục đích để tham khảo là chính, không thể đánh giá cụ thể. Bởi vì chỉ dựa trên khả năng dịch ngược .NET của IDA mà đánh giá sức mạnh của chương trình này thì thật sự không chính xác chút nào. 9. WinDbg Thông tin và download: http://msdn.microsoft.com/en-us/windows/hardware/hh852365.aspx WinDbg là công cụ nằm trong bộ Debugging Tools của WDK (Windows Development Kit), do Microsoft tạo ra, Đây là 1 trình debugger rất mạnh, có thể debug các ứng dụng ở user-mode lẫn kernel-mode. Nó cũng có thể debug các chương trình .NET. Tuy nhiên để sử dụng được WinDbg đòi hỏi có nhiều kinh nghiệm về Reverse Engineering cũng như programming. Công cụ này cũng không được sử dụng quá phổ biến khi dịch ngược các chương trình .NET, tôi thường thấy nó được sử dụng trong việc phân tích hoạt động của các file .NET bị obfuscated cũng như tìm hiểu cơ chế hoạt động của các trình packer/protector cho .NET. Nếu bạn đã tiến đến mức guru/expert – nôm na là “lão làng” rồi thì đây là công cụ không thể thiếu của bạn. Tôi cũng chưa sử dụng WinDbg quá nhiều cho việc debug cho nên cũng chưa thể đưa ra những nhận định cá nhân, vì vậy phần này chỉ viết để tham khảo + giới thiệu .
  • 10. Trang 10 10. Nhóm các công cụ tiện ích nhỏ (Utilities) Nhóm các công cụ tiện ích là tập hợp các chương trình nho nhỏ để giúp cho việc dịch ngược .NET trở nên dễ dàng hơn, chứ chúng không phải là các chương trình dịch ngược như các chương trình tôi đã giới thiệu ở trên. Số lượng các công cụ này (theo những gì tôi biết) không quá nhiều nhưng chúng thật sự rất hữu ích Chúng ta có thể kể đến: MSIL Opcode Table: Đây là 1 chương trình rất nhỏ cho ta xem các thông tin cơ bản của các mã IL. Đây có thể coi như một dạng cheatsheet, vô cùng tiện lợi cho ta tra cứu. Có rất nhiều các mã IL, mỗi mã IL lại kèm theo những thông tin quan trọng cho nên việc ghi nhớ tất cả là rất khó. Cho nên chúng ta RẤT CẦN đến công cụ này: Dotnet Tracer: Một tiện ích nhỏ nhưng vô cùng đáng giá, theo tôi biết thì nó sẽ load chương trình .NET vào, sau đó hook Jit-compiler và sẽ đưa ra các thông tin vô cùng hữu ích, đại loại như: o Các module được load o Thông tin về các method sẽ được compile bởi jit o Các exception o Các thread sẽ được chạy Đây gần như là 1 chương trình debug cho .NET, để cho ta biết được cớ chế hoạt động của chương trình cần phân tích. Để sử dụng hiệu quả công cụ này, bạn cần phải có kinh nghiệm nhất định về .NET và cơ chế hoạt động của .NET framework cũng như jit compiler
  • 11. Trang 11 .NET Method Parser Đây là một công cụ nhỏ gọn giúp liệt kê, phân tích và đưa ra các thông tin về các method trong một chương trình .NET (offset, name, type, flag, size,….). Thế là đã xong phần về các công cụ Decompiler/Disassembler/Utilities, tôi sẽ tiếp tục với phần về các Deobfuscator/Unpacker/Detector
  • 12. Trang 12 1. De4dot Thông tin và download: https://github.com/0xd4d/de4dot De4dot là một công cụ miễn phí mã nguồn mở, có chức năng tự động thực hiện deobfuscate cho hầu hết các obfuscator phổ biến trên thế giới. Công cụ này rất dễ sử dụng, phù hợp với cả newbie lần người có nhiều kinh nghiệm, và mạng lại kết quả “trên cả tuyệt vời”. Đây là công cụ bạn CẦN PHẢI CÓ trong bộ đồ nghề của mình để giúp cho công việc Reverse Engineering trở nên dễ dàng hơn. Tất nhiên bạn vẫn có thể deobfuscate thủ công, nhưng việc này mất nhiều thời gian và đòi hỏi bạn có một đống kiến thức rất lớn về .NET cũng như debugging, thế nên với một công cụ giúp bạn tự động làm mọi thứ như thế này, tôi đánh giá nó thật sự rất tốt. Bạn là người mới? Chỉ việc kéo thả. Bạn là người có nhiều kinh nghiệm? Có hàng tá option cho bạn tha hồ sử dụng, đối với mỗi loại obfuscator. Và thêm nữa, đây là một ứng dụng mã nguồn mở, cho nên bạn có thể tải mã nguồn của nó về, đọc, hiểu, cải tiến code và biên dịch để nó hoạt động theo ý bạn. Bạn có thể làm bất cứ điều gì, quá tuyệt phải không? Thật không quá khi nói de4dot là nỗi ác mộng của các nhà phát triển obfuscator. Có một vài nhà phát triển luôn theo dõi de4dot, mỗi khi de4dot cập nhật lên phiên bản mới là họ lại lẳng lặng nghiên cứu và update luôn cho obfuscator của họ để tránh khỏi de4dot. 2. DotnetDumper/ MegaDumper Thông tin và download : Tuts4you forum (http://forum.tuts4you.com) Phương pháp cơ bản và phổ biến nhất để unpack/deobfuscate các chương trình .NET là dump code/file từ memory. MegaDumper (tên cũ là DotnetDumper) là một công cụ viết bởi CodeCracker của nhóm SND nhằm mục đích để thực hiện công việc đó. Công cụ này cũng có mã nguồn mở, tuy nhiên mã nguồn này không public như de4dot mà được share trên các trang RE nổi tiếng như tuts4you, Bl@ckStorm,... Lí do tôi đánh giá cao công cụ này bởi vì nó có chức năng anti-anti-dump rất tốt, vượt qua được hầu hết các cơ chế antidump đã biết, và thêm nữa là công cụ này cũng rât nhẹ và dễ sử dụng, hiệu quả và độ tùy biến cũng khá cao.
  • 13. Trang 13 3. JitDumper Thông tin và download: Bl@ckStorm Forum( http://board.b-at-s.info) Cũng là dumper, nhưng cách hoạt động của JitDumper khác nhiều so với MegaDumper tôi đã nói ở trên. MegaDumper thực hiện dump file trong khi file đó đang chạy (execution time), còn JitDumper, theo tôi tìm hiểu thì sẽ dump code ngay trước khi JIT Compiler tiến hành chuyển code IL thành mã máy. Điều này thực sự hữu ích với các obfuscator áp dụng phương pháp encrypt code và chỉ decrypt ra khi chương trình chạy. MegaDumper khi dump sẽ chỉ dump được chương trình với code vẫn bị encrypt, còn JitDumper sẽ dump được chương trình với code đã được decrypt (bởi vì code được decrypt trước, sau đó JITCompiler mới chuyển code được decrypt này thành mã máy, như thế thì chương trình mới có thể chạy được). Điệm hạn chế của JitDumper là hiện tại thì nó hơi bị “quá hạn” (cũ). Tuy nhiên chương trình vẫn hoạt động hết sức hiệu quả. Chương trình này do yck1509 (nghe giang hồ đồn thổi là năm nay mới 19 tuổi :D)
  • 14. Trang 14 4. Simple MSIL Decryptor Thông tin và download: Tuts4you forum (http://forum.tuts4you.com) Một công cụ khác được viết bởi CodeCracker, tính năng tượng tự JitDumper và có thêm nhiều tính năng mở rộng khác. Tôi chưa dùng nhiều công cụ này nên cũng chưa hiểu rõ lắm về cách hoạt động của nó. Công cụ này bạn có thể down mã nguồn trong forum tuts4you để về nghiên cứu và phát triển thêm theo ý mình. 5. Universal Fixer Thông tin và download: Tuts4you forum (http://forum.tuts4you.com ) Universal Fixer là 1 tiện ích được viết bởi CodeCracker (tác giả của MegaDumper). Chương trình này có chức năng kiểm tra, tìm kiếm và sửa các lỗi về cấu trúc của .NET File sau khi chúng được tạo ra bởi quá trình unpack/deobfuscate. Một vài packer/deobfuscator/protector tiến hành phá hủy, làm sai lệch các thông số của file gốc, cho nên việc sửa chữa rất quan trọng, để đảm bảo file sau khi unpack/deobfuscate có thể hoạt động bình thương, và có thể đưa vào phân tích trong các decompiler/disassembler.
  • 15. Trang 15 6. ExeinfoPE Thông tin và download: https://www.facebook.com/pages/Exeinfo-Pe/157540614382356 exeinfoPE là 1 packer detector, có thể scan và phát hiện các packer/obfuscator/protector được sử dụng trong chương trình. Hộ trợ cả native app và .NET app. Cá nhân tôi rất thích chương trình này bởi vì giao diện của nó khá đẹp, có thêm khung Hint (để đưa ra một vài thông báo trợ giúp để có thể biết cách “xử” các packer/protector/obfuscator được sử dụng), công thêm đó là các tính năng mở rộng khá hữu ích cho việc phân tích PE file. Tuy nhiên, có một điểm cần lưu ý là chương trình này không support hoàn toàn việc nhận diện các obfuscator trong .NET, thế nên có thể sẽ không cho kết quả chính xác.
  • 16. Trang 16 7. Detect It Easy (DiE) Thông tin và download: http://ntinfo.biz/ DiE là một packer detector đang được phát triển rất ổn định, có nhiều tính năng hay ho, điều tôi thích nhất ở chương trình này là nó support multi-platform. Bạn có thể download chương trình phù hợp để có thể chạy trên Windows, Mac, Linux. Chương trình còn có cơ chế tạo Signature phải nói là “tuyệt vời”, khiến cho việc tạo signature, mở rộng khả năng detect của chương trình không còn nhàm chán nữa mà bạn sẽ cảm thấy như mình đang được lập trình cho chương trình này hoạt động vậy. Số lượng sign của chương trình này cũng khá lớn, có 1 vài sign support cho .NET, khả năng detect khá chính xác. Tuy nhiên số lượng sign cho .NET còn rất hạn chế, không đầy đủ, Nhưng bạn hoàn toàn có thể tạo thêm các sign và bổ sung vào để cải thiện hiệu suất của chương trình, rất thú vị 8. DNiD Thông tin và download: N/A DNiD là 1 detector/Scanner được phát triển dành riêng cho .NET, được phát triển bởi Rue (1 .NET reverser khá nổi tiếng), tuy nhiên hiện tại chương trình này không còn được phát triển nữa, chỉ dùng lại ở v1.0, có nhiều protector/obfuscator mới mà chương trình chưa nhận diện được. Nhưng với các obfuscator đã biết, chương trình có thể detect rất chính xác. Cá nhân tôi cũng hay sử dụng chương trình này bởi vì nó là detector đầu tiên dành cho .NET, giống như PEiD trong PE file truyền thống, tuy đã lỗi thời so với các chương trình mới hiện giờ nhưng vẫn có những giá trị nhất đinh.
  • 17. Trang 17 9. ProtectionID Thông tin và download: http://pid.gamecopyworld.com/ ProtectionID là một scanner rất đa năng, hỗ trợ cả detect cả native app và .NET app. Trong hình dưới các bạn có thể thấy chương trình cung cấp rất nhiều thông tin khi tiến hành scan. ProtectionID được viết thuần tùy bằng ASM cho nên tốc độ hoạt động của chương trình rất nhanh, khả năng detect của nó cũng khá chính xác. 10. Dotnet Obfuscator Detector Thông tin và download: tuts4you forum (http://forum.tuts4you.com) Dotnet Obfuscator Detector là 1 trình detector mới, được tạo bởi người bạn cũ của tôi trong REPT – LordCoder. Chương trình này được viết dành riêng cho việc detect các chương trình .NET, và có khả năng nhận diện khá nhiều các protector/obfuscator hiện hành. Chương trình này nhỏ gọn, hoạt động khá nhanh, xứng đáng để thay thế cho DNiD. Tuy nhiên, có một điểm yếu đối với chương trình này là nếu một obfuscator nào đó áp dụng phương pháp Invalid Metadata thì detector này sẽ trở nên vô dụng vì nó không thể scan được các thông số trong metadata nữa