Dean 发表于 2014-10-20 14:13

C#逆向教程(4)Switch Case(下)

上节课写了个Switch case但是反编译的时候处理的是IF嵌套
所以这次补写一个Switch case,代码如下

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
      public Form1()
      {
            InitializeComponent();
            
      }
      private void button1_Click(object sender, EventArgs e)
      {
            int n = 1;
            switch (n)
            {
                case 1: MessageBox.Show("免费"); break;
                case 2: MessageBox.Show("个人"); break;
                case 3: MessageBox.Show("企业"); break;
                case 4: MessageBox.Show("终身"); break;
            }

      }
    }
}
这里注意,一般这个N的值是经过算法计算后之后的,我这边就直接赋值写死为1了,偷懒嘛,毕竟这个不是重点

好了,程序丢进RE找到关键代码

这次看到的和我们源码很像了吧
打开IL插件,查看IL代码

此处如果要修改,对编程比较熟悉的朋友可以直接修改switch语句,适当的删除无用语句等

我这边教一种新手修改方案,进阶的方案大家自己研究吧,适合自己的才是最好的

第二句的ldc.i4.1改成ldc.i.4.4就是终身版了
因为1,2,3,4分别对应免费,个人,企业,终身

这课就到这里

Shark恒 发表于 2014-10-20 16:14

系列NET教程,感谢楼主原创作品!

怕怕吓一跳 发表于 2014-10-21 18:27

确实说教的不错,建议做视频,可省楼主很多时间

歪歪 发表于 2015-1-30 10:02

顶起,永久高亮

凌夏随缘 发表于 2022-5-17 10:25

感谢楼主

别管我了行 发表于 2022-6-11 01:57

Wayne 发表于 2022-6-11 09:30

天使替我爱你 发表于 2022-6-11 23:18

谢谢大佬分享

zg2600 发表于 2022-6-17 23:24

[吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!

凌夏随缘 发表于 2022-6-22 17:21

谢谢分享
页: [1] 2
查看完整版本: C#逆向教程(4)Switch Case(下)