蜡树银山炫皎光,朔风独啸静三江。
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 许可协议。转载请注明出处!