老文章档案 · 2003 年

傲群选股专家 算法分析

赢政天下 [WINZHENG.COM] · 网络学院 · 2003-07-15 · 作者:xq 人气: · 出处:赢政天下整理收藏)

软件名称:傲群选股专家

文件大小: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 <JMP.&CC3250MT._strlen> ; \_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 <JMP.&CC3250MT._strlen> ; \_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 <JMP.&CC3250MT._isxdigit> ; \_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 <JMP.&CC3250MT._sscanf> ; \_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后开程序会蓝屏等。别的嘛,也没什么好说的了,最后祝大家身体健康,一年不咳嗽!(呵呵,非典啊,怕怕)

(出处:赢政天下整理收藏)

相关文章:

·语音界面2.0算法分析及注册机源码!

·侠客系统修改器1.21破解手记--算法分析

·中文拨号上网计时计费器 V4.12注册算法分析

·ClockWise 3.22e注册码算法分析

·CoolClock V1.02注册算法分析

·Directory Scanner v1.5 注册算法分析

·Disk Chief 1.2 简单注册算法分析

·EffeTech HTTP Sniffer 3.2注册算法分析

·eLib2.01算法分析

·EZ MP3 Recorder 1.15 注册算法分析

相关软件:

→ 特别推荐

→ 热点TOP10

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史