houjingyi 发表于 2017-2-19 20:06

翻译XXXX逆向系列教程-Cracking driverfinder XOR06

本帖最后由 姐又寡闻了 于 2019-6-6 22:39 编辑

这是R4ndom破解教程翻译计划的第二篇。
第一篇:翻译R4ndom逆向系列教程-CrackMe by XOR6
R4ndom破解教程全文翻译(For新手)导航帖提供的网盘中有一些英文材料,本文即为本人翻译自其中的“其他教程”中的Cracking_driverfinder_XOR06,未来会翻译更多的教程。图片是我自己做的过程中重新截的,用到的工具可以在爱盘下载,文末提供英文原文和源文件下载。作者应该是在XP上做的,这个软件我在我win10的机器上安装以后发现虽然安装路径是C:\Program Files (x86)但是是64位的,所以还是请开一个XP虚拟机来做这个练习吧。
欢迎!在这个教程中我们将会破解一个需要注册的真实的软件。这只是为了学习,所以如果你喜欢这个软件,请购买正版。我假设你已经知道Olly和怎样patch程序等等这样的基础知识了。
当安装好这个程序并启动以后它会马上扫描过时的驱动。(正如你所见,我所有的驱动都需要升级了)。这不是什么大问题,但是如果你有需要升级的驱动你应该注册并升级。我没有注册,所以我们先点一下Register按钮。

关闭浏览器弹出的窗口之后你会看见这样。

随便输入License ID和password, 点击Activate你会看见这样。

这个结果没有意外,上Olly!

如果你想通过找字符串的办法定位的话恐怕你会失望的(我已经试过了),有很多种办法定位需要patch的位置,这里我将使用的这个方法非常简单方便。把程序加载到Resource Hacker中,点击string table然后点击"39",你就会看见你在找的字符串。正如你所见,609和上面的608对应的"Activation Complete"。这就是我们需要的信息,现在回到Olly。

回到Olly用我们得到的信息,单击右键,搜索常量。

输入我们在Resource Hacker中找到的号码,无论是signed中输入还是unsigned中输入你都会看见16进制值是261。现在点击OK。

我们找到了PUSH 261(Resource Hacker中609的16进制值)。正如你所见我在旁边备注了"bad push"确保我不会忘记PUSH 261是干嘛的。

我们找的地方是正确的,但是该在哪里patch呢???向上看两行有一个JNE SHORT Driverfinder.0043BOCA。是这里么?点一下它不会发现它会跳过PUSH 261,下面有一些PUSH 262 和PUSH 2D9,它们都不是代表注册成功的字符串,只是其它的提示失败的信息。(你可以把它们转换成十进制然后在Resource Hacker中找到它们代表的含义)。所以也许我们可以跳过所有的这些错误信息?是的。再向上面看四行(译者注:也就是PUSH 261上面第六行),你会看见这样。

正如你所见这是一个很大的跳转,如果你点击它(截图中我已经做了)然后按下enter键,你就会跟随这个跳转来到这里。

这个跳转跳过了所有提示失败的信息,向下看几行你就能看见PUSH 260!!它就是608的十六进制值。你还记得它代表注册成功的字符串么? 回到上面再这个跳转处设置一个断点。(正如你所见我已经在这里备注了"Need to Jump")

现在运行程序,点击Register按钮。随便输入License ID和Password然后点击"Activate"。Olly在这里停下。

正如你所见这里不会跳转,但是我们知道必须把这里patch掉。改好之后F8单步,如图所示我们又来到了这里。

正如你所见这里在到PUSH 0x260之前还有一个JNZ命令。所以我们需要继续单步,观察这里JNZ会不会跳转。继续单步直到JNZ命令处。

正如你所见这里不会跳转,所以直接F9运行看看会发生什么。

点击"OK"你会看到register按钮已经消失了。

如果你检查about box或者icontray中的菜单(译者注:这里不太清楚原文中的about box和icontray是什么)你会发现可能也找不到register。有这么简单么?记得总是在Olly中重新加载patch之后的程序来验证。加载没问题,但是接下来…

如果你点了OK按钮之后...

又回到原点了!!!这里还有一处验证我们patch…如果你在Resource Hacker中找字符串的话是找不到的(我怎么知道的?我已经试过了)。我们需要在Olly中找字符串。

找到了。双击之后我们来到这里。

既然我认为这是一个验证函数,我总是最先尝试最简单的办法:可以直接跳过么?向上翻你会发现有许多关闭更新窗口和memset,看起来是在正在生成提示错误信息的对话框。一直往上翻直到程序的开头,你会来到这里。

看看它是在哪被调用的,你会看到这样(在Olly底部)。右击这个地址然后点击Go to CALL from 004012B6。

然后你会来到这里。

怎么避免这个调用呢??上面两行就有一个JE short Driverfinder.004012BB。在这里下断点然后运行程序。

程序不会像我们期待的那样在这里跳转。同上次一样修改此处的跳转条件然后保存新的文件。这次我们终于完全破解了这个软件。
希望我继续翻译的请支持!!!

houjingyi 发表于 2017-2-19 20:10

上一篇帖子有人说这个系列有点过时了,但是我想这些基本的方法现在也是有学习价值的,特别是对于我这样的新手来说。我尽量选不那么过时的内容翻译吧。谢谢大家支持。

houjingyi 发表于 2017-2-20 17:46

shj2k 发表于 2017-2-20 17:09
附件好像有些问题,下载了两次都解压失败。

可能是上传时出问题pdf文件损坏了,请只提取里面的安装程序吧。

榻榻米 发表于 2017-2-19 20:24

about box和icontray应该是关于对话框和右下角托盘菜单吧

cllxjl1900 发表于 2017-2-19 21:14

好多东西啊,看着眼花

xiaosuobjsd 发表于 2017-2-19 21:35

膜拜大神ing几乎看不懂

笑颜一如从前Q 发表于 2017-2-19 22:36

感谢分享

qumingzi 发表于 2017-2-20 02:09

终于可以上网了...!!!

yssun 发表于 2017-2-20 09:02

感谢分享 oyea

seoke 发表于 2017-2-20 12:52

膜拜大神ing几乎看不懂

shj2k 发表于 2017-2-20 17:09

附件好像有些问题,下载了两次都解压失败。
页: [1] 2
查看完整版本: 翻译XXXX逆向系列教程-Cracking driverfinder XOR06