Trang 1 trên tổng số 4 123... Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 37 kết quả

Đề tài: Dự án chuyển, dịch ngôn ngữ lập trình

  1. #1
    Ngày gia nhập
    09 2016
    Bài viết
    1,028

    Mặc định Dự án chuyển, dịch ngôn ngữ lập trình

    Các bạn có ý định xây dựng dự án về biên dịch, chuyển ngữ lập trình hay dịch ngược thì mời tham gia.

    Xem:
    http://diendan.congdongcviet.com/threads/t381342::hop-ngu-inline-assembler.cpp

  2. #2
    Ngày gia nhập
    09 2016
    Bài viết
    1,028

    Sẵn giới thiệu trình biên dịch nhỏ nhất - có luôn source code - mà tôi biết :

    Inno Pascal 0.1.x
    Copyright (C) 2000 Jordan Russell
    For conditions of distribution and use, see LICENSE.TXT.
    Home page: http://www.jrsoftware.org/
    Current Inno Pascal home page: http://other.jrsoftware.org/ip/
    E-mail: jr @ jrsoftware.org
    http://other.jrsoftware.org/ip/

  3. #3
    Ngày gia nhập
    09 2016
    Bài viết
    1,028

    Ngày mai trong đám xuân xanh ấy
    Có kẻ theo chồng bỏ cuộc chơi.

    Ngày nay trong đám u minh ấy
    Có kẻ quay về bỏ cuộc chơi.

    Các tên tuổi một thời lẫy lừng như Macrobject\Obfuscator.NET 2009,
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		_Obf.jpg
Lần xem:	10
Size:		46.6 KB
ID:		51140

    CodeVeil nay lùi về ký ức, trong catch
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		_XHeo.jpg
Lần xem:	6
Size:		31.8 KB
ID:		51141

    Phọt mô xa 2016

  4. #4
    Ngày gia nhập
    09 2016
    Bài viết
    1,028

    Như hình trên, hiện nay Obfuscator.NET 2009 chỉ support đến NetFx 3.5

    Viết bằng 4.0 / 4.5 hay 4.6 thì không thể mã hoá - chạy được - với Macrobject. Một vận động viên dừng cuộc đua

    Phọt mô xa 2016

  5. #5
    Ngày gia nhập
    09 2016
    Bài viết
    1,028

    obfuscation / deobfuscation

    Một khái niệm cơ bản của reCompile, người ta sẽ biến đổi exec thành một dạng khác và đặt dấu ở chỗ khác
    - biến đổi : nén, mã hoá, ...
    - đặt dấu : trong resource, DLL, data, ...

    Khi cần thực thi (run) nó sẽ lấy ra, biến đổi ngược lại (có thể không hoàn toàn) về exec ban đầu, nạp (load) để thực hiện.

    Ví dụ đơn giản, với dự án sau:
    Visual C# Code:
    1. using System;
    2. using System.Drawing;
    3. using System.Windows.Forms;
    4.  
    5. namespace nsA.nsSub{ //@ nameSpase
    6.     static class Program{ //@ className
    7.         [STAThread]
    8.         static void Main(){ //@ entrypoint
    9.             Application.EnableVisualStyles();
    10.             Application.SetCompatibleTextRenderingDefault(false);
    11.             Application.Run(new Form1());
    12.         }
    13.     }
    14. //===
    15.     public partial class Form1 : Form{
    16.         public Form1(){
    17.             InitializeComponent();
    18.             timer1.Start();
    19.         }
    20.  
    21.         void timer1_Tick(object sender, EventArgs e){
    22.             label1.Text = receiveAbc();
    23.         }
    24.         static string receiveAbc() {
    25.             return DateTime.Now.ToString();
    26.         }
    27.         void button1_Click(object sender, EventArgs e){
    28.             timer1.Stop();
    29.         }
    30.     }
    31. //===
    32.     partial class Form1{
    33.         protected override void Dispose(bool disposing){
    34.             if (disposing && (components != null))
    35.                 components.Dispose();
    36.             base.Dispose(disposing);
    37.         }
    38.  
    39.         void InitializeComponent(){
    40.             this.components = new System.ComponentModel.Container();
    41.             this.timer1 = new System.Windows.Forms.Timer(this.components);
    42.             this.label1 = new System.Windows.Forms.Label();
    43.             this.button1 = new System.Windows.Forms.Button();
    44.             this.SuspendLayout();
    45.             //
    46.             // timer1
    47.             //
    48.             this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
    49.             //
    50.             // label1
    51.             //
    52.             this.label1.AutoSize = true;
    53.             this.label1.Location = new System.Drawing.Point(29, 25);
    54.             this.label1.Name = "label1";
    55.             this.label1.Size = new System.Drawing.Size(35, 13);
    56.             this.label1.TabIndex = 0;
    57.             this.label1.Text = "label1";
    58.             //
    59.             // button1
    60.             //
    61.             this.button1.Location = new System.Drawing.Point(102, 54);
    62.             this.button1.Name = "button1";
    63.             this.button1.Size = new System.Drawing.Size(75, 23);
    64.             this.button1.TabIndex = 1;
    65.             this.button1.Text = "&Stop";
    66.             this.button1.UseVisualStyleBackColor = true;
    67.             this.button1.Click += new System.EventHandler(this.button1_Click);
    68.             //
    69.             // Form1
    70.             //
    71.             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    72.             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    73.             this.ClientSize = new System.Drawing.Size(292, 100);
    74.             this.Controls.Add(this.button1);
    75.             this.Controls.Add(this.label1);
    76.             this.Name = "Form1";
    77.             this.Text = "Form1";
    78.             this.ResumeLayout(false);
    79.             this.PerformLayout();
    80.  
    81.         }
    82.  
    83.         System.ComponentModel.IContainer components = null;
    84.         System.Windows.Forms.Timer timer1;
    85.         System.Windows.Forms.Label label1;
    86.         System.Windows.Forms.Button button1;
    87.     }
    88. }

    Nó được biên dịch thành exec : Prog.exe được biến đổi thành data và đặt trong file : aExec.dat
    Để đơn giản, nó chỉ là đổi tên file, chưa nén cũng không mã hoá

    Chương trình có nhiệm vụ nạp để chương trình trên thực hiện :
    Visual C# Code:
    1. using System;
    2. using System.Reflection;
    3. using System.Windows.Forms;
    4.  
    5.     static void Main(string[] ss) {
    6.         try {
    7.             byte[] bys = System.IO.File.ReadAllBytes("aExec.dat");
    8.             //unZip, hay giải mã gì đó nữa, sao cho nó về dạng ban đầu
    9.             Assembly asm = Assembly.Load(bys);
    10.  
    11.             Type typ = asm.GetType("nsA.nsSub.Program"); // namespace.className
    12.             MethodBase mb = typ.GetMethod("Main", BindingFlags.NonPublic | BindingFlags.Static); //entrypoint
    13.  
    14.             object[] ts = new object[mb.GetParameters().Length]; //tham số
    15.             if (ts.Length != 0) ts[0] = ts;
    16.            
    17.             object obj = mb.Invoke(null, ts);
    18.         } catch (Exception ex) { MessageBox.Show(ex.StackTrace, ex.Message); }
    19.         //
    20.         MessageBox.Show("Abc", "Done");
    21.     }
    22. }

    Xem full code trong file đính kèm : _Exam.rar

    Phọt mô xa 2017
    Attached Files Attached Files

  6. #6
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    398

    Mặc định Dự án chuyển, dịch ngôn ngữ lập trình

    Trích dẫn Nguyên bản được gửi bởi fms17 Xem bài viết
    obfuscation / deobfuscation

    Một khái niệm cơ bản của reCompile, người ta sẽ biến đổi exec thành một dạng khác và đặt dấu ở chỗ khác
    - biến đổi : nén, mã hoá, ...
    - đặt dấu : trong resource, DLL, data, ...

    Khi cần thực thi (run) nó sẽ lấy ra, biến đổi ngược lại (có thể không hoàn toàn) về exec ban đầu, nạp (load) để thực hiện.

    Ví dụ đơn giản, với dự án sau:
    Visual C# Code:
    1. using System;
    2. using System.Drawing;
    3. using System.Windows.Forms;
    4.  
    5. namespace nsA.nsSub{ //@ nameSpase
    6.     static class Program{ //@ className
    7.         [STAThread]
    8.         static void Main(){ //@ entrypoint
    9.             Application.EnableVisualStyles();
    10.             Application.SetCompatibleTextRenderingDefault(false);
    11.             Application.Run(new Form1());
    12.         }
    13.     }
    14. //===
    15.     public partial class Form1 : Form{
    16.         public Form1(){
    17.             InitializeComponent();
    18.             timer1.Start();
    19.         }
    20.  
    21.         void timer1_Tick(object sender, EventArgs e){
    22.             label1.Text = receiveAbc();
    23.         }
    24.         static string receiveAbc() {
    25.             return DateTime.Now.ToString();
    26.         }
    27.         void button1_Click(object sender, EventArgs e){
    28.             timer1.Stop();
    29.         }
    30.     }
    31. //===
    32.     partial class Form1{
    33.         protected override void Dispose(bool disposing){
    34.             if (disposing && (components != null))
    35.                 components.Dispose();
    36.             base.Dispose(disposing);
    37.         }
    38.  
    39.         void InitializeComponent(){
    40.             this.components = new System.ComponentModel.Container();
    41.             this.timer1 = new System.Windows.Forms.Timer(this.components);
    42.             this.label1 = new System.Windows.Forms.Label();
    43.             this.button1 = new System.Windows.Forms.Button();
    44.             this.SuspendLayout();
    45.             //
    46.             // timer1
    47.             //
    48.             this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
    49.             //
    50.             // label1
    51.             //
    52.             this.label1.AutoSize = true;
    53.             this.label1.Location = new System.Drawing.Point(29, 25);
    54.             this.label1.Name = "label1";
    55.             this.label1.Size = new System.Drawing.Size(35, 13);
    56.             this.label1.TabIndex = 0;
    57.             this.label1.Text = "label1";
    58.             //
    59.             // button1
    60.             //
    61.             this.button1.Location = new System.Drawing.Point(102, 54);
    62.             this.button1.Name = "button1";
    63.             this.button1.Size = new System.Drawing.Size(75, 23);
    64.             this.button1.TabIndex = 1;
    65.             this.button1.Text = "&Stop";
    66.             this.button1.UseVisualStyleBackColor = true;
    67.             this.button1.Click += new System.EventHandler(this.button1_Click);
    68.             //
    69.             // Form1
    70.             //
    71.             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    72.             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    73.             this.ClientSize = new System.Drawing.Size(292, 100);
    74.             this.Controls.Add(this.button1);
    75.             this.Controls.Add(this.label1);
    76.             this.Name = "Form1";
    77.             this.Text = "Form1";
    78.             this.ResumeLayout(false);
    79.             this.PerformLayout();
    80.  
    81.         }
    82.  
    83.         System.ComponentModel.IContainer components = null;
    84.         System.Windows.Forms.Timer timer1;
    85.         System.Windows.Forms.Label label1;
    86.         System.Windows.Forms.Button button1;
    87.     }
    88. }

    Nó được biên dịch thành exec : Prog.exe được biến đổi thành data và đặt trong file : aExec.dat
    Để đơn giản, nó chỉ là đổi tên file, chưa nén cũng không mã hoá

    Chương trình có nhiệm vụ nạp để chương trình trên thực hiện :
    Visual C# Code:
    1. using System;
    2. using System.Reflection;
    3. using System.Windows.Forms;
    4.  
    5.     static void Main(string[] ss) {
    6.         try {
    7.             byte[] bys = System.IO.File.ReadAllBytes("aExec.dat");
    8.             //unZip, hay giải mã gì đó nữa, sao cho nó về dạng ban đầu
    9.             Assembly asm = Assembly.Load(bys);
    10.  
    11.             Type typ = asm.GetType("nsA.nsSub.Program"); // namespace.className
    12.             MethodBase mb = typ.GetMethod("Main", BindingFlags.NonPublic | BindingFlags.Static); //entrypoint
    13.  
    14.             object[] ts = new object[mb.GetParameters().Length]; //tham số
    15.             if (ts.Length != 0) ts[0] = ts;
    16.            
    17.             object obj = mb.Invoke(null, ts);
    18.         } catch (Exception ex) { MessageBox.Show(ex.StackTrace, ex.Message); }
    19.         //
    20.         MessageBox.Show("Abc", "Done");
    21.     }
    22. }

    Xem full code trong file đính kèm : _Exam.rar

    Phọt mô xa 2017
    Viết sai chính tả rồi, đặt giấu chứ không phải là đặt dấu, làm mình nghĩ cả buổi

    - - - Nội dung đã được cập nhật ngày 19-02-2017 lúc 08:59 PM - - -

    đề nghị bác khi kí tên nước ngoài thì cứ để nguyên và có thể thêm phiên âm tiếng Việt
    chứ chỉ để phiên âm như vậy người ta không hiểu đâu, bác thử google chữ phọt mô xa của bác thử nó ra kết quả gì

  7. #7
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    856

    Tôi hiểu từ dấu trong các đoạn trên của VH là dấu diếm, ỉm đi, không để trước mắt ai. Theo nghĩa này thì không sai chính tả.

  8. #8
    Ngày gia nhập
    09 2016
    Bài viết
    1,028

    Tiếng Việt thật phức tạp, một người như tôi - thường tự hào về tiếng Việt - mà vẫn vấp té.

    Mười bảy hay là mười tám đây,
    Cho ta yêu dấu chẳng rời tay.
    Mỏng dày từng ấy, chành ba góc,
    Rộng hẹp dường nào, cắm một cay.
    Càng nóng bao nhiêu càng mát nấy,
    Yêu đêm chưa phỉ lại yêu ngày.
    Hồng hồng má phấn duyên vì cậy,
    Chúa dấu vua yêu một cái này.

    Formosa : Đài Loan chăng ?
    Năm 1554, có tàu của Bồ Đào Nha đi qua vùng biển Đài Loan, thủy thủ nhìn từ xa thấy Đài Loan rất đẹp nên hô "Ilha Formosa!", ý là hòn đảo xinh đẹp[31]. Trước thập niên 1950, các quốc gia châu Âu chủ yếu gọi Đài Loan là "Formosa"[32].
    Nguồn : https://vi.wikipedia.org/wiki/%C4%90%C3%A0i_Loan

    Phọt mô xa 2017

  9. #9
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    856

    Trích dẫn Nguyên bản được gửi bởi fms17 Xem bài viết
    Tiếng Việt thật phức tạp, một người như tôi - thường tự hào về tiếng Việt - mà vẫn vấp té.

    Mười bảy hay là mười tám đây,
    Cho ta yêu dấu chẳng rời tay.
    Mỏng dày từng ấy, chành ba góc,
    Rộng hẹp dường nào, cắm một cay.
    Càng nóng bao nhiêu càng mát nấy,
    Yêu đêm chưa phỉ lại yêu ngày.
    Hồng hồng má phấn duyên vì cậy,
    Chúa dấu vua yêu một cái này.

    Formosa : Đài Loan chăng ?

    Nguồn : https://vi.wikipedia.org/wiki/%C4%90%C3%A0i_Loan

    Phọt mô xa 2017
    Đọc thơ lại nhớ thơ (Tưởng nhớ HXH)

    Phành ra 3 góc ...
    Khép lại đôi bên ...

  10. #10
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    398

    Trích dẫn Nguyên bản được gửi bởi fms17 Xem bài viết
    Tiếng Việt thật phức tạp, một người như tôi - thường tự hào về tiếng Việt - mà vẫn vấp té.

    Mười bảy hay là mười tám đây,
    Cho ta yêu dấu chẳng rời tay.
    Mỏng dày từng ấy, chành ba góc,
    Rộng hẹp dường nào, cắm một cay.
    Càng nóng bao nhiêu càng mát nấy,
    Yêu đêm chưa phỉ lại yêu ngày.
    Hồng hồng má phấn duyên vì cậy,
    Chúa dấu vua yêu một cái này.

    Formosa : Đài Loan chăng ?

    Nguồn : https://vi.wikipedia.org/wiki/%C4%90%C3%A0i_Loan

    Phọt mô xa 2017
    Tôi giữ nguyên ý kiến của mình về chữ ký của bác, khi người ta thấy một từ mà không hiểu, chắc là người ta sẽ tìm trên google, nhưng với chữ ký của bác, thì tìm ra không kết quả gì, không phải bác đang tuyên truyền về vụ đó sao

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