Tag: Decompiler

Reter Decompiler – Yet another .NET Decompiler

This is an old decompiler, but great one, created by yck1509 (aka Ki, author of Confuser and ConfuserEx). This one was released in couple of years before, and i was lost the download link. But right now i can find a working link to download, so I posted it here. The most interesting features of this decompiler comes from the ability to display all the metadata streams in main window and it has a built-in hex editor. Moreover, it can displays MSIL opcode directly in decompile window (if you use IL mode). Look the picture below:

And the author said:

Features:
-Decompile…
-Browse
-Search
-Token, RVA
-Analyzer-Renaming
-Bookmark

Link download:

DOWNLOAD MEGA.CO.NZ LINK

Các công cụ cần thiết cho quá trình Reverse Engineering .NET (phần 2)

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

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
  • IL Disassembly
  • Support C# 5.0 “async”
  • Decompilation to C#
    • Supports lambdas and ‘yield return’
    • 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

ILSPY

ILSpy

+ Đ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à 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

dotnet resolver

DotNet Resolver

+Đ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 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.

IDA

IDA

(còn tiếp)

Đọc phần 1 tại đây

Decompyle++ – A great python dissasembler/decompiler

Decompyle++

A Python Byte-code Disassembler/Decompiler

Decompyle++ aims to translate compiled Python byte-code back into valid and human-readable Python source code. While other projects have achieved this with varied success, Decompyle++ is unique in that it seeks to support byte-code from any version of Python.

Decompyle++ includes both a byte-code disassembler (pycdas) and a decompiler (pycdc).

As the name implies, Decompyle++ is written in C++. If you wish to contribute, please fork us on github at https://github.com/zrax/pycdc

I’ve tested it in Windows 7 32bit and Arch Linux i686, and works good. It supports from py10 to py34 (according to list of map files in /bytes folder, tried with pyc compiled by py34 but not cecompiled yet, maybe support for py34 should be updated in future)

How to make it run under Linux:
Grab files from git and build it:

git clone git://github.com/zrax/pycdc
cd pycdc
make

Compiled files are pycdas for Python Disassembler and pycdc for Python decompiler.
Usage:

pycdas [FILE_NAME]

to disassemble pyc/pyo file
or

pycdc [FILE_NAME]

to decompile pyc/pyo file

Enjoy and best regards,
Levis

Các công cụ cần thiết cho quá trình Reverse Engineering .NET (Phần 1)

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
  • 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

cff_explorer

 

CFF Explorer

 

+ Đ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ó

 

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).

reflector

.NET Reflector

+ Đ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
    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

sae

SAE

+ Đ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

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.

justdecompile

JustDecompile

+ Đ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

(Còn tiếp)

JustDecompile – A Great free decompiler for .NET Program

Hello all mates,

This is another tool to help you Decompile .NET assembly ( same as .NET Reflector, but it’s free), named JustDecompile. It’s developed by Telerik (A commercial Company), so it’s well developed and very stable. This tool is not new, but I think this is a good replacement of .NET Reflector. Just download, install it and enjoy! 🙂

Let’s see what Softpedia said:

JustDecompile description
Decompile your applications with ease

JustDecompile is a productivity tool for developers designed to enable easy .NET assembly decompiling and browsing.

JustDecompile builds on years of experience in code analysis and development productivity originally created for JustCode, Telerik’s Visual Studio productivity add-in. JustDecompile lets you effortlessly explore and analyze compiled .NET assemblies, decompiling code with the simple click of a button.
Here are some key features of “JustDecompile”:

Innovative Code Navigation and Analysis:
Telerik JustDecompile offers the industry’s leading code search and navigation features enabling you to quickly locate and navigate to different parts of your code. All loaded assemblies can be effortlessly browsed by type, method or member, results appear on-the-fly as you type and can be navigated effortlessly. JustDecompile also benefits from one-click load of all system libraries for each framework and trim. Developers can also create their own custom assembly lists and load them at the click of a button.
Side-by-side Assembly Loading:
Telerik’s stand-alone free decompiling tool allows the concurrent load of a broad range of .NET framework version systems (1.1, 2.0….4.0, Silverlight and Compact Framework). This capability enables references to be resolved correctly, results in the seamless navigation through any given framework version system library, and eliminates the need for jumping across version boundaries.
Better Decompiling Accuracy:
Not all decompiling is created equal. JustDecompile goes beyond existing decompiling tools by better decompiling language features like lambda expressions, generics, yield statements, and auto-generated properties. Decompiling speed and accuracy will continue to improve during the BETA.
Powerful Free Tool by a Leading Commercial Vendor:
Unlike Open Source alternatives, Telerik JustDecompile benefits from a dedicated development team, which is focused on continuously improving the product in line with your feedback. Telerik is recognized as one of the leading providers of .NET development tools and JustDecompile will benefit from our years of experience in the field.
Auto-updating and Regular Updates:
JustDecompile is evolving quickly. Thankfully, from day one JustDecompile ships with built-in support for auto-updating when new versions are available. JustDecompile will be updated frequently during the BETA, and will receive 3 major updates per year. Stop settling for stale tools, and always work with JustDecompile, a decompiling tool that is evolving and has the latest and greatest features.
Professional Support:
Getting started and resolving any issues that you might face is easy with Telerik’s Forums. In addition to tips and tricks by one of the largest and most passionate .NET communities out there, you will benefit from professional support by the very same developers who created JustDecompile. They frequent the forums to ensure no question is left unanswered and no issue left unaddressed.

What’s New in This Release: [ read full changelog ]

New:
The fastest decompilation among all .NET decompilers
Plugin manager
Ability to load x86/x64 .net framework assemblies

Reverse Engineering .NET JustDecompile
Click to see full image

Download link:

Download from Softpedia

Enjoy Reversing and Best Regards,

Levis

.NET Reflector 7.6.0.808 + Addins

Actually I’m not good and also not interested in dotNET Reversing, but it still a part of Reversing Technique, so all tool about .NET will be updated here :).
The New version of .NET Reflector has been released, and you can download this archive below to get all addins, and Keygen also to make it worked perfectly for yourself.
Demo picture:
ref760808
Link download the installer:
OFFICIAL DOWNLOAD LINK FROM RED-GATES

Link download the addin packages (can work with both v7.x and v8.x):

DOWNLOAD LINK MEDIAFIRE

And just send email to me to get license code and activation code for free. The reason that i’m not posting here is to avoid WordPress’s rules. Sorry for this inconvenient.

Enjoy and best regards,

Levis

DeDe (Delphi Decompiler) 3.50.02.1619 Download

Quote of Author:

Analyze executables compiled with Delphi Builder, Kylix and Kol
Written by Alexandru Pintilie on June 27th, 2012

Decompiling executable files, no matter the programming language they have been compiled in, is a tedious job. DeDe (Delphi Decompiler) brags on performing this particular task fast and neat. As no software can retrieve the source code 100% in both consistency and accuracy, any program that can get closer to that perfect score is, indeed, useful.

While it can be used for some illegal activities implying decompilation of projects you don’t actually own and use of them to generate income, DeDe is really meant for the recovery of your lost source code, correction of errors, malicious code checking or the application migration to newer platforms.

Code decompilation is based on reversed engineering that cannot create an automated perfect copy of the source because of the conversion operations that take place during the compilation process. Most of the variable names used in the program are turned into addresses. What DeDe does is providing you with the DFM files (containing the details of the objects included in a form) that you can open and edit with Delphi.

It also brings the published methods to the workbench alongside ASM (assembly language) code that features comments and references to classes methods calls, imported function calls, components in the unit or strings. DeDe allows you to generate a Delphi project folder that comprises the retrieved DFM, PAS and DPR files.

The simple interface of the application incorporates a various set of tools dedicated to help you get the most of your Delphi PE executable. You can easily build DSF (DynamicSkinForm) files from your DCU (Delphi Compiled Unit) as well as your BPL (Borland Package Library). DeDe also offers a PE Editor, DOI Builder (Delphi Offset Info) or a RVA Converter (Relative Virtual Address).

Being on of the top picks in its Softpedia category, DeDe has gained its popularity amongst programmers by delivering great results every time it has been called upon. W32DASM may be the leader and the first choice of many; however, DeDe’s features and speed of execution just cannot be ignored when looking for a piece of software to analyze and decompile your Delphi executables.

Here are some key features of “DeDe”:

· View the PE Header of all PE Files and change/edit the sections flags.
· Use the opcode-to-asm tool for translating intel opcode to assembler
· Use RVA-to-PhysOffset tool for fast converting physical and RVA addresses
Use the DCU Dumper (view dcu2int.txt for more details) to retrieve near to:
· pascal code of your DCU files.
· Use BPL(DPL) Dumper to see BPL exports and create symbol files to use with DeDe disassembler
· Disassemble a target EXE directly from memory in case of a packed exe

Link Download:
DOWNLOAD FROM SOFTPEDIA HOST