Tag: .NET

Series Reversing/Cracking .NET cơ bản bằng tiếng Việt

Xin chào,

Tôi đã trở lại sau một thời gian vắng bóng. Chỉ là tôi ít viết blog hơn. Ít viết blog thôi nhé, chứ còn tôi vẫn viết, nhưng tôi viết và up ở nơi khác. Tôi viết cũng khá nhiều thể loại, từ văn học kích động quần chúng, công kích cá nhân, đả phá, xuyên tạc, bôi nhọ danh dự cũng như quyền lợi của các ông lớn (trong ngành phần mềm), nhiều khi tôi còn cổ súy một cách nồng nhiệt cho việc ngồi xổm lên luật pháp (vi phạm bản quyền), lúc hứng chí thì lại quay ra viết các thể loại ngôn tình sướt mướt, cũng ít nhiều lấy đi nước mắt người đọc và làm xao xuyến trái tím non nớt của nhiều bạn trẻ mới chập chững vào đời. Ôi chao…

Chính vì một trong các nguyên nhân đó mà đợt trước tôi có bị WordPress gọi lên cảnh cáo và yêu cầu rút kinh nghiệm sâu sắc, vì có những hành vi sai trái, không hợp chuẩn mực ứng xử của blogger trong thời gian vừa qua, nếu còn tái phạm chắc bị đình chỉ công tác và thuyên chuyển qua Blogspot, thế nên tôi sợ lắm, không dám manh động nữa, để giữ chắc cái ghế tôi đang ngồi, hoặc âm thầm tự diễn biến, tự chuyển hóa sang một dạng khác, lén lút hơn, tinh vi hơn và dĩ nhiên, có tổ chức hơn.

Nói nhiều như vậy nhưng nó chỉ xoay quanh một chủ thể chính: Những bài viết của tôi. Bởi vì tự nhiên hôm nay tôi giật mình ngồi nhìn lại, thấy trong những năm tháng qua, tôi viết nhiều papers, làm nhiều tuts, cố gắng giữ gìn rồi cũng rơi rụng bớt phần nào, là do mọi thứ thay đổi quá nhanh.

Có những cái host ngày xưa tôi đinh ninh rằng nó trường tồn lắm, như megaupload, rapidshare,…. Nhớ lại nhiều năm về trước, tôi cặm cụi làm rồi up, làm rồi up không ngừng nghỉ, hòng lưu giữ lại những thứ tôi coi là giá trị, những bài viết, những video tôi tự quay, những clip được dàn dựng cắt ghép công phu (tất nhiên là không che),…. Rồi một ngày đẹp trời, đám service provider bông nhiên lăn đùng ngã ngửa ra. Ngoảnh mặt lại, đã thấy mình trắng tay…

Giờ đây, đó đã là “vài năm về trước”, khi tôi còn hoang dại và thơ ngây, những bài viết non nớt. Ấy thế mà đó lại là một phần trong chuyến phiêu du của tôi, ghi lại những dấu ấn nhất định, và tôi rất tôn trọng chúng, chỉ tiếc rằng tôi không giữ nổi. Ngày đó nghèo, cái usb còn không có, chứ không đã lưu lại offline, để sau này truyền lại thành bài học cho con cháu, theo kiểu “Đấy, mày thấy chưa, thằng bố mày ngày xưa trẩu thế này này, đừng dại mà làm theo con nhé”.

Rồi tôi nghe phong phanh thấy thiên hạ đồn rằng up lên Github không sợ bị remove, nên tôi cũng thử một lần cho biết, bởi vì trước đây hình như có thằng cha nào up cả cái bộ IDA (leaked) lên, rồi bị report, Github mới biết và xóa đi. Cho nên chắc cũng ổn.

Xin giới thiệu với các bạn loạt tut về Reversing/Cracking .NET cơ bản dành cho người mới bắt đầu. Loạt tut này trước đây tôi làm rồi bán để lấy tiền mua cây đờn đặng tính học gảy để đờn cho người con gái nọ (đọc xong bài này bạn cuộn chuột lên dầu trang và liếc nhẹ sang bên phải). Thế rồi giờ em đã có người yêu, biết gảy đàn và hát hay, còn tôi thì phiêu bạt chân chời góc bể, đờn vẫn mang theo, những chẳng bao giờ gảy… Đó là cuộc đời…

Xin thứ lỗi, tôi không có ý định viết ngôn tình đâu, nhưng cứ động đến là cảm xúc nó lại cứ phọt ra như vậy đấy. Xin mô tả sơ qua về loạt tut này. Tut này là tut cũ, và tôi có share cách đây một thời gian trong một số channel mật. Thực ra nó không có gì đặc biệt để phải giấu diếm lâu như thế, chỉ bởi vì tôi tôn trọng những người hảo tâm đã mua đám tut này của tôi, nên tôi giữ kín trong một thời gian dài để đảm bảo quyền lợi cho họ. Còn bây giờ thì chắc là khấu hao nó cũng hết, nên tôi mới public.

Loạt tut này thuộc vào dạng “Hết sức cơ bản”, dành cho cả những người chưa biết gì. Trong mỗi tut tôi có cố gắng giải thích cặn kẽ hết sức có thể trong khả năng của tôi. Mỗi tut bao gồm:
– Video hướng dẫn
– Target được sử dụng trong mỗi video (crackme, apps,…)
– Các công cụ, tài liệu có liên quan đến nội dung video
– Bài tập: Các target khác tương tự như target trong video để người đọc sau khi xem xong có thể thực hành lại.

Mục lục:

  1. Gió
  2. Khởi đầu – Reflector và Serial Fishing
  3. Patching (Phiên bản văn minh với Reflexil)
  4. Patching (Phiên bản cồng kềnh với Hex Editor)
  5. Đọc code và Keygen (phần 1)
  6. Đọc code và Keygen (phần 2)
  7. Unpack .NET đơn giản
  8. Unpack .NET cùng Beloved Olly
  9. Tập cách kéo thả cùng de4dot
  10. Tạo keygen ứng dụng thương mại
  11. Vạn kiếm quy tông – Thử lửa với hần mềm đăng kí sim rác

Link download:

https://github.com/levisre/dotnettuts

Hi vọng nó sẽ có ích cho các bạn, ở một khía cạnh nào đó 🙂

Enjoy and best regards,

Levis

P/S: Về loạt bài Flare-on, tôi đình công vì phía FireEyes làm ăn cồng kềnh, gần nửa năm rồi mà không thấy giải thưởng gửi về. Bao giờ tôi nhận được giải thì biết đâu, bằng một biện pháp tâm linh nào đó, tôi lại có hứng để viết tiếp thì sao?

Unpacking Malware with dnSpy

Lần đầu làm chuyện ấy…

À ý tôi là làm video thuyết minh tiếng Việt, nên rất là run và có chút bẽn lẽn. Trước đây tôi làm tiếng Anh thì quen hơn nhiều, chứ còn tiếng Việt thì rất hay nói lỗi bởi vì có mấy thuật ngữ tôi không bao giờ dịch sang tiếng Việt, cũng không biết giải thích theo nghĩa tiếng Việt như thế nào nữa, cho nên rất là bối rối, mong các bạn bỏ quá cho.  Xin hay ủng hộ tôi, chỉ cần một comment “hjhj d0 ng0’k” hoặc “bố em hút rất nhiều thuốc” thôi là đã thấy yêu thương vô hạn lắm rồi. Cảm ơn

Ở trong video này chúng ta sẽ cùng sử dụng dnSpy để unpack 1 dạng unknown packer được sử dụng bởi 1 mẫu malware giả mạo Steam Client, mà một người bạn gửi cho tôi. Đây (có lẽ) là phần 1, nếu có thời gian tôi sẽ tiếp tục phân tích tiếp, và tất nhiên sẽ cố gắng làm full hd không che như thế này.

Note: Dạo gần đây tôi phát hiện khá nhiều mẫu, sử dụng .NET để làm wrapper để vượt mặt các Antivirus, vì việc detect mấy kiểu file .NET tôi có cảm giác như các hãng AV đang làm khá mơ hồ, đơn cử như trong mẫu này, file unpack ra mới chỉ có 8 AV phát hiện ra dưới dạng tên chung chung kiểu MSIL/Injector, hay Trojan.Gen,… Link scan trên virustotal có tại đây.

Thực sự rất đáng báo động, vì bây giờ đa pần các thế hệ windows mới (7,8/8.1,10) có sắn .NET đi kèm, vậy nên cái risk khá là cao. Khi mà phần lớn các AV đều chưa nhận diện tốt các loại malware thế này. .NET Wrapper có thể làm nhiệm vụ anti-AV hoặc detect xem có đang bị analysis hay không, sau đó mới drop các “em bé” thứ thiệt xuống (điển hình là trong vụ malware skype vừa qua, tôi có những mẫu đầu tiên và đã phân tích hoàn chỉnh chúng hồi đầu tháng 5, là những mẫu wrapper sử dụng Confuser/ConfuserEx). Thực sự rất là quan ngại sâu sắc lắm

Các yêu cầu về mẫu malware, xin vui lòng liên hệ qua email.

Enjoy and stay safe,

Levis

[Video] Unpacking using DnSpy

Hello mates,

This is a small video to show you the way that you can use dnSpy to unpack some simple packers/crypters by debugging and dumping.

The methodology is pretty simple, the packer encrypts the original file into a loader, then the loader will decrypts that file right on the memory, and invokes the main function. This technique is widely used in many many packers/crypters because it’s fast and easy to implement. So let’s see what we can do to unpack it in the modern way. In this video, i used MPRESS as a demonstration packer

Enjoy and best regards,

Levis

Debugging .NET Application with DnSpy

This small video is small video to test the debugging feature of dnSpy (which is created by 0xd4d as a modification + improvement of free open-source .NET Decompiler ILSpy). More information of dnSpy can be found here:
https://github.com/0xd4d/dnSpy

The debugger is source-level debugger, means that you can directly debug decompiled code, not assembly-level, and it’s really cool feature

Only a small video, nothing special, feel free to watch it:

 

Personally i think it’s the best .NET Decompiler at the moment. So come and discover it power.

 

Regards,

Levis

[Video] Manual Unpacking Confuser 1.9

Hello mates,

This is a short video i made for a (not so) long time before, but not published (yet). And now i decided to public it for people who want to learn about unpacking Confuser 1.9. I’m not the author of this method, just follow an article made by 0xd4d, so all credits go to him. So feel free to watch and enjoy this video.

A short description about the method used:

– Load file using WinDbg

– Determine which .NET version which is used by target, load the correct SoS extension along side with CLR/MSCORWKS.

– Set breakpoint and run until target file is unpacked/decrypted, and all methods are restored (anti-tamper protection) in memory.

– Dump the memory region

– Use de4dot to clean file

– Patch 3 method (anti-tamper, anti debug, anti-dump) to prevent crash, use CFF + SAE.

– Done

 

Enjoy and best regards,

Levis

Reverse Engineering .NET – Advanced Patching, Playing with IL

Xin chào các bạn,

Đây là bài viết mới nhất của tôi về Reverse Engineering .NET. Trong bài viết này tôi sẽ nói về IL Code/IL bytecode và cách để patch IL code 1 cách “Advance” thay vì patch true,false thông thường (Cr@cking-related). Hi vọng các bạn sẽ hiểu thêm 1 chút về IL code, và cách mà 1 .NET file lưu trữ IL bytecode và các method như thế nào.

Các bạn có thể đọc bản online tại đây:

Link tải về (cho lưu trữ hoặc đọc offline):

DOWNLOAD LINK GOOGLE DRIVE

Best Regards,

Levis