CrackMe-002

逆向学习

工具

OllyDbg(OD):https://www.52pojie.cn/thread-350397-1-1.html
PEID:https://www.52pojie.cn/thread-170387-1-1.html
Exeinfo PE:https://www.52pojie.cn/thread-437586-1-1.html
樱花补丁制作工具:https://www.52pojie.cn/thread-62307-1-1.html
内存补丁生成器:https://www.52pojie.cn/thread-162411-1-1.html
注册机生成器:https://www.52pojie.cn/thread-159470-1-1.html
IDA Pro v7:https://www.52pojie.cn/thread-675251-1-1.html

第二关

有了第一关的经验,做起第二题应该会得心应手,先用PEiD看一看,然后打开程序提示丢失个dll文件,去网上下一个就ok

https://www.duote.com/dll/msvbvm50_dll.html

不晓得有没有毒,虚拟机先用着

我的是win764选择xp64可以用,直接拖到目录下即可

在这里插入图片描述

这里可以看到检测出来是用VB写的程序

在这里插入图片描述
打开之后,与第一题类似提示输入用户名和注册码,这里随便填写一个,弹窗提示错误。

在这里插入图片描述

多尝试几次,摸透了,就开始第一关的套路

爆破部分

首先,按照经验,有对话框提示的程序可以通过堆栈查找调用的位置。方法如下:输入伪码,点击OK,弹出错误对话框,此时不要关闭这个对话框,切换到OD,点击暂停程序,然后Ctrl+K到堆栈视图,如下:

在这里插入图片描述

这里的截图也可以发现rtcMsgBox证实是用VB编译的程序(好像没啥大用处,哈哈,做个了解)

这里攻略有的是这么解释的

到了这里基本蒙圈了,竟然不是一般的C/C++代码,看看后面的Called from大部分来自msvbvm50,user32,根据名称百度一下,发现是使用VB的模块写的。再查看红色部分,发现表面上和对话框相关的只有msvbvm50.rtcmsgbox和user32.MessageBoxIndirectA,最主要的是msvbvm50.rtcMsgBox的调用来自AfKayas_.0040261C,所以我们基本可以断定rtcMsgBox是Vb中弹出对话框相关的东西,不要犹豫,选中它,右键->show call。

反正show call就完事,哈哈,然后上下看一看,就可以找到跟弹窗一样的字符

在这里插入图片描述

在框中部分上方,有一条jmp,但是跳转到0040263B处,超过断点所以继续往上看

在这里插入图片描述

这里出现了je判断之后直接跳转到弹窗报错的字符串那里,所以可以确定这里就是判断的逻辑部分,直接右键->Binary->Fill with NOPs就完事了,运行果然通过

在这里插入图片描述

到这里就有点挫败感了,看了很多还原这个注册码的东西,还是不太明白,只会爆破

就看懂一个往上面找到程序头在00402310处的push ebp

攻略给的解释是

先取出注册码的长度len, 然后取出注册码第一个字符的ANSI值cName, 让后计算len*0x17CFB+cName,将计算的值转换为10进制文本,前面加上”AKA-”组成最后的注册码

自己尝试发现,长度相同/第一个字符相同的账号注册码是一样的

在这里插入图片描述
在这里插入图片描述

算法部分

回到爆破的那个地方(大佬们都这么说,就是把je换成noop那一块)

攻略的步骤反正我是没整明白(大佬求放过)我就自己一步一步往上走,设置断点,然后观察寄存器FPU,到了下面这步有了发现

在这里插入图片描述

反正就是在这一步计算出了注册码,但是没有添加AKA头部,通过尝试发现确实是这样

在这里插入图片描述
接下来就有思路了,往上看看注册码的算法

在这里插入图片描述

emmm大致算法就这样吧,我也理不清了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值