当前位置:首页 > 原创教程 > 正文

.Net零基础逆向教程 —— 第二课(获得注册码)

有了第一课的基础,大家是不是想试试身手,那么我们就来试试身手吧!
这一课,我们要利用第一课的知识,来获得一个软件的注册码!
这个软件是根据Shark恒在他的第二课中提供的软件,画了五分钟速仿的……所以千万别计较功能啊啥的为什么不能用。

软件是一个“IP搜索工具”,有注册项,我们就来拿这个软件获得注册码!
注:(同样是初级软件,不涉及干扰新手学习的各种元素)
下面是注册界面的截图

注册后,就有提示出来了,暂且不管他提示的是什么,我们也知道要干什么了,对吗? 好,dnSpy载入程序,同样是按照第一课的步骤,搜索“Name/”,多了一个斜杠,是因为搜索Name结果太多,当然你也可以搜索“Name/Code ”,但其实我并不很建议这么做,因为其中可能包含有我们肉眼无法分别的空格从而导致你错过了正确的搜索结果。
很容易,第二个就找到了刚才提示的字符串,我们双击它! 

判断依据其实很简单,看我框出来的右半部分,它代表着这个字符串来自于哪个文件,很明显三个结果里只有第二个是来自我们的课件。当然你也可以将过滤规则从所有文件调整为所选文件,但我同样不建议新手这样,因为字符串可能包含在某个dll里。

双击后我们同样按照第一课的步骤找到了相关判断,如果要爆破的话,直接修改34行的判断即可。

但是今天我们不爆破,玩的是找出注册码 。

我们阅读一下这个注册的判断逻辑:

22行,第一个编辑框的内容,先删除首尾空格,然后经过RSAEncrypt()函数加密后的内容被赋值给了变量text

23行,第二个编辑框的内容,先删除首尾空格,然后赋值给了变量text2

24-33行,判断了text和text2的内容是否为空,是的话就弹窗报错

34-41行,判断text和text2是否相等,相等就证明激活码正确,则将主界面的标题添加上“Registered ”字样,不相等就弹窗报错

所以这个程序里你要爆破的话,如果想不填两个编辑框就直接激活成功,则你可以把24-33行的内容删掉,然后修改34行的判断条件,也可以直接清空22-41行的内容,只保留36-37行内容,这样就可以实现点击主程序上的Register按钮时直接完成激活。

尝试着理解我这几句话,然后自己进行练习,如果有问题请在知识星球向我提问。

那么从代码中我们了解了text和text2要进行对比,也就是说当我们在第二个编辑框填写的内容,是第一个编辑框通过RSAEncrypt()函数加密后的内容时,就能完成注册。

在23行,右键,添加断点,你也可以把断点理解成是“暂停”,即告诉dnSpy,当程序运行到这里的时候(此时,尚未执行被标记的行),暂停下来。

点击启动来运行程序,注册窗口在: File ---> Register

现在输入注册信息(用户名记住,注册码随便写),点击注册。

你会发现程序失去了响应,我们在snSpy中下的断点前的红点中间多出了黄色箭头,这代表着软件已经执行到了这里。

回到dnSpy,注意下方的局部变量窗口里,有text和text2两个变量

按一下F10看看

我们发现text被赋值了,没错,这个值就是注册码!

在text的值上右键,复制值

然后在下断点的代码前面点一下小红点,让这个断点取消。

点击继续,或者按下F5让被我们下断点的程序继续运行

还是会弹出个报错~无所谓

将我们复制的值粘贴到第二个编辑框去

注册~然后你会被打脸……

哪里出了问题呢?

dnSpy在复制文本型值的时候,会自动添加一对引号,所以我们将复制的值粘贴到第二个编辑框后,自己动手把引号删除即可。

软件变成了已经注册的状态。

恭喜你,通过第一课和第二课,你已经学会了爆破和获得注册码!


最后补充解释下F10的作用:

看这张图其中的按钮依次为:

继续:继续运行程序除非遇到下一个断点或者下一个操作等待

暂停:暂停到断点处或者操作等待处

停止:结束运行程序

重新开始:重新运行程序到断点或者操作等待

显示下一语句:用来预览下一次将要执行的语句

逐语句:每次执行一行语句,如果碰到函数调用,它就会进入到函数里面

逐过程:每次执行一行语句,碰到函数时,不进入函数,把函数调用当成一条语句执行

调出:当你进入到函数内,跳出可以让你直接执行函数内剩余的语句,直到返回到该函数被调用时的后面的语句处

搜索程序集:上一节课我们刚学过~

引用Shark恒的一段话:

通常教程上来都是一大堆的理论与基础知识,让新手直接关了视频或者网页。这不是我的教程魅力,我的教程是让新手快速获得兴趣,这样新手们才有机会学习理论与基础知识。只要有了兴趣,其他的都好说,到时候不用你说,他也自己去学理论与基础知识了。没有兴趣的话,在牛逼的理论与基础知识都是催眠曲。


教程课件:https://articles.zsxq.com/id_wixv8nql022h.html


 

本博客资源若无特殊说明,均为和谐版本,无需付费,我不搞软件的会员,也不接受指定的和谐业务。

 

软件无法下载/安装/其它电脑问题,免费加企鹅群:709531763

有问题加上面的群,直接群里问,在线的时候有问必答,私聊一般都不看

想打赏微信扫右边的二维码

 
文章标题:.Net零基础逆向教程 —— 第二课(获得注册码)
本文作者:慕若曦
发表日期:2019-03-26 05:30 星期二    首发于    暮若夕
本文固定链接: https://www.muruoxi.com/jiaocheng/4040.html
 
文章标签:
上一篇: 下一篇:

2 条评论

评论加载中...
  1. 沙发
    小飞雪   

    将RSAEncrypt()里面的代码拿出来看看,就可以写个注册机了吧

    2019年3月27日 上午12:30 评论
    • 慕若曦   

      是的

      2019年3月27日 下午12:00 评论

发表评论

╮( ̄▽ ̄)╭ |  (= ̄ω ̄=) |  (>﹏<) |  Σ( ° △ °|||)︴ |  Σ(っ °Д °;)っ |  X﹏X |  (╯-_-)╯╧╧

小提示:提交评论后刷新本页面即可看到隐藏的文件哦~
加载中……