吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 5821|回复: 20

[原创逆向图文] C#逆向教程(1)初识IL

  [复制链接]
Dean 发表于 2014-10-20 11:05 | 显示全部楼层 |阅读模式

打算写一个能让新手看懂和入门的C#逆向教程,第一课是理论基础,只打算知道怎么做,但是不想知道为什么的可以略过,毕竟不是所有人都对枯燥的理论感兴趣-----------------------------------------------------------------------------------------------------------------------------
什么是IL,或者说ILAsm,MSIL,这些都是同一个东西,表示C#的中间语言

微软的.NET组件里自带IL汇编器(ILASM)和IL反汇编器(ILDASM)

还有一个重要的概念是CLR,简单来说就是运行库或者运行时的环境,这个东西是NET的核心,脱壳时CLR头遭到破坏程序就无法执行了,需要进行修复

另外经常会接触到的有元数据(metadata)和托管代码(managed code)

元数据是应用程序所有结构项的描述和它们的关系组成的一套系统

托管代码表示了应用程序的函数功能

------------------------------------------------------------------------------------------------------------------------------
要学好C#的逆向,在这条路上走远,学习C#编程是必须的,当然只是想简单了解,改一些简单功能,不进行二次开发,或者调试太过复杂的程序,那也是可以不学的,看自己的兴趣吧

先写一个简单判断的C#程序,然后尝试反编译他,得到IL代码

C#源码如下
  1. using System;
  2. using System.Windows.Forms;

  3. namespace WindowsFormsApplication1
  4. {
  5.     public partial class Form1 : Form
  6.     {
  7.         public Form1()
  8.         {
  9.             InitializeComponent();

  10.         }
  11.         private void button1_Click(object sender, EventArgs e)
  12.         {
  13.             if (textBox2.Text == "www.xuepojie.com")
  14.             {
  15.                 MessageBox.Show("注册成功");
  16.             }
  17.             else
  18.             {
  19.                 MessageBox.Show("注册失败");
  20.             }

  21.         }

  22.     }
  23. }
复制代码
例子程序1.rar (4.07 KB, 下载次数: 9)
把这个程序编译出来,这节课先不用.NET Reflector,直接用ILDASM编译成IL看看
ildasm.rar (131.08 KB, 下载次数: 17)
ILDASM1.jpg
点击File Open打开目标程序
ILDASM2.jpg
点击File Dump,生成IL代码和RES资源文件
DUMP选项默认即可
ILDASM3.jpg
可以看到目录下多了几个文件
目录.jpg
打开IL代码

  1. //  Microsoft (R) .NET Framework IL Disassembler.  Version 2.0.50727.42
  2. //  Copyright (c) Microsoft Corporation.  All rights reserved.



  3. // Metadata version: v4.0.30319
  4. .assembly extern System
  5. {
  6.   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  7.   .ver 4:0:0:0
  8. }
  9. .assembly extern System.Windows.Forms
  10. {
  11.   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  12.   .ver 4:0:0:0
  13. }
  14. .assembly extern mscorlib
  15. {
  16.   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  17.   .ver 4:0:0:0
  18. }
  19. .assembly extern System.Drawing
  20. {
  21.   .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A )                         // .?_....:
  22.   .ver 4:0:0:0
  23. }
  24. .assembly WindowsFormsApplication1
  25. {
  26.   .custom instance void [mscorlib]System.Reflection.AssemblyDescriptionAttribute::.ctor(string) = ( 01 00 00 00 00 )
  27.   .custom instance void [mscorlib]System.Reflection.AssemblyConfigurationAttribute::.ctor(string) = ( 01 00 00 00 00 )
  28.   .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78   // ....T..WrapNonEx
  29.                                                                                                              63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 )       // ceptionThrows.
  30.   .custom instance void [mscorlib]System.Runtime.Versioning.TargetFrameworkAttribute::.ctor(string) = ( 01 00 1A 2E 4E 45 54 46 72 61 6D 65 77 6F 72 6B   // ....NETFramework
  31.                                                                                                         2C 56 65 72 73 69 6F 6E 3D 76 34 2E 30 01 00 54   // ,Version=v4.0..T
  32.                                                                                                         0E 14 46 72 61 6D 65 77 6F 72 6B 44 69 73 70 6C   // ..FrameworkDispl
  33.                                                                                                         61 79 4E 61 6D 65 10 2E 4E 45 54 20 46 72 61 6D   // ayName..NET Fram
  34.                                                                                                         65 77 6F 72 6B 20 34 )                            // ework 4
  35.   .custom instance void [mscorlib]System.Reflection.AssemblyTitleAttribute::.ctor(string) = ( 01 00 18 57 69 6E 64 6F 77 73 46 6F 72 6D 73 41   // ...WindowsFormsA
  36.                                                                                               70 70 6C 69 63 61 74 69 6F 6E 31 00 00 )          // pplication1..
  37.   .custom instance void [mscorlib]System.Reflection.AssemblyCompanyAttribute::.ctor(string) = ( 01 00 09 4D 69 63 72 6F 73 6F 66 74 00 00 )       // ...Microsoft..
  38.   .custom instance void [mscorlib]System.Reflection.AssemblyProductAttribute::.ctor(string) = ( 01 00 18 57 69 6E 64 6F 77 73 46 6F 72 6D 73 41   // ...WindowsFormsA
  39.                                                                                                 70 70 6C 69 63 61 74 69 6F 6E 31 00 00 )          // pplication1..
  40.   .custom instance void [mscorlib]System.Reflection.AssemblyCopyrightAttribute::.ctor(string) = ( 01 00 1B 43 6F 70 79 72 69 67 68 74 20 C2 A9 20   // ...Copyright ..
  41.                                                                                                   4D 69 63 72 6F 73 6F 66 74 20 32 30 30 39 00 00 ) // Microsoft 2009..
  42.   .custom instance void [mscorlib]System.Reflection.AssemblyTrademarkAttribute::.ctor(string) = ( 01 00 00 00 00 )
  43.   .custom instance void [mscorlib]System.Runtime.InteropServices.ComVisibleAttribute::.ctor(bool) = ( 01 00 00 00 00 )
  44.   .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 36 37 61 64 32 63 34 37 2D 37 37 61 34   // ..$67ad2c47-77a4
  45.                                                                                                   2D 34 33 31 35 2D 39 64 63 65 2D 38 61 30 34 32   // -4315-9dce-8a042
  46.                                                                                                   33 62 63 39 31 64 64 00 00 )                      // 3bc91dd..
  47.   .custom instance void [mscorlib]System.Reflection.AssemblyFileVersionAttribute::.ctor(string) = ( 01 00 07 31 2E 30 2E 30 2E 30 00 00 )             // ...1.0.0.0..

  48.   // --- The following custom attribute is added automatically, do not uncomment -------
  49.   //  .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 07 01 00 00 00 00 )

  50.   .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 )
  51.   .hash algorithm 0x00008004
  52.   .ver 1:0:0:0
  53. }
  54. .mresource public WindowsFormsApplication1.Form1.resources
  55. {
  56.   // Offset: 0x00000000 Length: 0x000000B4
  57.   // WARNING: managed resource file WindowsFormsApplication1.Form1.resources created
  58. }
  59. .mresource public WindowsFormsApplication1.Properties.Resources.resources
  60. {
  61.   // Offset: 0x000000B8 Length: 0x000000B4
  62.   // WARNING: managed resource file WindowsFormsApplication1.Properties.Resources.resources created
  63. }
  64. .module WindowsFormsApplication1.exe
  65. // MVID: {9E27198F-388C-44AB-9198-C70FF4271810}
  66. .imagebase 0x00400000
  67. .file alignment 0x00000200
  68. .stackreserve 0x00100000
  69. .subsystem 0x0002       // WINDOWS_GUI
  70. .corflags 0x00000003    //  ILONLY 32BITREQUIRED
  71. // Image base: 0x08550000


  72. // =============== CLASS MEMBERS DECLARATION ===================

  73. .class private auto ansi sealed beforefieldinit WindowsFormsApplication1.Properties.Settings
  74.        extends [System]System.Configuration.ApplicationSettingsBase
  75. {
  76.   .custom instance void [System]System.CodeDom.Compiler.GeneratedCodeAttribute::.ctor(string,
  77.                                                                                       string) = ( 01 00 4B 4D 69 63 72 6F 73 6F 66 74 2E 56 69 73   // ..KMicrosoft.Vis
  78.                                                                                                   75 61 6C 53 74 75 64 69 6F 2E 45 64 69 74 6F 72   // ualStudio.Editor
  79.                                                                                                   73 2E 53 65 74 74 69 6E 67 73 44 65 73 69 67 6E   // s.SettingsDesign
  80.                                                                                                   65 72 2E 53 65 74 74 69 6E 67 73 53 69 6E 67 6C   // er.SettingsSingl
  81.                                                                                                   65 46 69 6C 65 47 65 6E 65 72 61 74 6F 72 08 31   // eFileGenerator.1
  82.                                                                                                   30 2E 30 2E 30 2E 30 00 00 )                      // 0.0.0.0..
  83.   .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
  84.   .field private static class WindowsFormsApplication1.Properties.Settings defaultInstance
  85.   .method public hidebysig specialname static
  86.           class WindowsFormsApplication1.Properties.Settings
  87.           get_Default() cil managed
  88.   {
  89.     // Code size       11 (0xb)
  90.     .maxstack  1
  91.     .locals init (class WindowsFormsApplication1.Properties.Settings V_0)
  92.     IL_0000:  nop
  93.     IL_0001:  ldsfld     class WindowsFormsApplication1.Properties.Settings WindowsFormsApplication1.Properties.Settings::defaultInstance
  94.     IL_0006:  stloc.0
  95.     IL_0007:  br.s       IL_0009

  96.     IL_0009:  ldloc.0
  97.     IL_000a:  ret
  98.   } // end of method Settings::get_Default

  99.   .method public hidebysig specialname rtspecialname
  100.           instance void  .ctor() cil managed
  101.   {
  102.     // Code size       7 (0x7)
  103.     .maxstack  8
  104.     IL_0000:  ldarg.0
  105.     IL_0001:  call       instance void [System]System.Configuration.ApplicationSettingsBase::.ctor()
  106.     IL_0006:  ret
  107.   } // end of method Settings::.ctor

  108.   .method private hidebysig specialname rtspecialname static
  109.           void  .cctor() cil managed
  110.   {
  111.     // Code size       21 (0x15)
  112.     .maxstack  8
  113.     IL_0000:  newobj     instance void WindowsFormsApplication1.Properties.Settings::.ctor()
  114.     IL_0005:  call       class [System]System.Configuration.SettingsBase [System]System.Configuration.SettingsBase::Synchronized(class [System]System.Configuration.SettingsBase)
  115.     IL_000a:  castclass  WindowsFormsApplication1.Properties.Settings
  116.     IL_000f:  stsfld     class WindowsFormsApplication1.Properties.Settings WindowsFormsApplication1.Properties.Settings::defaultInstance
  117.     IL_0014:  ret
  118.   } // end of method Settings::.cctor

  119.   .property class WindowsFormsApplication1.Properties.Settings
  120.           Default()
  121.   {
  122.     .get class WindowsFormsApplication1.Properties.Settings WindowsFormsApplication1.Properties.Settings::get_Default()
  123.   } // end of property Settings::Default
  124. } // end of class WindowsFormsApplication1.Properties.Settings

  125. .class public auto ansi beforefieldinit WindowsFormsApplication1.Form1
  126.        extends [System.Windows.Forms]System.Windows.Forms.Form
  127. {
  128.   .field private class [System]System.ComponentModel.IContainer components
  129.   .field private class [System.Windows.Forms]System.Windows.Forms.Button button1
  130.   .field private class [System.Windows.Forms]System.Windows.Forms.TextBox textBox1
  131.   .field private class [System.Windows.Forms]System.Windows.Forms.Label label1
  132.   .field private class [System.Windows.Forms]System.Windows.Forms.TextBox textBox2
  133.   .field private class [System.Windows.Forms]System.Windows.Forms.Label label2
  134.   .method family hidebysig virtual instance void
  135.           Dispose(bool disposing) cil managed
  136.   {
  137.     // Code size       43 (0x2b)
  138.     .maxstack  2
  139.     .locals init (bool V_0)
  140.     IL_0000:  nop
  141.     IL_0001:  ldarg.1
  142.     IL_0002:  brfalse.s  IL_000f

  143.     IL_0004:  ldarg.0
  144.     IL_0005:  ldfld      class [System]System.ComponentModel.IContainer WindowsFormsApplication1.Form1::components
  145.     IL_000a:  ldnull
  146.     IL_000b:  ceq
  147.     IL_000d:  br.s       IL_0010

  148.     IL_000f:  ldc.i4.1
  149.     IL_0010:  stloc.0
  150.     IL_0011:  ldloc.0
  151.     IL_0012:  brtrue.s   IL_0022

  152.     IL_0014:  nop
  153.     IL_0015:  ldarg.0
  154.     IL_0016:  ldfld      class [System]System.ComponentModel.IContainer WindowsFormsApplication1.Form1::components
  155.     IL_001b:  callvirt   instance void [mscorlib]System.IDisposable::Dispose()
  156.     IL_0020:  nop
  157.     IL_0021:  nop
  158.     IL_0022:  ldarg.0
  159.     IL_0023:  ldarg.1
  160.     IL_0024:  call       instance void [System.Windows.Forms]System.Windows.Forms.Form::Dispose(bool)
  161.     IL_0029:  nop
  162.     IL_002a:  ret
  163.   } // end of method Form1::Dispose

  164.   .method private hidebysig instance void
  165.           InitializeComponent() cil managed
  166.   {
  167.     // Code size       744 (0x2e8)
  168.     .maxstack  4
  169.     IL_0000:  nop
  170.     IL_0001:  ldarg.0
  171.     IL_0002:  newobj     instance void [System.Windows.Forms]System.Windows.Forms.Button::.ctor()
  172.     IL_0007:  stfld      class [System.Windows.Forms]System.Windows.Forms.Button WindowsFormsApplication1.Form1::button1
  173.     IL_000c:  ldarg.0
  174.     IL_000d:  newobj     instance void [System.Windows.Forms]System.Windows.Forms.TextBox::.ctor()
  175.     IL_0012:  stfld      class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication1.Form1::textBox1
  176.     IL_0017:  ldarg.0
  177.     IL_0018:  newobj     instance void [System.Windows.Forms]System.Windows.Forms.Label::.ctor()
  178.     IL_001d:  stfld      class [System.Windows.Forms]System.Windows.Forms.Label WindowsFormsApplication1.Form1::label1
  179.     IL_0022:  ldarg.0
  180.     IL_0023:  newobj     instance void [System.Windows.Forms]System.Windows.Forms.TextBox::.ctor()
  181.     IL_0028:  stfld      class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication1.Form1::textBox2
  182.     IL_002d:  ldarg.0
  183.     IL_002e:  newobj     instance void [System.Windows.Forms]System.Windows.Forms.Label::.ctor()
  184.     IL_0033:  stfld      class [System.Windows.Forms]System.Windows.Forms.Label WindowsFormsApplication1.Form1::label2
  185.     IL_0038:  ldarg.0
  186.     IL_0039:  call       instance void [System.Windows.Forms]System.Windows.Forms.Control::SuspendLayout()
  187.     IL_003e:  nop
  188.     IL_003f:  ldarg.0
  189.     IL_0040:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Button WindowsFormsApplication1.Form1::button1
  190.     IL_0045:  ldc.i4     0xe4
  191.     IL_004a:  ldc.i4     0x96
  192.     IL_004f:  newobj     instance void [System.Drawing]System.Drawing.Point::.ctor(int32,
  193.                                                                                    int32)
  194.     IL_0054:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Location(valuetype [System.Drawing]System.Drawing.Point)
  195.     IL_0059:  nop
  196.     IL_005a:  ldarg.0
  197.     IL_005b:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Button WindowsFormsApplication1.Form1::button1
  198.     IL_0060:  ldstr      "button1"
  199.     IL_0065:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Name(string)
  200.     IL_006a:  nop
  201.     IL_006b:  ldarg.0
  202.     IL_006c:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Button WindowsFormsApplication1.Form1::button1
  203.     IL_0071:  ldc.i4.s   75
  204.     IL_0073:  ldc.i4.s   21
  205.     IL_0075:  newobj     instance void [System.Drawing]System.Drawing.Size::.ctor(int32,
  206.                                                                                   int32)
  207.     IL_007a:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Size(valuetype [System.Drawing]System.Drawing.Size)
  208.     IL_007f:  nop
  209.     IL_0080:  ldarg.0
  210.     IL_0081:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Button WindowsFormsApplication1.Form1::button1
  211.     IL_0086:  ldc.i4.0
  212.     IL_0087:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_TabIndex(int32)
  213.     IL_008c:  nop
  214.     IL_008d:  ldarg.0
  215.     IL_008e:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Button WindowsFormsApplication1.Form1::button1
  216.     IL_0093:  ldstr      bytearray (D0 63 A4 4E )                                     // .c.N
  217.     IL_0098:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
  218.     IL_009d:  nop
  219.     IL_009e:  ldarg.0
  220.     IL_009f:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Button WindowsFormsApplication1.Form1::button1
  221.     IL_00a4:  ldc.i4.1
  222.     IL_00a5:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.ButtonBase::set_UseVisualStyleBackColor(bool)
  223.     IL_00aa:  nop
  224.     IL_00ab:  ldarg.0
  225.     IL_00ac:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Button WindowsFormsApplication1.Form1::button1
  226.     IL_00b1:  ldarg.0
  227.     IL_00b2:  ldftn      instance void WindowsFormsApplication1.Form1::button1_Click(object,
  228.                                                                                      class [mscorlib]System.EventArgs)
  229.     IL_00b8:  newobj     instance void [mscorlib]System.EventHandler::.ctor(object,
  230.                                                                             native int)
  231.     IL_00bd:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::add_Click(class [mscorlib]System.EventHandler)
  232.     IL_00c2:  nop
  233.     IL_00c3:  ldarg.0
  234.     IL_00c4:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication1.Form1::textBox1
  235.     IL_00c9:  ldc.i4.s   59
  236.     IL_00cb:  ldc.i4.s   18
  237.     IL_00cd:  newobj     instance void [System.Drawing]System.Drawing.Point::.ctor(int32,
  238.                                                                                    int32)
  239.     IL_00d2:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Location(valuetype [System.Drawing]System.Drawing.Point)
  240.     IL_00d7:  nop
  241.     IL_00d8:  ldarg.0
  242.     IL_00d9:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication1.Form1::textBox1
  243.     IL_00de:  ldstr      "textBox1"
  244.     IL_00e3:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Name(string)
  245.     IL_00e8:  nop
  246.     IL_00e9:  ldarg.0
  247.     IL_00ea:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication1.Form1::textBox1
  248.     IL_00ef:  ldc.i4     0xf4
  249.     IL_00f4:  ldc.i4.s   21
  250.     IL_00f6:  newobj     instance void [System.Drawing]System.Drawing.Size::.ctor(int32,
  251.                                                                                   int32)
  252.     IL_00fb:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Size(valuetype [System.Drawing]System.Drawing.Size)
  253.     IL_0100:  nop
  254.     IL_0101:  ldarg.0
  255.     IL_0102:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication1.Form1::textBox1
  256.     IL_0107:  ldc.i4.1
  257.     IL_0108:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_TabIndex(int32)
  258.     IL_010d:  nop
  259.     IL_010e:  ldarg.0
  260.     IL_010f:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Label WindowsFormsApplication1.Form1::label1
  261.     IL_0114:  ldc.i4.1
  262.     IL_0115:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_AutoSize(bool)
  263.     IL_011a:  nop
  264.     IL_011b:  ldarg.0
  265.     IL_011c:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Label WindowsFormsApplication1.Form1::label1
  266.     IL_0121:  ldc.i4.s   12
  267.     IL_0123:  ldc.i4.s   18
  268.     IL_0125:  newobj     instance void [System.Drawing]System.Drawing.Point::.ctor(int32,
  269.                                                                                    int32)
  270.     IL_012a:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Location(valuetype [System.Drawing]System.Drawing.Point)
  271.     IL_012f:  nop
  272.     IL_0130:  ldarg.0
  273.     IL_0131:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Label WindowsFormsApplication1.Form1::label1
  274.     IL_0136:  ldstr      "label1"
  275.     IL_013b:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Name(string)
  276.     IL_0140:  nop
  277.     IL_0141:  ldarg.0
  278.     IL_0142:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Label WindowsFormsApplication1.Form1::label1
  279.     IL_0147:  ldc.i4.s   41
  280.     IL_0149:  ldc.i4.s   12
  281.     IL_014b:  newobj     instance void [System.Drawing]System.Drawing.Size::.ctor(int32,
  282.                                                                                   int32)
  283.     IL_0150:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Size(valuetype [System.Drawing]System.Drawing.Size)
  284.     IL_0155:  nop
  285.     IL_0156:  ldarg.0
  286.     IL_0157:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Label WindowsFormsApplication1.Form1::label1
  287.     IL_015c:  ldc.i4.2
  288.     IL_015d:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_TabIndex(int32)
  289.     IL_0162:  nop
  290.     IL_0163:  ldarg.0
  291.     IL_0164:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Label WindowsFormsApplication1.Form1::label1
  292.     IL_0169:  ldstr      bytearray (28 75 37 62 0D 54 )                               // (u7b.T
  293.     IL_016e:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
  294.     IL_0173:  nop
  295.     IL_0174:  ldarg.0
  296.     IL_0175:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication1.Form1::textBox2
  297.     IL_017a:  ldc.i4.s   59
  298.     IL_017c:  ldc.i4.s   62
  299.     IL_017e:  newobj     instance void [System.Drawing]System.Drawing.Point::.ctor(int32,
  300.                                                                                    int32)
  301.     IL_0183:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Location(valuetype [System.Drawing]System.Drawing.Point)
  302.     IL_0188:  nop
  303.     IL_0189:  ldarg.0
  304.     IL_018a:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication1.Form1::textBox2
  305.     IL_018f:  ldc.i4.1
  306.     IL_0190:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.TextBoxBase::set_Multiline(bool)
  307.     IL_0195:  nop
  308.     IL_0196:  ldarg.0
  309.     IL_0197:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication1.Form1::textBox2
  310.     IL_019c:  ldstr      "textBox2"
  311.     IL_01a1:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Name(string)
  312.     IL_01a6:  nop
  313.     IL_01a7:  ldarg.0
  314.     IL_01a8:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication1.Form1::textBox2
  315.     IL_01ad:  ldc.i4     0xf4
  316.     IL_01b2:  ldc.i4.s   65
  317.     IL_01b4:  newobj     instance void [System.Drawing]System.Drawing.Size::.ctor(int32,
  318.                                                                                   int32)
  319.     IL_01b9:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Size(valuetype [System.Drawing]System.Drawing.Size)
  320.     IL_01be:  nop
  321.     IL_01bf:  ldarg.0
  322.     IL_01c0:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication1.Form1::textBox2
  323.     IL_01c5:  ldc.i4.3
  324.     IL_01c6:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_TabIndex(int32)
  325.     IL_01cb:  nop
  326.     IL_01cc:  ldarg.0
  327.     IL_01cd:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Label WindowsFormsApplication1.Form1::label2
  328.     IL_01d2:  ldc.i4.1
  329.     IL_01d3:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_AutoSize(bool)
  330.     IL_01d8:  nop
  331.     IL_01d9:  ldarg.0
  332.     IL_01da:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Label WindowsFormsApplication1.Form1::label2
  333.     IL_01df:  ldc.i4.s   12
  334.     IL_01e1:  ldc.i4.s   62
  335.     IL_01e3:  newobj     instance void [System.Drawing]System.Drawing.Point::.ctor(int32,
  336.                                                                                    int32)
  337.     IL_01e8:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Location(valuetype [System.Drawing]System.Drawing.Point)
  338.     IL_01ed:  nop
  339.     IL_01ee:  ldarg.0
  340.     IL_01ef:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Label WindowsFormsApplication1.Form1::label2
  341.     IL_01f4:  ldstr      "label2"
  342.     IL_01f9:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Name(string)
  343.     IL_01fe:  nop
  344.     IL_01ff:  ldarg.0
  345.     IL_0200:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Label WindowsFormsApplication1.Form1::label2
  346.     IL_0205:  ldc.i4.s   41
  347.     IL_0207:  ldc.i4.s   12
  348.     IL_0209:  newobj     instance void [System.Drawing]System.Drawing.Size::.ctor(int32,
  349.                                                                                   int32)
  350.     IL_020e:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Size(valuetype [System.Drawing]System.Drawing.Size)
  351.     IL_0213:  nop
  352.     IL_0214:  ldarg.0
  353.     IL_0215:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Label WindowsFormsApplication1.Form1::label2
  354.     IL_021a:  ldc.i4.4
  355.     IL_021b:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_TabIndex(int32)
  356.     IL_0220:  nop
  357.     IL_0221:  ldarg.0
  358.     IL_0222:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Label WindowsFormsApplication1.Form1::label2
  359.     IL_0227:  ldstr      bytearray (E8 6C 8C 51 01 78 )                               // .l.Q.x
  360.     IL_022c:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
  361.     IL_0231:  nop
  362.     IL_0232:  ldarg.0
  363.     IL_0233:  ldc.r4     6.
  364.     IL_0238:  ldc.r4     12.
  365.     IL_023d:  newobj     instance void [System.Drawing]System.Drawing.SizeF::.ctor(float32,
  366.                                                                                    float32)
  367.     IL_0242:  call       instance void [System.Windows.Forms]System.Windows.Forms.ContainerControl::set_AutoScaleDimensions(valuetype [System.Drawing]System.Drawing.SizeF)
  368.     IL_0247:  nop
  369.     IL_0248:  ldarg.0
  370.     IL_0249:  ldc.i4.1
  371.     IL_024a:  call       instance void [System.Windows.Forms]System.Windows.Forms.ContainerControl::set_AutoScaleMode(valuetype [System.Windows.Forms]System.Windows.Forms.AutoScaleMode)
  372.     IL_024f:  nop
  373.     IL_0250:  ldarg.0
  374.     IL_0251:  ldc.i4     0x14d
  375.     IL_0256:  ldc.i4     0xc2
  376.     IL_025b:  newobj     instance void [System.Drawing]System.Drawing.Size::.ctor(int32,
  377.                                                                                   int32)
  378.     IL_0260:  call       instance void [System.Windows.Forms]System.Windows.Forms.Form::set_ClientSize(valuetype [System.Drawing]System.Drawing.Size)
  379.     IL_0265:  nop
  380.     IL_0266:  ldarg.0
  381.     IL_0267:  call       instance class [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection [System.Windows.Forms]System.Windows.Forms.Control::get_Controls()
  382.     IL_026c:  ldarg.0
  383.     IL_026d:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Label WindowsFormsApplication1.Form1::label2
  384.     IL_0272:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection::Add(class [System.Windows.Forms]System.Windows.Forms.Control)
  385.     IL_0277:  nop
  386.     IL_0278:  ldarg.0
  387.     IL_0279:  call       instance class [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection [System.Windows.Forms]System.Windows.Forms.Control::get_Controls()
  388.     IL_027e:  ldarg.0
  389.     IL_027f:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication1.Form1::textBox2
  390.     IL_0284:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection::Add(class [System.Windows.Forms]System.Windows.Forms.Control)
  391.     IL_0289:  nop
  392.     IL_028a:  ldarg.0
  393.     IL_028b:  call       instance class [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection [System.Windows.Forms]System.Windows.Forms.Control::get_Controls()
  394.     IL_0290:  ldarg.0
  395.     IL_0291:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Label WindowsFormsApplication1.Form1::label1
  396.     IL_0296:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection::Add(class [System.Windows.Forms]System.Windows.Forms.Control)
  397.     IL_029b:  nop
  398.     IL_029c:  ldarg.0
  399.     IL_029d:  call       instance class [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection [System.Windows.Forms]System.Windows.Forms.Control::get_Controls()
  400.     IL_02a2:  ldarg.0
  401.     IL_02a3:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication1.Form1::textBox1
  402.     IL_02a8:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection::Add(class [System.Windows.Forms]System.Windows.Forms.Control)
  403.     IL_02ad:  nop
  404.     IL_02ae:  ldarg.0
  405.     IL_02af:  call       instance class [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection [System.Windows.Forms]System.Windows.Forms.Control::get_Controls()
  406.     IL_02b4:  ldarg.0
  407.     IL_02b5:  ldfld      class [System.Windows.Forms]System.Windows.Forms.Button WindowsFormsApplication1.Form1::button1
  408.     IL_02ba:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection::Add(class [System.Windows.Forms]System.Windows.Forms.Control)
  409.     IL_02bf:  nop
  410.     IL_02c0:  ldarg.0
  411.     IL_02c1:  ldstr      "Form1"
  412.     IL_02c6:  call       instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Name(string)
  413.     IL_02cb:  nop
  414.     IL_02cc:  ldarg.0
  415.     IL_02cd:  ldstr      bytearray (66 5B 34 78 E3 89 BA 8B 5B 57 13 4E 28 75 8B 4F   // f[4x....[W.N(u.O
  416.                                     50 5B 0B 7A 8F 5E 14 20 44 00 65 00 61 00 6E 00 ) // P[.z.^. D.e.a.n.
  417.     IL_02d2:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
  418.     IL_02d7:  nop
  419.     IL_02d8:  ldarg.0
  420.     IL_02d9:  ldc.i4.0
  421.     IL_02da:  call       instance void [System.Windows.Forms]System.Windows.Forms.Control::ResumeLayout(bool)
  422.     IL_02df:  nop
  423.     IL_02e0:  ldarg.0
  424.     IL_02e1:  call       instance void [System.Windows.Forms]System.Windows.Forms.Control::PerformLayout()
  425.     IL_02e6:  nop
  426.     IL_02e7:  ret
  427.   } // end of method Form1::InitializeComponent

  428.   .method public hidebysig specialname rtspecialname
  429.           instance void  .ctor() cil managed
  430.   {
  431.     // Code size       24 (0x18)
  432.     .maxstack  8
  433.     IL_0000:  ldarg.0
  434.     IL_0001:  ldnull
  435.     IL_0002:  stfld      class [System]System.ComponentModel.IContainer WindowsFormsApplication1.Form1::components
  436.     IL_0007:  ldarg.0
  437.     IL_0008:  call       instance void [System.Windows.Forms]System.Windows.Forms.Form::.ctor()
  438.     IL_000d:  nop
  439.     IL_000e:  nop
  440.     IL_000f:  ldarg.0
  441.     IL_0010:  call       instance void WindowsFormsApplication1.Form1::InitializeComponent()
  442.     IL_0015:  nop
  443.     IL_0016:  nop
  444.     IL_0017:  ret
  445.   } // end of method Form1::.ctor

  446.   .method private hidebysig instance void
  447.           button1_Click(object sender,
  448.                         class [mscorlib]System.EventArgs e) cil managed
  449.   {
  450.     // Code size       58 (0x3a)
  451.     .maxstack  2
  452.     .locals init (bool V_0)
  453.     IL_0000:  nop
  454.     IL_0001:  ldarg.0
  455.     IL_0002:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication1.Form1::textBox2
  456.     IL_0007:  callvirt   instance string [System.Windows.Forms]System.Windows.Forms.Control::get_Text()
  457.     IL_000c:  ldstr      "www.xuepojie.com"
  458.     IL_0011:  call       bool [mscorlib]System.String::op_Equality(string,
  459.                                                                    string)
  460.     IL_0016:  ldc.i4.0
  461.     IL_0017:  ceq
  462.     IL_0019:  stloc.0
  463.     IL_001a:  ldloc.0
  464.     IL_001b:  brtrue.s   IL_002c

  465.     IL_001d:  nop
  466.     IL_001e:  ldstr      bytearray (E8 6C 8C 51 10 62 9F 52 )                         // .l.Q.b.R
  467.     IL_0023:  call       valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(string)
  468.     IL_0028:  pop
  469.     IL_0029:  nop
  470.     IL_002a:  br.s       IL_0039

  471.     IL_002c:  nop
  472.     IL_002d:  ldstr      bytearray (E8 6C 8C 51 31 59 25 8D )                         // .l.Q1Y%.
  473.     IL_0032:  call       valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(string)
  474.     IL_0037:  pop
  475.     IL_0038:  nop
  476.     IL_0039:  ret
  477.   } // end of method Form1::button1_Click

  478. } // end of class WindowsFormsApplication1.Form1

  479. .class private auto ansi beforefieldinit WindowsFormsApplication1.Properties.Resources
  480.        extends [mscorlib]System.Object
  481. {
  482.   .custom instance void [mscorlib]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
  483.   .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
  484.   .custom instance void [System]System.CodeDom.Compiler.GeneratedCodeAttribute::.ctor(string,
  485.                                                                                       string) = ( 01 00 33 53 79 73 74 65 6D 2E 52 65 73 6F 75 72   // ..3System.Resour
  486.                                                                                                   63 65 73 2E 54 6F 6F 6C 73 2E 53 74 72 6F 6E 67   // ces.Tools.Strong
  487.                                                                                                   6C 79 54 79 70 65 64 52 65 73 6F 75 72 63 65 42   // lyTypedResourceB
  488.                                                                                                   75 69 6C 64 65 72 07 34 2E 30 2E 30 2E 30 00 00 ) // uilder.4.0.0.0..
  489.   .field private static class [mscorlib]System.Resources.ResourceManager resourceMan
  490.   .field private static class [mscorlib]System.Globalization.CultureInfo resourceCulture
  491.   .method assembly hidebysig specialname rtspecialname
  492.           instance void  .ctor() cil managed
  493.   {
  494.     // Code size       10 (0xa)
  495.     .maxstack  8
  496.     IL_0000:  ldarg.0
  497.     IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
  498.     IL_0006:  nop
  499.     IL_0007:  nop
  500.     IL_0008:  nop
  501.     IL_0009:  ret
  502.   } // end of method Resources::.ctor

  503.   .method assembly hidebysig specialname static
  504.           class [mscorlib]System.Resources.ResourceManager
  505.           get_ResourceManager() cil managed
  506.   {
  507.     // Code size       63 (0x3f)
  508.     .maxstack  3
  509.     .locals init (class [mscorlib]System.Resources.ResourceManager V_0,
  510.              class [mscorlib]System.Resources.ResourceManager V_1,
  511.              bool V_2)
  512.     IL_0000:  nop
  513.     IL_0001:  ldsfld     class [mscorlib]System.Resources.ResourceManager WindowsFormsApplication1.Properties.Resources::resourceMan
  514.     IL_0006:  ldnull
  515.     IL_0007:  call       bool [mscorlib]System.Object::ReferenceEquals(object,
  516.                                                                        object)
  517.     IL_000c:  ldc.i4.0
  518.     IL_000d:  ceq
  519.     IL_000f:  stloc.2
  520.     IL_0010:  ldloc.2
  521.     IL_0011:  brtrue.s   IL_0035

  522.     IL_0013:  nop
  523.     IL_0014:  ldstr      "WindowsFormsApplication1.Properties.Resources"
  524.     IL_0019:  ldtoken    WindowsFormsApplication1.Properties.Resources
  525.     IL_001e:  call       class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
  526.     IL_0023:  callvirt   instance class [mscorlib]System.Reflection.Assembly [mscorlib]System.Type::get_Assembly()
  527.     IL_0028:  newobj     instance void [mscorlib]System.Resources.ResourceManager::.ctor(string,
  528.                                                                                          class [mscorlib]System.Reflection.Assembly)
  529.     IL_002d:  stloc.0
  530.     IL_002e:  ldloc.0
  531.     IL_002f:  stsfld     class [mscorlib]System.Resources.ResourceManager WindowsFormsApplication1.Properties.Resources::resourceMan
  532.     IL_0034:  nop
  533.     IL_0035:  ldsfld     class [mscorlib]System.Resources.ResourceManager WindowsFormsApplication1.Properties.Resources::resourceMan
  534.     IL_003a:  stloc.1
  535.     IL_003b:  br.s       IL_003d

  536.     IL_003d:  ldloc.1
  537.     IL_003e:  ret
  538.   } // end of method Resources::get_ResourceManager

  539.   .method assembly hidebysig specialname static
  540.           class [mscorlib]System.Globalization.CultureInfo
  541.           get_Culture() cil managed
  542.   {
  543.     // Code size       11 (0xb)
  544.     .maxstack  1
  545.     .locals init (class [mscorlib]System.Globalization.CultureInfo V_0)
  546.     IL_0000:  nop
  547.     IL_0001:  ldsfld     class [mscorlib]System.Globalization.CultureInfo WindowsFormsApplication1.Properties.Resources::resourceCulture
  548.     IL_0006:  stloc.0
  549.     IL_0007:  br.s       IL_0009

  550.     IL_0009:  ldloc.0
  551.     IL_000a:  ret
  552.   } // end of method Resources::get_Culture

  553.   .method assembly hidebysig specialname static
  554.           void  set_Culture(class [mscorlib]System.Globalization.CultureInfo 'value') cil managed
  555.   {
  556.     // Code size       8 (0x8)
  557.     .maxstack  8
  558.     IL_0000:  nop
  559.     IL_0001:  ldarg.0
  560.     IL_0002:  stsfld     class [mscorlib]System.Globalization.CultureInfo WindowsFormsApplication1.Properties.Resources::resourceCulture
  561.     IL_0007:  ret
  562.   } // end of method Resources::set_Culture

  563.   .property class [mscorlib]System.Resources.ResourceManager
  564.           ResourceManager()
  565.   {
  566.     .custom instance void [System]System.ComponentModel.EditorBrowsableAttribute::.ctor(valuetype [System]System.ComponentModel.EditorBrowsableState) = ( 01 00 02 00 00 00 00 00 )
  567.     .get class [mscorlib]System.Resources.ResourceManager WindowsFormsApplication1.Properties.Resources::get_ResourceManager()
  568.   } // end of property Resources::ResourceManager
  569.   .property class [mscorlib]System.Globalization.CultureInfo
  570.           Culture()
  571.   {
  572.     .custom instance void [System]System.ComponentModel.EditorBrowsableAttribute::.ctor(valuetype [System]System.ComponentModel.EditorBrowsableState) = ( 01 00 02 00 00 00 00 00 )
  573.     .get class [mscorlib]System.Globalization.CultureInfo WindowsFormsApplication1.Properties.Resources::get_Culture()
  574.     .set void WindowsFormsApplication1.Properties.Resources::set_Culture(class [mscorlib]System.Globalization.CultureInfo)
  575.   } // end of property Resources::Culture
  576. } // end of class WindowsFormsApplication1.Properties.Resources

  577. .class private abstract auto ansi sealed beforefieldinit WindowsFormsApplication1.Program
  578.        extends [mscorlib]System.Object
  579. {
  580.   .method private hidebysig static void  Main() cil managed
  581.   {
  582.     .entrypoint
  583.     .custom instance void [mscorlib]System.STAThreadAttribute::.ctor() = ( 01 00 00 00 )
  584.     // Code size       26 (0x1a)
  585.     .maxstack  8
  586.     IL_0000:  nop
  587.     IL_0001:  call       void [System.Windows.Forms]System.Windows.Forms.Application::EnableVisualStyles()
  588.     IL_0006:  nop
  589.     IL_0007:  ldc.i4.0
  590.     IL_0008:  call       void [System.Windows.Forms]System.Windows.Forms.Application::SetCompatibleTextRenderingDefault(bool)
  591.     IL_000d:  nop
  592.     IL_000e:  newobj     instance void WindowsFormsApplication1.Form1::.ctor()
  593.     IL_0013:  call       void [System.Windows.Forms]System.Windows.Forms.Application::Run(class [System.Windows.Forms]System.Windows.Forms.Form)
  594.     IL_0018:  nop
  595.     IL_0019:  ret
  596.   } // end of method Program::Main

  597. } // end of class WindowsFormsApplication1.Program


  598. // =============================================================

  599. // *********** DISASSEMBLY COMPLETE ***********************
  600. // WARNING: Created Win32 resource file C:\共享\测试区域\C#\test1.res
复制代码
这个就是中间语言IL,一般来说,我们逆向的时候会定位到其中关键的几行代码,进行修改即可

先简单说一下每一块的内容,下一堂课会用Reflector打开,就没有那么吓人了


.assembly,.module开头的部分是程序头
.namespace,.class开头的是类声明
.field是字段声明
.method是方法声明(我们逆向分析重点关注的部分,其他部分在脱壳修复时需要关注)
.data是数据声明

我们注册逻辑的核心IL代码段就是
  1.   .method private hidebysig instance void
  2.           button1_Click(object sender,
  3.                         class [mscorlib]System.EventArgs e) cil managed
  4.   {
  5.     // Code size       58 (0x3a)
  6.     .maxstack  2
  7.     .locals init (bool V_0)
  8.     IL_0000:  nop
  9.     IL_0001:  ldarg.0
  10.     IL_0002:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication1.Form1::textBox2
  11.     IL_0007:  callvirt   instance string [System.Windows.Forms]System.Windows.Forms.Control::get_Text()
  12.     IL_000c:  ldstr      "www.xuepojie.com"
  13.     IL_0011:  call       bool [mscorlib]System.String::op_Equality(string,
  14.                                                                    string)
  15.     IL_0016:  ldc.i4.0
  16.     IL_0017:  ceq
  17.     IL_0019:  stloc.0
  18.     IL_001a:  ldloc.0
  19.     IL_001b:  brtrue.s   IL_002c

  20.     IL_001d:  nop
  21.     IL_001e:  ldstr      bytearray (E8 6C 8C 51 10 62 9F 52 )                         // .l.Q.b.R
  22.     IL_0023:  call       valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(string)
  23.     IL_0028:  pop
  24.     IL_0029:  nop
  25.     IL_002a:  br.s       IL_0039

  26.     IL_002c:  nop
  27.     IL_002d:  ldstr      bytearray (E8 6C 8C 51 31 59 25 8D )                         // .l.Q1Y%.
  28.     IL_0032:  call       valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(string)
  29.     IL_0037:  pop
  30.     IL_0038:  nop
  31.     IL_0039:  ret
  32.   } // end of method Form1::button1_Click
复制代码
这段代码的意思可以参考IL指令集的说明https://www.52hb.com/thread-1088-1-1.html

自己先分析一下




评分

参与人数 25HB +46 THX +15 收起 理由
花盗睡鼠 + 2 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
29590 + 1
24567 + 1
Jawon + 2
DDK4282 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
太阳神 + 2 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
sjtkxy + 1 + 1
一路走来不容易 + 1
Soul1999 + 1
仙仙猫 + 1
冷亦飞 + 1
消逝的过去 + 1
木糖心 + 1
zyyujq + 1
temp + 1 + 1
SmallEXpel + 1
hackysh + 1
jaunic + 2
hnymsh + 1
lies + 1
LagyHehe + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
风刃 + 1 + 1 教程非常易懂,对新人帮助极大!楼主大爱!
Crook + 3 + 1 系列教程必须加精!!
岁月如歌飘渺 + 3 + 1 积极评分从我做起,感谢!
Shark恒 + 20 + 1 支持原创,感谢楼主!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
起凡第一华佗 发表于 2014-10-20 11:08 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2014-10-20 12:55 | 显示全部楼层

太棒了,感觉一下子看到了光明~
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
彼岸花开 发表于 2014-12-27 23:35 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
逆向学习菜鸟 发表于 2014-12-27 23:47 来自手机端 | 显示全部楼层

看不懂晕
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
若只如初见 发表于 2014-12-30 20:54 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
love 发表于 2015-1-10 18:47 | 显示全部楼层

为什么是图文、、、、
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
风刃 发表于 2015-1-11 09:42 | 显示全部楼层

好东西,学好这个!努力ing
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
duo 发表于 2015-7-19 22:27 | 显示全部楼层

正想逆向一個 NET 工具

先來補充知識
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
yuxin114 发表于 2016-1-14 15:55 | 显示全部楼层

非常感谢,很好用
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表