Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 20 kết quả

Đề tài: Một số kỹ thuật trong chống dịch ngược

  1. #1
    Ngày gia nhập
    08 2017
    Bài viết
    980

    Mặc định Một số kỹ thuật trong chống dịch ngược

    Có nhiều công cụ chống dịch ngược.

    Sử dụng nó ra sao, dùng cho trường hợp nào ?

    Có tài liệu nào mô tả và độ tin cậy của chúng ?

    Từ từ trao đổi ...

  2. #2
    Ngày gia nhập
    08 2017
    Bài viết
    980

    Một số tùy chọn (opt) trong vnAssembly (SmartAssembly)


    Nếu không có trở ngại, chúng ta lần lượt, từ tốn bàn luận về nó. OK ?

  3. #3
    Ngày gia nhập
    08 2017
    Bài viết
    980

    Chống dịch ngược là làm sao cho nó không đọc được:
    http://diendan.congdongcviet.com/threads/t324336::bien-dich-lai-du-an-tu-netexec-file.cpp

    hoặc đọc sai:
    http://diendan.congdongcviet.com/threads/t401277::c-code-la-trong-net.cpp

    Từ từ bàn tiếp.

  4. #4
    Ngày gia nhập
    08 2017
    Bài viết
    980

    Có ai dùng công cụ chống dịch ngược, từng bị trở ngại không ?

    Chúng ta nên nói về khía cạnh nào trước ?

  5. #5
    Ngày gia nhập
    08 2017
    Bài viết
    980

    Có ai dùng ildasm.exe (IL Disassembler) để dump netExec không ?

    CT bị dump coi như là xong, có mã nguồn (MsIL) trong tay thì dễ dàng đổi tên (Find & Replace)

    Các CT chống dịch ngược thường có chức năng chống dump (Anti ILDASM) để vô hiệu hóa khả năng đọc của ildasm.exe

    Xem thêm (#37)
    Biên dịch lại dự án từ netExec file.
    ...

  6. #6
    Ngày gia nhập
    08 2017
    Bài viết
    980

    Mặc định Một số kỹ thuật trong chống dịch ngược

    Những người quan tâm chống dịch ngược thì ít nhiều cũng biết cách dịch ngược. Không biết thì lấy gì mà chống!

    Xét đề mô nè bé tẹo sau (Abc.cs ==> Abc.exe):
    Visual C# Code:
    1. using System;
    2.  
    3. class Abc{
    4.     public TimeSpan RunTime {
    5.         get;
    6.         private set;
    7.     }
    8.     //
    9.     static void Main(){
    10.         Abc abc = new Abc();
    11.         DateTime tmStart = DateTime.Now;
    12.         //làm chi đó ở đây ...
    13.         abc.RunTime = DateTime.Now - tmStart;
    14.         string tg = string.Format("RunTime in {0} mSec", (int)abc.RunTime.TotalMilliseconds);
    15.         Console.WriteLine(tg);
    16.     }
    17. }

    Dịch ngược nó vầy (tùy công cụ - đây sử dụng .NET Reflector theo C# 2.0 - .Net 2.0)
    Visual C# Code:
    1. using System;
    2.  
    3.     // Fields
    4.     [CompilerGenerated]
    5.     private TimeSpan <RunTime>k__BackingField; // lỗi định danh ! Sửa thay nó bằng định danh hợp lệ khác, ví dụ runTime là OK.
    6.  
    7.     // Methods
    8.     private static void Main(){
    9.         Abc abc = new Abc();
    10.         DateTime now = DateTime.Now;
    11.         abc.RunTime = (TimeSpan) (DateTime.Now - now);
    12.         Console.WriteLine(string.Format("RunTime in {0} mSec", (int) abc.RunTime.TotalMilliseconds));
    13.     }
    14.  
    15.     // Properties
    16.     public TimeSpan RunTime{
    17.         [CompilerGenerated]
    18.         get{
    19.             return this.<RunTime>k__BackingField;
    20.         }
    21.         [CompilerGenerated]
    22.         private set{
    23.             this.<RunTime>k__BackingField = value;
    24.         }
    25.     }
    26. }

    Trong một ứng dụng nhỏ, một vài file, có thể thay (Replace) trực tiếp trong IDE (Current Project / Entire Solution)
    Với ung dụng lớn, hàng trăm, hàng ngàn file / class thì dùng IDE không khả thi. Dump nó (Abc.il) thì thay thế trong 1 file (Notepad++ là ứng viên) rất hiệu quả

    ... Từ từ bàn tiếp ...

  7. #7
    Ngày gia nhập
    08 2017
    Bài viết
    980

    Ứng dụng chạy tốt, có thể xuất bản, xuất bán - mang chống dịch ngược .. kết quả nó nằm một đống.
    Nó không chạy, hoặc chạy sai, chạy không đúng với CT gốc.

  8. #8
    Ngày gia nhập
    02 2015
    Bài viết
    2

    Vấn đề ở đây là lộ code vs thuật tooán thôi

  9. #9
    Ngày gia nhập
    08 2017
    Bài viết
    980

    Trích dẫn Nguyên bản được gửi bởi tieudoan208 Xem bài viết
    Vấn đề ở đây là lộ code vs thuật tooán thôi
    vs là cái chi ?
    làm gì với vấn đề đó, làm như thế nào ?

  10. #10
    Ngày gia nhập
    08 2017
    Bài viết
    980

    Một hình ảnh quen thuộc, dịch ngược CT được mã hóa (có thể bằng NET Reactor )
    //============================================



    //============================================
    Khi biên dịch lại được - hết lỗi cú pháp - nhưng có thể không chạy được.
    ...

    Nguồn:
    http://diendan.congdongcviet.com/threads/t8743::su-khac-nhau-giua-filestream-stream-trong-lap-trinh-csharp.cpp

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn