首页
社区
课程
招聘
风飘雪大侠的一个VB的CRACKME算法分析
发表于: 2006-2-8 17:29 6986

风飘雪大侠的一个VB的CRACKME算法分析

2006-2-8 17:29
6986

1)PEID检查,Microsoft Visual Basic 5.0 / 6.0。无壳
2)试运行程序,任意输入注册信息后有错误提示“重新来过吧”
3)OD载入程序,用OD的超级字符串查找功能找不到相应的内容。
  只好在命令行下断。bp __vbaVarTstEq  bp __vbaStrCmp都不能成功将程序中断。
  只有用bp __vbaLenBstr才可以使程序中断。
4)用bp __vbaLenBstr下断后,任意输入注册信息。
  程序中断在这里
6A2A49CE >  8B4424 04       MOV EAX,DWORD PTR SS:[ESP+4]
6A2A49D2    85C0            TEST EAX,EAX
6A2A49D4    74 05           JE SHORT MSVBVM60.6A2A49DB
6A2A49D6    8B40 FC         MOV EAX,DWORD PTR DS:[EAX-4]
6A2A49D9    D1E8            SHR EAX,1
6A2A49DB    C2 0400         RETN 4
ALT+F9返回程序领空:
来到这里。。。
00412EC8   .  FF15 0C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaLenBs>;  取注册名位数
00412ECE   .  8BC8          MOV ECX,EAX
00412ED0   .  FF15 54104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaI2I4>>;  
00412ED6   .  8D4D C8       LEA ECX,DWORD PTR SS:[EBP-38]            ;  EBP-38=注册名
00412ED9   .  8BD8          MOV EBX,EAX
00412EDB   .  FF15 BC104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeS>;  
00412EE1   .  8D4D B8       LEA ECX,DWORD PTR SS:[EBP-48]
00412EE4   .  FF15 C0104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeO>;  
00412EEA   .  66:83FB 06    CMP BX,6                                 ;  注册名不得小于6位,小于则跳向结束
00412EEE   .  0F8D 81000000 JGE CrackMe0.00412F75
00412EF4   .  B9 0A000000   MOV ECX,0A
00412EF9   .  B8 04000280   MOV EAX,80020004
00412EFE   .  898D 78FFFFFF MOV DWORD PTR SS:[EBP-88],ECX
00412F04   .  894D 88       MOV DWORD PTR SS:[EBP-78],ECX
00412F07   .  894D 98       MOV DWORD PTR SS:[EBP-68],ECX
00412F0A   .  8D95 68FFFFFF LEA EDX,DWORD PTR SS:[EBP-98]
00412F10   .  8D4D A8       LEA ECX,DWORD PTR SS:[EBP-58]
00412F13   .  8945 80       MOV DWORD PTR SS:[EBP-80],EAX
00412F16   .  8945 90       MOV DWORD PTR SS:[EBP-70],EAX
00412F19   .  8945 A0       MOV DWORD PTR SS:[EBP-60],EAX
00412F1C   .  C785 70FFFFFF>MOV DWORD PTR SS:[EBP-90],CrackMe0.00411>
00412F26   .  C785 68FFFFFF>MOV DWORD PTR SS:[EBP-98],8
00412F30   .  FF15 9C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarDu>;  
00412F36   .  8D85 78FFFFFF LEA EAX,DWORD PTR SS:[EBP-88]
00412F3C   .  8D4D 88       LEA ECX,DWORD PTR SS:[EBP-78]
00412F3F   .  50            PUSH EAX
00412F40   .  8D55 98       LEA EDX,DWORD PTR SS:[EBP-68]
00412F43   .  51            PUSH ECX
00412F44   .  52            PUSH EDX
00412F45   .  8D45 A8       LEA EAX,DWORD PTR SS:[EBP-58]
00412F48   .  6A 00         PUSH 0
00412F4A   .  50            PUSH EAX
00412F4B   .  FF15 30104000 CALL DWORD PTR DS:[<&MSVBVM60.#595>]     ;  
00412F51   .  8D8D 78FFFFFF LEA ECX,DWORD PTR SS:[EBP-88]
00412F57   .  8D55 88       LEA EDX,DWORD PTR SS:[EBP-78]
00412F5A   .  51            PUSH ECX
00412F5B   .  8D45 98       LEA EAX,DWORD PTR SS:[EBP-68]
00412F5E   .  52            PUSH EDX
00412F5F   .  8D4D A8       LEA ECX,DWORD PTR SS:[EBP-58]
00412F62   .  50            PUSH EAX
00412F63   .  51            PUSH ECX
00412F64   .  6A 04         PUSH 4
00412F66   .  FF15 14104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeV>;  
00412F6C   .  83C4 14       ADD ESP,14
00412F6F   .  FF15 10104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaEnd>] ;  
00412F75   >  8B55 D4       MOV EDX,DWORD PTR SS:[EBP-2C]               将小写字母转换相应的大写字母
00412F78   .  BB 02000000   MOV EBX,2                                ;  
00412F7D   .  53            PUSH EBX
00412F7E   .  52            PUSH EDX
00412F7F   .  895D B0       MOV DWORD PTR SS:[EBP-50],EBX
00412F82   .  895D A8       MOV DWORD PTR SS:[EBP-58],EBX
00412F85   .  FF15 AC104000 CALL DWORD PTR DS:[<&MSVBVM60.#618>]     ;  取注册名最右边的两位
00412F8B   .  8BD0          MOV EDX,EAX
00412F8D   .  8D4D C8       LEA ECX,DWORD PTR SS:[EBP-38]
00412F90   .  FFD6          CALL ESI
00412F92   .  50            PUSH EAX
00412F93   .  8B45 D4       MOV EAX,DWORD PTR SS:[EBP-2C]
00412F96   .  53            PUSH EBX
00412F97   .  50            PUSH EAX
00412F98 > .  FF15 A0104000 CALL DWORD PTR DS:[<&MSVBVM60.#616>]     ;  取注册名最左边的两位
00412F9E   .  8BD0          MOV EDX,EAX
00412FA0   .  8D4D C4       LEA ECX,DWORD PTR SS:[EBP-3C]
00412FA3   .  FFD6          CALL ESI
00412FA5   .  8B1D 20104000 MOV EBX,DWORD PTR DS:[<&MSVBVM60.__vbaSt>;
00412FAB   .  50            PUSH EAX
00412FAC   .  FFD3          CALL EBX                                 ;  最右边两位和最左边两位合并,设为A
00412FAE   .  8BD0          MOV EDX,EAX
00412FB0   .  8D4D C0       LEA ECX,DWORD PTR SS:[EBP-40]
00412FB3   .  FFD6          CALL ESI
00412FB5   .  8B55 D4       MOV EDX,DWORD PTR SS:[EBP-2C]
00412FB8   .  8D4D A8       LEA ECX,DWORD PTR SS:[EBP-58]
00412FBB   .  50            PUSH EAX
00412FBC   .  51            PUSH ECX
00412FBD   .  6A 02         PUSH 2
00412FBF   .  52            PUSH EDX
00412FC0   .  FF15 44104000 CALL DWORD PTR DS:[<&MSVBVM60.#631>]     ;  取注册名的第二和第三位,设为B
00412FC6   .  8BD0          MOV EDX,EAX
00412FC8   .  8D4D BC       LEA ECX,DWORD PTR SS:[EBP-44]
00412FCB   .  FFD6          CALL ESI
00412FCD   .  50            PUSH EAX
00412FCE   .  FFD3          CALL EBX
00412FD0   .  8BD0          MOV EDX,EAX                              ;  A与B合并
00412FD2   .  8D4D D0       LEA ECX,DWORD PTR SS:[EBP-30]、
省略一些代码。。。。。。
0041305A   .  FF15 98104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCo>;  真假注册码比较
00413060   .  66:85C0       TEST AX,AX
00413063   .  0F85 08010000 JNZ CrackMe0.00413171                       不相等就跳向结束
------------------------------------------------------------------------BY 逍遥风
算法总结:
1)注册名必须大于六位。
2)取注册名的最右边两位(设为甲)。最左边两位(设为乙)。第2和第3位(设为丙)。
3)将甲乙丙合并即为注册码。
例:19860805
    取其最右边两位05。最左边两位19。第2和第3位98
所以  注册名:19860805
      注册码:051998
********************************************注意***********************************************
如果注册名中有小写字母,则程序先将其先转换成相应的大写字母。
例:
    注册名aabbccdd 对应的注册码是DDAAAb
有错误或疏漏的地方请大家指出


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (8)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
那位兄弟知道风飘雪大虾,现在怎样了??

我就是看了他的一篇文章,才爱上破解的!!!
2006-2-11 19:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
好帖啊.........
2006-2-14 18:16
0
雪    币: 115
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我就是风飘雪
我的qq  19566535
欢迎有空聊聊
2006-2-20 09:34
0
雪    币: 200
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
怎么精品都没人顶呀?!我要支持一下!学习一下.哎,还是这样有实例的学,长劲比较快!
大家都经常来支持呀!
2006-2-22 12:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
希望多发表风飘雪的crackme的文章
2006-2-24 14:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
看我的
name:linwen42
code:42LIIN
2006-2-24 14:20
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
好文章,好好学习!
2006-2-24 19:08
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
虽然破了,但算法还不会
2006-3-5 21:04
0
游客
登录 | 注册 方可回帖
返回
//