吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9401|回复: 4
收起左侧

[原创] 160个CrackMe 之002 by:TamronDrizzle 破解&算法

[复制链接]
腾龙细雨 发表于 2015-8-6 21:31
本帖最后由 腾龙细雨 于 2015-8-7 19:16 编辑

【文章作者】: 腾龙细雨 - TamronDrizzle
【软件名称】: Afkayas.1
【操作平台】: Windows XP
【下载地址】: 自行搜索
【加壳方式】: 无有
【保护方式】: 无有
【编写语言】: Microsoft Visual Basic 5.0 / 6.0
【使用工具】: OD & ExeinfoPe
【软件介绍】: 比较好破没有暗桩
【作者申明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!




【详细过程】
当注册失败时有一个弹窗 我们下一个信息框断点
BP  MessageBoxA
由于是vb
BP rtcMsgBox
再次单击 后断下  F2取消断点
ctrl+F9 一次 F8一次 返回到程序的领空

在代码的上面有注册成功和注册失败的注记 ,这条代码应该就是关键跳

[Asm] 纯文本查看 复制代码
00402582   .  8945 A4       mov dword ptr ss:[ebp-0x5C],eax
00402585   .  894D BC       mov dword ptr ss:[ebp-0x44],ecx          ;  ntdll.7C93005D
00402588   .  8945 B4       mov dword ptr ss:[ebp-0x4C],eax
0040258B   .  74 58         je short Afkayas_.004025E5              <------
0040258D   .  68 801B4000   push Afkayas_.00401B80                   ;  You Get It
00402592   .  68 9C1B4000   push Afkayas_.00401B9C                   ;  \r\n
00402597   .  FFD7          call edi                                 ;  msvbvm50.__vbaStrCat

给它nop掉,运行测试,注册成功

保存程序



接下来是算法部分



我们在这个函数的头部 下断 然后一直f8,直到用户名出现


我们截获了这一段代码
[Asm] 纯文本查看 复制代码
0040240F   .  8B45 E4       mov eax,dword ptr ss:[ebp-0x1C]          ;  EAX 注册名
00402412   .  50            push eax                                 ; /String = NULL
00402413   .  8B1A          mov ebx,dword ptr ds:[edx]               ; |
00402415   .  FF15 E4404000 call dword ptr ds:[<&MSVBVM50.__vbaLenBs>; \获取注册名长度
0040241B   .  8BF8          mov edi,eax                              ;  EDI=文本长度
0040241D   .  8B4D E8       mov ecx,dword ptr ss:[ebp-0x18]          ;  ECX 注册名
00402420   .  69FF FB7C0100 imul edi,edi,0x17CFB                     ;  EDI=EDI*0x17cf8
00402426   .  51            push ecx                                 ; /String = "?"
00402427   .  0F80 91020000 jo Afkayas_.004026BE                     ; |
0040242D   .  FF15 F8404000 call dword ptr ds:[<&MSVBVM50.#rtcAnsiVa>; \删除首位数据
00402433   .  0FBFD0        movsx edx,ax                             ;  edx=ASCII(first)
00402436   .  03FA          add edi,edx                              ;  edi=edi+edx



asm上有注释,我就不再解释


其实注册码的运算还没有完成,继续向下


[Asm] 纯文本查看 复制代码
00402516   .  8B3D 00414000 mov edi,dword ptr ds:[<&MSVBVM50.__vbaSt>;  msvbvm50.__vbaStrCat
0040251C   .  50            push eax
0040251D   .  68 701B4000   push Afkayas_.00401B70                   ;  AKA-
00402522   .  51            push ecx                                 ; /String = "?"
00402523   .  FFD7          call edi                                 ; \__vbaStrCat
00402525   .  8B1D 70414000 mov ebx,dword ptr ds:[<&MSVBVM50.__vbaSt>;  msvbvm50.__vbaStrMove
0040252B   .  8BD0          mov edx,eax
0040252D   .  8D4D E0       lea ecx,dword ptr ss:[ebp-0x20]


这段代码的意思是

注册码=“AKA-”+注册码


注册码的生成

“AKA-” + 用户名长度 * 0x17cf8 + 第一位注册名的ascii码

算法分析完毕




PS:本人菜鸟一枚 ,大神勿喷




【经验总结】

找准函数后关键跳的上方不远处就可以找到算码代码




文章出处 吾爱破解论坛   by 腾龙细雨
转载请注明作者并保持文章的完整, 谢谢!
                                     2015年8月6日20时59分14秒




附件下载 Afkayas.1.zip (37.5 KB, 下载次数: 2)

免费评分

参与人数 1威望 +1 热心值 +1 收起 理由
Hmily + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Very_good 发表于 2015-8-6 21:39
额  顶一下吧
彼岸花、绽放 发表于 2015-8-7 07:43
小人国历险记 发表于 2015-8-7 13:35
pk8900 发表于 2017-5-30 20:24
本帖最后由 pk8900 于 2017-5-30 20:27 编辑

已OK,分析结果和楼主相同,正好在学习C++,于是编了个C++的注册机
代码如下:
[C++] 纯文本查看 复制代码
#include<iostream>
#include<sstream>
using namespace std;
string name;
char head;
int main(){
        cout<<"Name:";
        cin>>name;
        istringstream sin(name);
        sin>>head;;
        cout<<"Serial:AKA-"<<name.size()*97531+head<<endl;
}

应该可以算出一般情况,对于特殊情况不能处理,C++刚开始学,继续下一个。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 07:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表