Tag: tutorials

[Bài dịch] Phân tích Confuser 1.9.0.0 – Anti-tamper Protection

Xin chào các bạn,

Đây là bài dịch tiếp theo trong loạt bài dịch/bài viết tiếng Việt về Reverse Engineering .NET. Đây là bài viết của tác giả ubbelol lằm trong series “Dissecting Confuser” (Một bài dịch trước tôi đã đăng lên ở đây). Trong bài viết này tác giả sẽ nói đến cơ chế bảo vệ của Anti-tamper Protection trong Confuser và cách để vượt qua.

Các bạn có thể đọc bài dịch tại đây:

Enjoy and best regards,

Levis

[Bài dịch] Decrypt các MSIL methods một cách thủ công

Xin chào các bạn,

Dạo gần đây tôi đã được ubbelol (một guru trong làng .NET Reverse Engineering) cho phép dịch các bài viết của anh ta thành tiếng Việt và đăng tải chúng lên để chia sẻ cho mọi người. Theo quan điểm của cá nhân tôi, ở Việt Nam số lượng lập trình viên sử dụng .NET là rất lớn, tuy nhiên những người nghiên cứu chuyên sâu về .NET, đặc biệt là .NET Reverse Engineering là rất hiếm. Một phần do thiếu kinh nghiệm, một phần do tài liệu tiếng Việt bị hạn chế cho nen việc nghiên cứu trở nên khó khắn. Vì vậy tôi sẽ có gắng dịch được càng nhiều tài liệu càng tốt, để chia sẻ với mọi người, hi vọng sẽ giúp được các bạn một phần nào đó trong việc tiếp xúc với .NET Reverse Engineering. Trong các bài dịch này chắc chắn sẽ không tránh khỏi các sai sót, xin các bạn đóng góp ý kiến giúp tôi chỉnh sửa để có được những bản dịch tốt hơn. Cảm ơn!

Trong bài dịch đầu tiên này nói về phương pháp decrypt các MSIL method một cách thủ công, sử dụng Windbg. Các bạn có thể đọc bài dịch tại đây:

Enjoy and Best regards,

Levis

Linux ELF File Format – Documentation

This document is not created by me,  I just grabbed it on the internet, and post it here, hope  this will help people in reverse engineering/ researching on *nix System.

ELF: Executable and Linking Format
The Executable and Linking Format was originally developed and published by UNIX System Labora-
tories (USL) as part of the Application Binary Interface (ABI).  The Tool Interface Standards committee
(TIS) has selected the evolving ELF standard as a portable object file format that works on 32-bit Intel
Architecture environments for a variety of operating systems.
The ELF standard is intended to streamline software development by providing developers with a set of
binary interface definitions that extend across multiple operating environments. This should reduce the
number of different interface implementations, thereby reducing the need for recoding and recompiling
code.
About This Document
This document is intended for developers who are creating object or executable files on various 32-bit
environment operating systems.  It is divided into the following three parts:
Part 1, ‘‘Object Files’’ describes the ELF object file format for the three main types of object files.
Part 2, ‘‘Program  Loading and Dynamic Linking’’ describes the object file information and system
actions that create running programs.
Part 3, ‘‘C Library’’ lists the symbols contained in l i b s y s, the standard ANSI  C and l i b c routines,
and the global data symbols required by the l i b c routines.

Download link:

https://drive.google.com/file/d/0BwkJ85f8XTZtQ1ZuWkFBZUZlRlU/edit?usp=sharing

 

Enjoys and best regards,

Levis

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

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.

windbg

WinDbg

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:

MSIL OPcode Table

MSIL Opcode Table

–          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

o   ….

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

dotnet tracer

Dotnet Tracer

–          .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,….).

net methods parser

NET Methods Parser

 

Ngoài ra còn một công cụ khá tốt mà tôi muốn giới thiệu với các bạn, đó là 1 IDE mã nguồn mở và miễn phí tên là SharpDevelop (Thông tin và download: http://www.icsharpcode.net/opensource/sd/). Cá nhân tôi cảm thấy khó chịu khi sử dụng bộ Visual Studio của Microsoft vì nó quá nặng (so với cái máy già cỗi của tôi) và thêm nữa là các vấn đề liên quan đến bản quyền (dĩ nhiên là vẫn có bản Express miễn phí nhưng cũng vẫn nặng và thiếu nhiều tính năng so với các bản professional hay Ultimate mà M$ tạo ra). Vì vậy tôi chọn SharpDevelop để tạo các ứng dụng .NET, vừa nhanh lại vừa nhẹ., giao diện của chương trình cũng khá tiện lợi và trực quan. Bộ setup của nó chỉ vỏn vẹn có ~15mb nhưng khi cài đặt xong có thể code trong nhiều ngôn ngữ: C#,VB.NET, F# IronPython,…. Vì vậy tôi đánh giá rất cao IDE này,, rất tiện lợi khi cần code các công cụ, các tool nho nhỏ và các app demo.

(còn tiếp)

Đọc các phần khác tại đây:

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

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

R4ndom’s Beginning Reverse Engineering Tutorials (Completed Package)

R4ndom’s Beginning Reverse Engineering Tutorials – the complete collection all in one handy archive!

Here is a set of tutorials made by R4ndom and some other cool guys (http://thelegendofrandom.com/), very detailed and well write-up, suitable for newbies also professionals.

This packages contains:
Tutorial #1 – What is reverse engineering?
Tutorial #2 – Introducing OllyDBG
Tutorial #3 – Using OllyDBG, Part 1
Tutorial #4 – Using OllyDBG, Part 2
Tutorial #5 – Our First (Sort Of) Crack
Tutorial #6 – Our First (True) Crack
Tutorial #7 – More Crackmes
Tutorial #8 – Frame Of Reference
Tutorial #9 – No Strings Attached
Tutorial #10 – The Levels of Patching
Tutorial #11 – Breaking In Our Noob Skills
Tutorial #12 – A Tougher NOOBy Example
Tutorial #13 – Cracking a Real Program
Tutorial #14 – How to remove nag screens
Tutorial #15 – Using the Call Stack.
Tutorial #16A – Dealing with Windows Messages.
Tutorial #16B – Self Modifying Code.
Tutorial #16C – Bruteforcing.
Tutorial #17 – Working with Delphi Binaries.
Tutorial #18 – Time Trials and Hardware Breakpoints.
Tutorial #19 – Creating patchers.
Tutorial #20A – Dealing with Visual Basic Binaries, Part 1.
Tutorial #20B – Dealing with Visual Basic Binaries, Part 2.
Tutorial #21 – Anti-Debugging Techniques.
Tutorial #22 – Code Caves and PE Sections.
Tutorial #23 – TLS Callbacks.

Modifying Binaries For Fun And Profit

Adding a Splash Screen – Creating a code cave to show a custom splash on an application
Adding a Menu Item – Adding a menu item to an existing binary.
Making a Window Non-Closeable – Making a Window Non-Closeable.
The Never Ending Program – Opening message boxes every time a user tries to close a program.
DLL Injection 1 – Adding an opening message box through DLL injection.
DLL Injection 2 – Adding a splash bitmap through DLL injection.

R4ndom’s Guide to RadASM

Installing and setting up – Installing RadASM and configuring the environment.
Creating our first project – Creating our first project.
Adding an Icon and Menu – Adding an Icon and Menu.

Miscellaneous

The Reverse Engineer’s Toolkit – Tools every reverse engineer should know about.
Shrinking C++ Binaries – Shrinking binaries through Visual Studio.

Other Tutorials

Author Tutorial
XOR06 Cracking DriverFinder
nwokiller Unpacking PELock v1.06
XOR06 Bypassing a keyfile
XOR06 Bypassing a Serial and server Check
XOR06 Bypassing a Serial in a Delphi Binary
XOR06 Finding a serial using bitmaps.
XOR06 Easy unpacking.
XOR06 Where and How to pacth a serial routine.
XOR06 Patching a server check, 30 day time trial, and a nag.
XOR06 Serialfishing a correct serial.
XOR06 Another way of finding the patch.
XOR06 Why it’s so important to search for pointers.
XOR06 .NET Crackme with tutorial
XOR06 .NET Crackme (no tutorial)

 

Download link:

Download Mediafire link

 

All credits go to its author.

Enjoy and best regards,

Levis

For Rebirth: RAR Patching tutorial for Linux 32 bit

Hello all mates,
Sorry, i was inactive for a long time, due to many issues in real life forced me to stop my favorite works. But now i’m back, and here is my lastest tutorial. Thank for visiting me again. Love you guy so much. I switched to use Linux, and started research about Reverse Engineering in this operating system. Very interesting and i got some useful experiences, so i would like to share my knowledge with people. In this tutorial, i will show you the way to patch a commercial applicaton: rar (a.k.a WinRAR). RAR is the name of winRAR, under Linux system but i prefer to call it as WinRAR :). We will do Reverse Engineering, and also modify some byte to make it work without license. But, please remember, this tutorial ONLY for EDUCATIONAL PURPOSES, so read it with your own risk. I will not take any responsibility if anybody use knowledge in my tutorial for other purposes.
Name: RAR
Platform: Linux
Language: English (sorry about my bad English :D)
Type: PDF
Size: 1.5 MB
Link Download:
https://drive.google.com/file/d/0BwkJ85f8XTZtR2JrTHlkZXBtcHM/edit?usp=sharing

Enjoy and best regards,
Levis

P/s: I received many replies about dead links (not working links) and data lost of my blog). This is terrible, cause people hard to reach my data. Thank you all to report to me, and i will fix it as soon as possbile.