蜡树银山炫皎光,朔风独啸静三江。
1. 信息收集
拿到我们的crackme后先查壳,无壳,VB写的,PE结构,32位

查壳后没有什么特殊的信息,接下来打开我们的crackme,跑一下,看看这个crackme是做什么的

一个经典的Serial/Name结构,随机输入aaa/bbb,提示报错Try Again
2. 分析过程
2.1 程序爆破
这个程序和我们以前看到的还略有不同,搜索ASCII搜索不到字符,需要搜索UNICODE


搜索到字符串后,随意选中一个,进入到我们的函数块中。然后拉到最上面函数的起始处下断

运行,输入Name/Serial,点击OK,程序成功断在这里

一路F8向下,可以看到在00402415 0040242D两处分别调用了vbLenBstr rtcAnsiValueBstr函数来计算Name长度,并取出Name[0]的ASCII值

继续往下,看到在经过0040243F处的call函数后,返回了一串数字292690。经过后续分析并不是在这个call函数里面计算的,计算过程在上面就已经结束了,这个我们后面在看。

猜测上面获得的数字和我们的key值有关,但是还是猜测,所以继续F8往下看
经过00402523处的call函数后,将一个字符串AKA-和我们上面获得的数字拼接在了一起。这下是key值的可能性更大了,但是不急,我们继续往下看

继续往下,我们看到了一个关键跳转je short Afkayas_.004025E5,在跳转的下面还有You Get It一类的字样。由此判断这里就是我们可以爆破的地方。nop掉这个跳转后,程序提示破解成功。

2.2 算法分析
当然,我们的目的并不是爆破掉这个crackme,我们需要的是它的算法流程。因此我们重新来过,回到我们上面提到的地方。
1 | 004023EB . 8B03 mov eax,dword ptr ds:[ebx] ; MSVBVM50.740E5A95 |
经过我们的分析,可以得到这个crackme的算法就是,取我们Name的Len,乘0x17CFB,然后去Name[0]的ASCII值,与上一步的计算结果相加
1 | Len[Name] * 0x17CFB + Name[0] |
3. 注册机
1 |
|

发布时间: 2022-01-23
最后更新: 2023-07-21
本文标题: AfkayAs.1
本文链接: https://foxcookie.github.io/2022/01/23/AfkayAs-1/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!