Nisy 发表于 2007-8-12 01:40:44

美卡五子棋 3.2.0 简单分析

美卡休闲五子棋 3.2.0
软件大小:926KB
软件类别:国产软件/棋牌游戏   
软件授权:共享版
软件语言:简体中文
运行环境:Win9x/Me/NT/2000/XP/2003
更新时间:2007-3-3 10:55:11

华军下载: http://www.onlinedown.net/soft/50993.htm


软件详细信息:
    一款非常COOL的休闲五子棋!支持人机大战和双人对奕。在运行游戏时随时可对游戏的难度进行调节。3.0.0中新增了悔棋和自动运棋功能!


这个软件调试起来很奇怪,我跟了半天,始终在系统领空走来走去,起初怀疑是P-CODE编译,使用DiE查一下,发现不是   于是继续调试, 下万能断点, 跑来跑去终于跑到了程序领空, 汗的是没发现算法在哪里, 只看到一个明码比较就结束了我直接给大家断点好了,找到这个断点确实很费时间. 当然大家可以搜索UNICODE的时候在最后两行数据那下断, 因为那就是将注册信息保存到注册表的键值.


00464FD0    55            PUSH EBP
00464FD1    8BEC            MOV EBP,ESP
00464FD3    83EC 0C         SUB ESP,0C
00464FD6    68 16164000   PUSH <JMP.&MSVBVM60.__vbaExceptHandler>
00464FDB    64:A1 00000000MOV EAX,DWORD PTR FS:
00464FE1    50            PUSH EAX
00464FE2    64:8925 0000000>MOV DWORD PTR FS:,ESP
00464FE9    81EC 1C010000   SUB ESP,11C
00464FEF    53            PUSH EBX
00464FF0    56            PUSH ESI
00464FF1    57            PUSH EDI
00464FF2    8965 F4         MOV DWORD PTR SS:,ESP
00464FF5    C745 F8 0016400>MOV DWORD PTR SS:,美卡休闲.00401600
00464FFC    8B75 08         MOV ESI,DWORD PTR SS:
00464FFF    8BC6            MOV EAX,ESI
00465001    83E0 01         AND EAX,1
00465004    8945 FC         MOV DWORD PTR SS:,EAX
00465007    83E6 FE         AND ESI,FFFFFFFE
0046500A    56            PUSH ESI
……………………
中间部分省略
……………………
004652EB    8B06            MOV EAX,DWORD PTR DS:
004652ED    56            PUSH ESI
004652EE    FF90 00030000   CALL DWORD PTR DS:
004652F4    8D4D E0         LEA ECX,DWORD PTR SS:
004652F7    50            PUSH EAX
004652F8    51            PUSH ECX
004652F9    FFD3            CALL EBX
004652FB    8BF8            MOV EDI,EAX
004652FD    8D45 E8         LEA EAX,DWORD PTR SS:
00465300    50            PUSH EAX
00465301    57            PUSH EDI
00465302    8B17            MOV EDX,DWORD PTR DS:
00465304    FF92 A0000000   CALL DWORD PTR DS:
0046530A    85C0            TEST EAX,EAX
0046530C    DBE2            FCLEX
0046530E    7D 12         JGE SHORT 美卡休闲.00465322
00465310    68 A0000000   PUSH 0A0
00465315    68 2C134500   PUSH 美卡休闲.0045132C
0046531A    57            PUSH EDI
0046531B    50            PUSH EAX
0046531C    FF15 60104000   CALL DWORD PTR DS:[<&MSVBVM60.__vbaHresu>; MSVBVM60.__vbaHresultCheckObj
00465322    8B4D E8         MOV ECX,DWORD PTR SS:
00465325    51            PUSH ECX
00465326    FF15 40114000   CALL DWORD PTR DS:[<&MSVBVM60.__vbaR8Str>; MSVBVM60.__vbaR8Str
0046532C    DB05 58704600   FILD DWORD PTR DS:               ; 这里
00465332    DD9D E0FEFFFF   FSTP QWORD PTR SS:            ; 这里放假码
00465338    DC9D E0FEFFFF   FCOMP QWORD PTR SS:             ; 真假码比较
0046533E    DFE0            FSTSW AX                                 ; 这里不清楚是怎么对标志位做了处理
00465340    F6C4 40         TEST AH,40
00465343    74 07         JE SHORT 美卡休闲.0046534C                   ; 这里NOP掉 就可弹出注册正确对话框
00465345    BF 01000000   MOV EDI,1
0046534A    EB 02         JMP SHORT 美卡休闲.0046534E
0046534C    33FF            XOR EDI,EDI
0046534E    8D4D E8         LEA ECX,DWORD PTR SS:
00465351    FF15 BC114000   CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeS>; MSVBVM60.__vbaFreeStr
00465357    8D4D E0         LEA ECX,DWORD PTR SS:
0046535A    FF15 B8114000   CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeO>; MSVBVM60.__vbaFreeObj
00465360    F7DF            NEG EDI
00465362    66:85FF         TEST DI,DI
00465365    0F84 71030000   JE 美卡休闲.004656DC                         ; 这里跳走就挂掉了
0046536B    A1 68744600   MOV EAX,DWORD PTR DS:
00465370    85C0            TEST EAX,EAX
00465372    75 10         JNZ SHORT 美卡休闲.00465384
00465374    68 68744600   PUSH 美卡休闲.00467468
00465379    68 F4084500   PUSH 美卡休闲.004508F4
0046537E    FF15 44114000   CALL DWORD PTR DS:[<&MSVBVM60.__vbaNew2>>; MSVBVM60.__vbaNew2
00465384    8B3D 68744600   MOV EDI,DWORD PTR DS:
0046538A    8D45 E0         LEA EAX,DWORD PTR SS:
0046538D    50            PUSH EAX
0046538E    57            PUSH EDI
0046538F    8B17            MOV EDX,DWORD PTR DS:
00465391    FF52 14         CALL DWORD PTR DS:
00465394    85C0            TEST EAX,EAX
00465396    DBE2            FCLEX
00465398    7D 0F         JGE SHORT 美卡休闲.004653A9
0046539A    6A 14         PUSH 14
0046539C    68 90054500   PUSH 美卡休闲.00450590
004653A1    57            PUSH EDI
004653A2    50            PUSH EAX
004653A3    FF15 60104000   CALL DWORD PTR DS:[<&MSVBVM60.__vbaHresu>; MSVBVM60.__vbaHresultCheckObj
004653A9    8B45 E0         MOV EAX,DWORD PTR SS:
004653AC    8D55 E8         LEA EDX,DWORD PTR SS:
004653AF    52            PUSH EDX
004653B0    50            PUSH EAX
004653B1    8B08            MOV ECX,DWORD PTR DS:
004653B3    8BF8            MOV EDI,EAX
004653B5    FF51 58         CALL DWORD PTR DS:
004653B8    85C0            TEST EAX,EAX
004653BA    DBE2            FCLEX
004653BC    7D 0F         JGE SHORT 美卡休闲.004653CD
004653BE    6A 58         PUSH 58
004653C0    68 04094500   PUSH 美卡休闲.00450904
004653C5    57            PUSH EDI
004653C6    50            PUSH EAX
004653C7    FF15 60104000   CALL DWORD PTR DS:[<&MSVBVM60.__vbaHresu>; MSVBVM60.__vbaHresultCheckObj
004653CD    8B06            MOV EAX,DWORD PTR DS:
004653CF    56            PUSH ESI
004653D0    FF90 00030000   CALL DWORD PTR DS:
004653D6    8D4D DC         LEA ECX,DWORD PTR SS:
004653D9    50            PUSH EAX
004653DA    51            PUSH ECX
004653DB    FFD3            CALL EBX
004653DD    8BF8            MOV EDI,EAX
004653DF    8D45 E4         LEA EAX,DWORD PTR SS:
004653E2    50            PUSH EAX
004653E3    57            PUSH EDI
004653E4    8B17            MOV EDX,DWORD PTR DS:
004653E6    FF92 A0000000   CALL DWORD PTR DS:
004653EC    85C0            TEST EAX,EAX
004653EE    DBE2            FCLEX
004653F0    7D 12         JGE SHORT 美卡休闲.00465404
004653F2    68 A0000000   PUSH 0A0
004653F7    68 2C134500   PUSH 美卡休闲.0045132C
004653FC    57            PUSH EDI
004653FD    50            PUSH EAX
004653FE    FF15 60104000   CALL DWORD PTR DS:[<&MSVBVM60.__vbaHresu>; MSVBVM60.__vbaHresultCheckObj
00465404    8B4D E4         MOV ECX,DWORD PTR SS:            ; 这里要保存注册信息了
00465407    8B55 E8         MOV EDX,DWORD PTR SS:
0046540A    51            PUSH ECX
0046540B    68 5C0A4500   PUSH 美卡休闲.00450A5C                     ; HAWK WZQ MA
00465410    68 500A4500   PUSH 美卡休闲.00450A50                     ; ZC
00465415    52            PUSH EDX
00465416    FF15 08104000   CALL DWORD PTR DS:[<&MSVBVM60.#690>]   ; MSVBVM60.rtcSaveSetting
0046541C    8D45 E4         LEA EAX,DWORD PTR SS:
0046541F    8D4D E8         LEA ECX,DWORD PTR SS:
00465422    50            PUSH EAX
00465423    51            PUSH ECX
00465424    6A 02         PUSH 2



算法部分没找到, 兴许在DS: 这里下硬断能搞到, 时间和精力问题, 就不再搞了. 怀疑这东西用了VM   如何测定我也没什么证据. 这程序很特殊, 推荐有时间的朋友来调试一下~~

软件将注册信息保存到注册表这个地址,删除后即可继续研究:
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\美卡休闲五子棋\ZC





由于是明码, 给大家一个另累的KG设置来看下.




成功画面:


pw2000 发表于 2007-8-12 16:50:13

下载来学习,谢谢总坛主!

wofan 发表于 2007-8-12 19:26:59

支持呀,记得春节期间在本论坛发过它的注册机,只是忘记了它的版本……
当时玩了几盘,发现它的水平比较差,我是很轻易就胜了它,后来就删除它了。

[ 本帖最后由 wofan 于 2007-8-12 19:28 编辑 ]

Nisy 发表于 2007-8-12 20:26:57

确实 这游戏设计的不怎么的 还出来收费 该杀~

对五子棋感兴趣的朋友可以看一下这款软件 很不错的哦

[世界连珠软件冠军]Black Stone V3.82 励精汉化版 + KeyGen
https://www.chinapyg.com/viewthread.php?tid=17350

kurusaki 发表于 2007-9-29 16:02:00

不错,对五只其一直很感兴趣的
页: [1]
查看完整版本: 美卡五子棋 3.2.0 简单分析