野猫III 发表于 2009-9-30 09:51:57

三江门诊收费系统 6.0简单算法分析

破文作者:WildCatIII
软件下载:http://www.skycn.com/soft/16783.html
软件大小:1.79MB
发布时间:2009.08.05
软件语言:简体中文
软件类别:国产软件 / 共享版 / 健康医药
应用平台:Win9x/NT/2000/XP
软件介绍: 三江门诊收费系统功能:门诊划价收费、药品进销存管理、医生及科室工作量统计、库存及有效期管理、优惠打折收费、票据可打印明细单,也可只打印总的中西药费等分类,可以根据用户的要求定制各种发票样式,并且能让用户自己调整报表位置及纸张大小。开发者有十多年医院工作经验,成功案例遍布全国各大中城市,软件最大的特点为简单实用,欢迎您下载试用并提出宝贵意见!

分析过程:
一、看了神猪的破文(https://www.chinapyg.com/viewthread.php?tid=11409&highlight=%C8%FD%BD%AD%C3%C5%D5%EF),觉得不错,按照他的方法,新的6.0版也断了下来。
二、分析以下:
005C7961|.55               PUSH EBP
005C7962|.68 DA7B5C00      PUSH SJMZSF.005C7BDA
005C7967|.64:FF30          PUSH DWORD PTR FS:
005C796A|.64:8920          MOV DWORD PTR FS:,ESP
005C796D|.8D55 F8          LEA EDX,DWORD PTR SS:
005C7970|.8B83 04030000    MOV EAX,DWORD PTR DS:
005C7976|.E8 8D74EBFF      CALL SJMZSF.0047EE08
005C797B|.8B45 F8          MOV EAX,DWORD PTR SS:             ;假码
005C797E|.8D55 FC          LEA EDX,DWORD PTR SS:
005C7981|.E8 EA13E4FF      CALL SJMZSF.00408D70                     ;取位数
005C7986|.837D FC 00       CMP DWORD PTR SS:,0
005C798A|.75 1D            JNZ SHORT SJMZSF.005C79A9                ;假码不能为空
005C798C|.6A 00            PUSH 0
005C798E|.B9 E87B5C00      MOV ECX,SJMZSF.005C7BE8
005C7993|.BA F07B5C00      MOV EDX,SJMZSF.005C7BF0
005C7998|.A1 D0995E00      MOV EAX,DWORD PTR DS:
005C799D|.8B00             MOV EAX,DWORD PTR DS:
005C799F|.E8 408BEDFF      CALL SJMZSF.004A04E4
005C79A4|.E9 CE010000      JMP SJMZSF.005C7B77
005C79A9|>8D55 F0          LEA EDX,DWORD PTR SS:            ;输入假码来到这
005C79AC|.8B83 04030000    MOV EAX,DWORD PTR DS:
005C79B2|.E8 5174EBFF      CALL SJMZSF.0047EE08
005C79B7|.8B45 F0          MOV EAX,DWORD PTR SS:            ;假码
005C79BA|.8D55 F4          LEA EDX,DWORD PTR SS:
005C79BD|.E8 AE13E4FF      CALL SJMZSF.00408D70
005C79C2|.8B45 F4          MOV EAX,DWORD PTR SS:             ;假码
005C79C5|.50               PUSH EAX
005C79C6|.8D45 D8          LEA EAX,DWORD PTR SS:
005C79C9|.50               PUSH EAX
005C79CA|.8D55 D4          LEA EDX,DWORD PTR SS:
005C79CD|.8B83 FC020000    MOV EAX,DWORD PTR DS:
005C79D3|.E8 3074EBFF      CALL SJMZSF.0047EE08
005C79D8|.8B45 D4          MOV EAX,DWORD PTR SS:            ;机器码ASCII "00020FC20000080000000001078BFBFF"
005C79DB|.B9 1B000000      MOV ECX,1B                               ;ECX=1B
005C79E0|.BA 05000000      MOV EDX,5                              ;EDX=5
005C79E5|.E8 A6CFE3FF      CALL SJMZSF.00404990
005C79EA|.8B45 D8          MOV EAX,DWORD PTR SS:            ;根据出来的结果可以得知,从机器码第5位起取1B(27)位字符
005C79ED|.8D55 DC          LEA EDX,DWORD PTR SS:            ;ASCII "0FC20000080000000001078BFBF"设为Str2
005C79F0|.E8 0BF2FAFF      CALL SJMZSF.00576C00
005C79F5|.8D45 DC          LEA EAX,DWORD PTR SS:
005C79F8|.8D55 EC          LEA EDX,DWORD PTR SS:
005C79FB|.E8 74F2FAFF      CALL SJMZSF.00576C74
005C7A00|.8B55 EC          MOV EDX,DWORD PTR SS:            ;Str2的MD5 32位码ASCII "1b54f8fa39912d6eb501d578b0fbbcec"
005C7A03|.58               POP EAX                                  ;假码出栈
005C7A04|.E8 73CEE3FF      CALL SJMZSF.0040487C                     ;CALL进比较
005C7A09|.0F85 50010000    JNZ SJMZSF.005C7B5F                      ;结果错误跳完。

算法小结:将机器码取出一段,6.0版的是自第5位起,取27位,转成32位的MD5就是注册码。
转帖请注明作者及出处,谢谢。

wan 发表于 2009-9-30 14:29:15

学习~~最初接触算法就是这个东东了

老万 发表于 2009-10-1 17:52:21

学习了 ,谢谢

老海 发表于 2009-10-1 19:38:24

分析的很好,支持一下。

孤漂江湖狼 发表于 2009-10-2 11:36:04

支持猫大了,来学习了

jackzkm 发表于 2009-10-2 11:58:01

支持了,很不错的

qifeon 发表于 2009-10-2 22:31:27

猫大偶像来了,学习下。

YUEN 发表于 2009-11-2 00:31:22

多谢分享,回头下载了学习一下

a2006 发表于 2009-11-30 00:26:22

这么长时间,对算法,一定不懂。

hebeimxf 发表于 2009-11-30 15:47:21

学习一下,正需要
页: [1] 2
查看完整版本: 三江门诊收费系统 6.0简单算法分析