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分别对应免费,个人,企业,终身
这课就到这里
系列NET教程,感谢楼主原创作品!
确实说教的不错,建议做视频,可省楼主很多时间
顶起,永久高亮
感谢楼主 谢谢大佬分享 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩! 谢谢分享
页:
[1]
2