.Net零基础逆向教程 第一课(逆向原理)

逆向教程 1年前 (2021) muruoxi
1,459 0

如果你之前有学过逆向,或者看过 @Shark恒 的零基础破解教程,你可能会对我写的教程有一种亲切感,我尽量仿照了 Shark恒 的《零基础逆向图文教程》去写这个系列,以便于提高可读性,更便于你从 OllyDbg 过渡到 dnSpy 的应用。

让我们开始学习吧~

介绍一下这个软件,我写的一个简单的软件,方便初学者学习,容易理解。

程序需要输入正确的帐号和密码才可以登录成功,否则登录失败。

可是我们不知道正确的帐号密码。(也可以理解成是其他软件注册码)

.Net零基础逆向教程 第一课(逆向原理)

既然他能提示登录成功与登录失败(或某些软件提示注册码错误),就说明他有一个判断,我们来打开 dnSpy-x86.exe,将要破解的软件拖入 dnSpy,通过修改让他判断所有字符都是成功。

由于是初级零基础入门级教程,所以不涉及“各种壳”、“暗桩”等等系列干扰新手的元素

在左上角窗口右键,选择编辑->搜索程序集,在下图的搜索框输入“登录失败”,选择搜索“数字/字符串”,找到结果后,我们双击搜索到的结果。

.Net零基础逆向教程 第一课(逆向原理)

我们可以看到代码跳转到了判断处,和 OllyDbg,又或者是 x64Dbg 相比, dnSpy 这种直接让我们看到源代码的可视化操作就非常的人性化,你只要能略微读懂 .Net 的代码,即可完成其逆向过程。

现在我们看这段代码,如下图:
.Net零基础逆向教程 第一课(逆向原理)

按钮按下后,如果 textBox1(账号)的内容长度为 -1,则弹出登陆成功的提示框,否则弹出登陆失败的提示框。

但实际上如果你接触过编程,你就发现这是个错误的判断,因为当编辑框不填写内容的时候,内容长度为 0,填写文本后,长度为文本长度。所以它的长度永远不会为 -1。

那么现在我们要改变这个判断逻辑,让它不等于 -1 的时候,弹出登陆成功,否则弹出登陆失败的提示框。

在 21 行处右键,选择编辑方法

.Net零基础逆向教程 第一课(逆向原理)

将13行的判断进行修改,让其不等于 -1

.Net零基础逆向教程 第一课(逆向原理)
注意:==为等于,!=为不等于,代码,包括标点符号均需要在非中文输入法下输入

修改好后我们点击编译,即可看到如下图中,代码已经被更改了

.Net零基础逆向教程 第一课(逆向原理)

选择文件->全部保存->确定

.Net零基础逆向教程 第一课(逆向原理)

最后,我们来打开刚才保存出来的新程序(也就是我们破解后的程序),是不是真的被破解了?

任意输入,或者不输入文字,均会提示登陆成功,恭喜,成功破解!

.Net零基础逆向教程 第一课(逆向原理)

怎么样?

现在是不是觉得破解就是如此简单?

有没有信心深入破解?

测试破解的小程序我已经上传,用到的dnSpy我也打包了。

快下载试试吧!你已经会破解了

提到的软件

.Net 逆向神器!

课件下载

https://www.lanzous.com/i3l4h3i

版权声明:muruoxi 发表于 2021年11月1日 am11:43。
转载请注明:.Net零基础逆向教程 第一课(逆向原理) | 软件爱好者

相关文章

暂无评论

暂无评论...

关注公众号防失联!