您的位置:首页精文荟萃破解文章 → 傲群选股专家 算法分析

傲群选股专家 算法分析

时间:2004/10/15 0:52:00来源:本站整理作者:蓝点我要评论(0)

 

 



软件名称:傲群选股专家
文件大小:3319KB
使用平台:Win9x/Me/NT/2000
最新版本:3.61


软件简介:
  功能强大的智能形态选股工具,依据股票箱理论给出股票突破后不同上涨幅度的概率,还可从历史数据中找出走势相近的个股为操作提供参考。日、周、月K线图和常用技术指标齐备。另外,在2月1日前实行优惠价168元(含半年数据服务费)。为可能,同时决策的信息量更大,选股成功的概率更高。尤其值得指出的是,股票箱理论中的“横有多长,竖有多高”思想对捕捉超级大黑马最为有效。傲群选股专家增加了部分功能,主要包括:1、增加支持汉字选股功能;2、支持复权、除权功能;3、修改了K线颜色,图形显示更符合习惯;4、增加了宝塔线和能量潮(OBV)指标;5、增加了股务管理功能。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

〖说明〗:下午实在无聊,从隔壁同学的《电脑报》光盘里找软件做crack练习,看到了这个股票软件,本来看到要求输入“用户姓名”、“电子邮件”和“联机密码”,以为是很复杂的,没想到………………

工具还是用的trw2000 娃娃修正版

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

填入:
用户姓名:xqlk
电子邮件:master@sina.com
联机密码:11223344
点注册后,要求密码是16位,所以修改为1111222233334444
bpx hmemcpy 按16次F12出现报错的对话框,retry,按15次

00458DAE   > 8D4F 27        LEA ECX,DWORD PTR DS:[EDI+27]
00458DB1   > 51             PUSH ECX                          --->ecx里是1111222233334444,然后,后面就开始做判断,退出了,心生疑问“难道用户名、密码都没用?”
00458DB2   . E8 5D8EFCFF    CALL EXPERT.00421C14              ---> 关键call,进入    
00458DB7   . 59             POP ECX
00458DB8   . 8985 D0FEFFFF  MOV DWORD PTR SS:[EBP-130],EAX
00458DBE   . 83BD D4FEFFFF >CMP DWORD PTR SS:[EBP-12C],0
00458DC5   . 74 69          JE SHORT EXPERT.00458E30
00458DC7   . 8B85 D4FEFFFF  MOV EAX,DWORD PTR SS:[EBP-12C]
00458DCD   . 3B85 D0FEFFFF  CMP EAX,DWORD PTR SS:[EBP-130]
00458DD3   . 7C 5B          JL SHORT EXPERT.00458E30
00458DD5   . E8 A67FFCFF    CALL EXPERT.00420D80
00458DDA   . 99             CDQ
00458DDB   . F7BD D4FEFFFF  IDIV DWORD PTR SS:[EBP-12C]
00458DE1   . 85D2           TEST EDX,EDX
00458DE3   . 75 4B          JNZ SHORT EXPERT.00458E30
00458DE5   . 83BD D4FEFFFF >CMP DWORD PTR SS:[EBP-12C],6
00458DEC   . 74 42          JE SHORT EXPERT.00458E30

由于实在是简单,这个软件本身也是漏洞多多,所以不仔细分析了,直接进关键call
00421C14  /$ 55             PUSH EBP
00421C15  |. 8BEC           MOV EBP,ESP
00421C17  |. 83C4 E0        ADD ESP,-20
00421C1A  |. 53             PUSH EBX
00421C1B  |. 56             PUSH ESI
00421C1C  |. 57             PUSH EDI
00421C1D  |. 8B7D 08        MOV EDI,DWORD PTR SS:[EBP+8]
00421C20  |. 57             PUSH EDI                                 ; /s
00421C21  |. E8 AC1E0D00    CALL             ; \_strlen
简要说明:这个及后面的strlen运算都是针对注册码1111222233334444的
00421C26  |. 59             POP ECX
00421C27  |. 85C0           TEST EAX,EAX
00421C29  |. 75 07          JNZ SHORT EXPERT.00421C32
00421C2B  |. 33C0           XOR EAX,EAX
00421C2D  |. E9 26010000    JMP EXPERT.00421D58
00421C32  |> 57             PUSH EDI                                 ; /s
00421C33  |. E8 9A1E0D00    CALL             ; \_strlen
00421C38  |. 59             POP ECX
00421C39  |. 83F8 10        CMP EAX,10
00421C3C  |. 74 0A          JE SHORT EXPERT.00421C48
00421C3E  |. B8 09000000    MOV EAX,9
00421C43  |. E9 10010000    JMP EXPERT.00421D58
00421C48  |> 33F6           XOR ESI,ESI
00421C4A  |. 8BDF           MOV EBX,EDI
00421C4C  |> 0FBE03         /MOVSX EAX,BYTE PTR DS:[EBX]             --->依次传入注册码的ASCII值,即31、31、31、31、32、……,共16次
00421C4F  |. 50             |PUSH EAX                                ; /c
00421C50  |. E8 3B1E0D00    |CALL          ; \_isxdigit
00421C55  |. 59             |POP ECX                               “isxdigit”函数是做什么用的,还请高手指点。
00421C56  |. 85C0           |TEST EAX,EAX
00421C58  |. 75 0A          |JNZ SHORT EXPERT.00421C64
00421C5A  |. B8 09000000    |MOV EAX,9
00421C5F  |. E9 F4000000    |JMP EXPERT.00421D58
00421C64  |> 46             |INC ESI
00421C65  |. 43             |INC EBX
00421C66  |. 83FE 10        |CMP ESI,10
00421C69  |.^7C E1          \JL SHORT EXPERT.00421C4C
00421C6B  |. 8D55 FC        LEA EDX,DWORD PTR SS:[EBP-4]
00421C6E  |. 52             PUSH EDX
00421C6F  |. 8D4D F8        LEA ECX,DWORD PTR SS:[EBP-8]
00421C72  |. 51             PUSH ECX
00421C73  |. 8D45 F4        LEA EAX,DWORD PTR SS:[EBP-C]
00421C76  |. 50             PUSH EAX
00421C77  |. 8D55 F0        LEA EDX,DWORD PTR SS:[EBP-10]
00421C7A  |. 52             PUSH EDX
00421C7B  |. 8D4D EC        LEA ECX,DWORD PTR SS:[EBP-14]
00421C7E  |. 51             PUSH ECX
00421C7F  |. 8D45 E8        LEA EAX,DWORD PTR SS:[EBP-18]
00421C82  |. 50             PUSH EAX
00421C83  |. 8D55 E4        LEA EDX,DWORD PTR SS:[EBP-1C]
00421C86  |. 52             PUSH EDX
00421C87  |. 8D4D E0        LEA ECX,DWORD PTR SS:[EBP-20]
00421C8A  |. 51             PUSH ECX
00421C8B  |. 68 CBF34F00    PUSH EXPERT.004FF3CB                     ; |format = "%02X%02X%02X%02X%02X%02X%02X%02X"
00421C90  |. 57             PUSH EDI                                 ; |s
00421C91  |. E8 241E0D00    CALL             ; \_sscanf
00421C96  |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]             --->44
00421C99  |. 8B55 F8        MOV EDX,DWORD PTR SS:[EBP-8]             --->44
00421C9C  |. 8B4D F4        MOV ECX,DWORD PTR SS:[EBP-C]             --->33
00421C9F  |. 8B5D F0        MOV EBX,DWORD PTR SS:[EBP-10]            --->33,从密码的最右边开始取,每次取2位。
00421CA2  |. F7D3           NOT EBX
00421CA4  |. F7D1           NOT ECX
00421CA6  |. F7D2           NOT EDX
00421CA8  |. F7D0           NOT EAX
00421CAA  |. 25 FF000000    AND EAX,0FF
00421CAF  |. 81E2 FF000000  AND EDX,0FF
00421CB5  |. 81E1 FF000000  AND ECX,0FF
00421CBB  |. 81E3 FF000000  AND EBX,0FF
00421CC1  |. 335D EC        XOR EBX,DWORD PTR SS:[EBP-14]       --->[EBP-14]=22
00421CC4  |. 334D E8        XOR ECX,DWORD PTR SS:[EBP-18]       --->[EBP-18]=22
00421CC7  |. 3355 E4        XOR EDX,DWORD PTR SS:[EBP-1C]       --->[EBP-1c]=11
00421CCA  |. 3345 E0        XOR EAX,DWORD PTR SS:[EBP-20]       --->[EBP-20]=11
算法出来了,很简单:密码的15、16位取反,与1、2位与,送EAX
                   密码的13、14位取反,与3、4位与,送EDX
        密码的11、12位取反,与5、6位与,送ECX
        密码的 9、10位取反,与7、8位与,送EBX
00421CCD  |. 25 FF000000    AND EAX,0FF
00421CD2  |. 81E2 FF000000  AND EDX,0FF
00421CD8  |. 81E1 FF000000  AND ECX,0FF
00421CDE  |. 81E3 FF000000  AND EBX,0FF
00421CE4  |. 83C4 28        ADD ESP,28                          --->开始做比较了。一共5种情况,标志位在EAX,其值分别是2、1、3、4、9
00421CE7  |. 83F8 32        CMP EAX,32
00421CEA  |. 75 16          JNZ SHORT EXPERT.00421D02
00421CEC  |. 83FA 31        CMP EDX,31
00421CEF  |. 75 11          JNZ SHORT EXPERT.00421D02
00421CF1  |. 83F9 30        CMP ECX,30
00421CF4  |. 75 0C          JNZ SHORT EXPERT.00421D02
00421CF6  |. 83FB 2F        CMP EBX,2F
00421CF9  |. 75 07          JNZ SHORT EXPERT.00421D02
00421CFB  |. B8 02000000    MOV EAX,2
00421D00  |. EB 56          JMP SHORT EXPERT.00421D58
第一种情况:成功注册后,开始连接网络
00421D02  |> 83F8 33        CMP EAX,33
00421D05  |. 75 16          JNZ SHORT EXPERT.00421D1D
00421D07  |. 83FA 34        CMP EDX,34
00421D0A  |. 75 11          JNZ SHORT EXPERT.00421D1D
00421D0C  |. 83F9 35        CMP ECX,35
00421D0F  |. 75 0C          JNZ SHORT EXPERT.00421D1D
00421D11  |. 83FB 36        CMP EBX,36
00421D14  |. 75 07          JNZ SHORT EXPERT.00421D1D
00421D16  |. B8 01000000    MOV EAX,1
00421D1B  |. EB 3B          JMP SHORT EXPERT.00421D58
第二种情况:成功注册后,显示“试用版用户注册成功”
00421D1D  |> 83F8 2E        CMP EAX,2E
00421D20  |. 75 16          JNZ SHORT EXPERT.00421D38
00421D22  |. 83FA 2D        CMP EDX,2D
00421D25  |. 75 11          JNZ SHORT EXPERT.00421D38
00421D27  |. 83F9 2C        CMP ECX,2C
00421D2A  |. 75 0C          JNZ SHORT EXPERT.00421D38
00421D2C  |. 83FB 2B        CMP EBX,2B
00421D2F  |. 75 07          JNZ SHORT EXPERT.00421D38
00421D31  |. B8 03000000    MOV EAX,3
00421D36  |. EB 20          JMP SHORT EXPERT.00421D58
第三种情况:成功注册后,也开始连接网络
00421D38  |> 83F8 31        CMP EAX,31
00421D3B  |. 75 16          JNZ SHORT EXPERT.00421D53
00421D3D  |. 83FA 32        CMP EDX,32
00421D40  |. 75 11          JNZ SHORT EXPERT.00421D53
00421D42  |. 83F9 33        CMP ECX,33
00421D45  |. 75 0C          JNZ SHORT EXPERT.00421D53
00421D47  |. 83FB 34        CMP EBX,34
00421D4A  |. 75 07          JNZ SHORT EXPERT.00421D53
00421D4C  |. B8 04000000    MOV EAX,4
00421D51  |. EB 05          JMP SHORT EXPERT.00421D58
第四种情况:成功注册后,跟第一、三一样,连网了…………
00421D53  |> B8 09000000    MOV EAX,9
EAX=9是第五种情况:GAME OVER!
00421D58  |> 5F             POP EDI
00421D59  |. 5E             POP ESI
00421D5A  |. 5B             POP EBX
00421D5B  |. 8BE5           MOV ESP,EBP
00421D5D  |. 5D             POP EBP
00421D5E  \. C3             RETN

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

关键call到此为止,算法简单,xor跟not都是可以做逆运算的,这里提供一组密码:
第一种情况:5457564999999999
第二种情况:5552535099999999
第三种情况:4142434490909090
第四种情况:5754555299999999
分了4种情况,估计是因为实际注册时,根据交出的money不同也有一般用户、VIP等之分吧。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

〖总结〗整个算法并没有用到用户名和邮箱地址,初步判断用户名是在连上internet后判断是否存在当前用户用的吧。程序中还有判断email地址是不是合法地址的代码,感觉有点混乱。但这个程序对crack还是做了些保护的,比如w32dasm不能反出汇编代码(死机,所以我用了OllyDbg)、先打开trw后开程序会蓝屏等。别的嘛,也没什么好说的了,最后祝大家身体健康,一年不咳嗽!(呵呵,非典啊,怕怕)


    
    
     
    
    
     

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 去除winrar注册框方法

最新文章 比特币病毒怎么破解 比去除winrar注册框方法 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据

人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程