飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2345|回复: 2

申请加入[PYG]破文之二

[复制链接]
  • TA的每日心情
    慵懒
    2019-1-18 17:27
  • 签到天数: 30 天

    [LV.5]常住居民I

    发表于 2005-12-28 16:30:12 | 显示全部楼层 |阅读模式
    破解作者】 lzq1973
    【作者邮箱】 [email protected]
    【使用工具】 PEiD V0.93、C32Asm、OllyDBG1.1
    【破解平台】 Win9x/NT/2000/XP
    【软件名称】 佳宜进销存管理软件 V3.45
    【下载地址】 http://www3.skycn.com/soft/14336.html
    【软件大小】 3814 KB
    【加壳方式】 无
    【软件简介】     易用商品进销存管理软件参考了各类进销存管理软件精华,溶入了各自的优点并采纳众多用户的宝贵意见,真正地从用户的需要出发,为客户需要而设计。
        本软件适用于大中小型企业、商畅?生产厂等物资供销、商品流通部门进行物资(商品)的采购、销售、库存的管理。主要功能包括进采购、采购退货、销售、销售退货、物料领用、领料退回、库存盘点、仓库调拨、借入、借出、借入还出、借出还入,供方客户资料管理,供方供货汇总、明细报表,客户供货汇总、明细报表,部门领用汇总、明细报表、仓库汇总、明细报表。销售毛利汇总
        明细报表,销售年报表等多种报表,使公司业务情况一目了然。
        本系统采用安全稳定的数据库管理系统设计而成,介面友好,所见即所得,操作简便,多级密码设置及备份功能,数据安全可靠,全真模拟显示功能,经营业务管理成熟,汇集了许多优秀企业的成功管理经验。
        现已广泛应用于:大中小型企业集团、工厂、进出口公司`、五交化公司、商畅?购物中心、酒店、连锁店、专卖店、批发部;化工、建材、五金水电、医药、汽配、食品、服装、电子、电脑、图书、仓储、化装品等行业。
        软件修改:      
    1.增加库存多种计价方式(加权平均法、平均成本法、固定成本法),库存金额的计算更加准确;
    2.增加了数量、单价、金额小数位数的设置;
    3.增加了是否自动货品编号、允许出现负库存;
    4.增加了库存库存计价方式的设置;
    5.增加了自动备份,恢复的设置。

    【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    --------------------------------------------------------------------------------
    【破解内容】


        首先是侦壳,用PEID看看,无。又是一个没壳的,看来有戏,此等软体正适合我。
        运行程序,来到注册界面,随便输些什么点注册看看有什么提示,记下来。我的的产品编号为7EF1VKA4,还要输入用户名,这些相关的都要记住,后面会有用的。
        用C32Asm打开JxcAccessMan.exe,找有关字符串(就是刚才记下的那些),这样可方便的找到断点(用OD查字符串,字太小,看的不爽)。
        OD载入程序,在005EBF08处下断,来到


    005EBF08   .  E8 4B30E6FF   CALL JxcAcces.0044EF58
    005EBF0D   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]            ;  用户名传给EAX
    005EBF10   .  8D55 F4       LEA EDX,DWORD PTR SS:[EBP-C]
    005EBF13   .  E8 00D8E1FF   CALL JxcAcces.00409718
    005EBF18   .  837D F4 00    CMP DWORD PTR SS:[EBP-C],0               ;  比较用户名长度是否为0
    005EBF1C   .  75 22         JNZ SHORT JxcAcces.005EBF40              ;  如不为零就跳走
    005EBF1E   .  6A 00         PUSH 0
    005EBF20   .  68 64C15E00   PUSH JxcAcces.005EC164                   ;  请填写用户名称
    005EBF25   .  E8 C207FFFF   CALL <JMP.&PunUnitLib.ShowMess>
    005EBF2A   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    005EBF2D   .  8B80 04030000 MOV EAX,DWORD PTR DS:[EAX+304]
    005EBF33   .  8B10          MOV EDX,DWORD PTR DS:[EAX]
    005EBF35   .  FF92 C0000000 CALL DWORD PTR DS:[EDX+C0]
    005EBF3B   .  E9 B1010000   JMP JxcAcces.005EC0F1
    005EBF40   >  8D55 E8       LEA EDX,DWORD PTR SS:[EBP-18]
    005EBF43   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    005EBF46   .  8B80 FC020000 MOV EAX,DWORD PTR DS:[EAX+2FC]
    005EBF4C   .  E8 0730E6FF   CALL JxcAcces.0044EF58
    005EBF51   .  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
    005EBF54   .  8D55 EC       LEA EDX,DWORD PTR SS:[EBP-14]
    005EBF57   .  E8 BCD7E1FF   CALL JxcAcces.00409718
    005EBF5C   .  837D EC 00    CMP DWORD PTR SS:[EBP-14],0              ;  比较假码是否为0
    005EBF60   .  75 22         JNZ SHORT JxcAcces.005EBF84              ;  如不为零就跳
    005EBF62   .  6A 00         PUSH 0
    005EBF64   .  68 78C15E00   PUSH JxcAcces.005EC178                   ;  授权号不能为空,请填写授权号!
    005EBF69   .  E8 7E07FFFF   CALL <JMP.&PunUnitLib.ShowMess>
    005EBF6E   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    005EBF71   .  8B80 FC020000 MOV EAX,DWORD PTR DS:[EAX+2FC]
    005EBF77   .  8B10          MOV EDX,DWORD PTR DS:[EAX]
    005EBF79   .  FF92 C0000000 CALL DWORD PTR DS:[EDX+C0]
    005EBF7F   .  E9 6D010000   JMP JxcAcces.005EC0F1
    005EBF84   >  A1 F8966B00   MOV EAX,DWORD PTR DS:[6B96F8]
    005EBF89   .  8B00          MOV EAX,DWORD PTR DS:[EAX]               ;  两个ASCII "C26P-Q618",用来拼接注册码用的
    005EBF8B   .  E8 4090E1FF   CALL JxcAcces.00404FD0
    005EBF90   .  50            PUSH EAX                                 ;   把"C26P-Q618"压入堆栈
    005EBF91   .  8D55 E4       LEA EDX,DWORD PTR SS:[EBP-1C]
    005EBF94   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    005EBF97   .  8B80 F4020000 MOV EAX,DWORD PTR DS:[EAX+2F4]
    005EBF9D   .  E8 B62FE6FF   CALL JxcAcces.0044EF58
    005EBFA2   .  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]            ;  硬盘ID
    005EBFA5   .  E8 2690E1FF   CALL JxcAcces.00404FD0
    005EBFAA   .  50            PUSH EAX                                 ;  把硬盘ID压入堆栈
    005EBFAB   .  E8 6C07FFFF   CALL <JMP.&PunUnitLib.GetRegPass>        ;  计算注册码的
    005EBFB0   .  8BD0          MOV EDX,EAX                              ;  真的注册码送到EDX
    005EBFB2   .  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]             ;  真码传到EAX
    005EBFB5   .  E8 568DE1FF   CALL JxcAcces.00404D10
    005EBFBA   .  8D55 DC       LEA EDX,DWORD PTR SS:[EBP-24]
    005EBFBD   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    005EBFC0   .  8B80 FC020000 MOV EAX,DWORD PTR DS:[EAX+2FC]
    005EBFC6   .  E8 8D2FE6FF   CALL JxcAcces.0044EF58
    005EBFCB   .  8B45 DC       MOV EAX,DWORD PTR SS:[EBP-24]            ;  假码到EAX
    005EBFCE   .  8D55 E0       LEA EDX,DWORD PTR SS:[EBP-20]
    005EBFD1   .  E8 42D7E1FF   CALL JxcAcces.00409718
    005EBFD6   .  8B45 E0       MOV EAX,DWORD PTR SS:[EBP-20]            ;  假码
    005EBFD9   .  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]             ;  真码
    005EBFDC   .  E8 3B8FE1FF   CALL JxcAcces.00404F1C                   ;  比较是否相等
    005EBFE1   .  0F85 FE000000 JNZ JxcAcces.005EC0E5                    ;  不等就跳走
    005EBFE7   .  33C0          XOR EAX,EAX
    005EBFE9   .  55            PUSH EBP
    005EBFEA   .  68 D1C05E00   PUSH JxcAcces.005EC0D1
    005EBFEF   .  64:FF30       PUSH DWORD PTR FS:[EAX]
    005EBFF2   .  64:8920       MOV DWORD PTR FS:[EAX],ESP
    005EBFF5   .  B2 01         MOV DL,1
    005EBFF7   .  A1 7C2F4700   MOV EAX,DWORD PTR DS:[472F7C]
    005EBFFC   .  E8 E770E8FF   CALL JxcAcces.004730E8
    005EC001   .  8BD8          MOV EBX,EAX
    005EC003   .  BA 02000080   MOV EDX,80000002
    005EC008   .  8BC3          MOV EAX,EBX
    005EC00A   .  E8 B571E8FF   CALL JxcAcces.004731C4
    005EC00F   .  B1 01         MOV CL,1
    005EC011   .  8B15 748A6B00 MOV EDX,DWORD PTR DS:[6B8A74]            ;  JxcAcces.005EBE34
    005EC017   .  8BC3          MOV EAX,EBX
    005EC019   .  E8 EA72E8FF   CALL JxcAcces.00473308
    005EC01E   .  8D55 D8       LEA EDX,DWORD PTR SS:[EBP-28]
    005EC021   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    005EC024   .  8B80 04030000 MOV EAX,DWORD PTR DS:[EAX+304]
    005EC02A   .  E8 292FE6FF   CALL JxcAcces.0044EF58
    005EC02F   .  8B4D D8       MOV ECX,DWORD PTR SS:[EBP-28]
    005EC032   .  BA A0C15E00   MOV EDX,JxcAcces.005EC1A0                ;  ASCII "UserName"
    005EC037   .  8BC3          MOV EAX,EBX
    005EC039   .  E8 6674E8FF   CALL JxcAcces.004734A4
    005EC03E   .  8D55 D0       LEA EDX,DWORD PTR SS:[EBP-30]
    005EC041   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    005EC044   .  8B80 F4020000 MOV EAX,DWORD PTR DS:[EAX+2F4]
    005EC04A   .  E8 092FE6FF   CALL JxcAcces.0044EF58
    005EC04F   .  8B45 D0       MOV EAX,DWORD PTR SS:[EBP-30]
    005EC052   .  E8 798FE1FF   CALL JxcAcces.00404FD0
    005EC057   .  50            PUSH EAX
    005EC058   .  E8 B706FFFF   CALL <JMP.&PunUnitLib.SavePass>
    005EC05D   .  8BD0          MOV EDX,EAX
    005EC05F   .  8D45 D4       LEA EAX,DWORD PTR SS:[EBP-2C]
    005EC062   .  E8 A98CE1FF   CALL JxcAcces.00404D10
    005EC067   .  8B4D D4       MOV ECX,DWORD PTR SS:[EBP-2C]
    005EC06A   .  BA B4C15E00   MOV EDX,JxcAcces.005EC1B4                ;  ASCII "SignCode"
    005EC06F   .  8BC3          MOV EAX,EBX
    005EC071   .  E8 2E74E8FF   CALL JxcAcces.004734A4
    005EC076   .  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    005EC079   .  E8 528FE1FF   CALL JxcAcces.00404FD0
    005EC07E   .  50            PUSH EAX
    005EC07F   .  E8 9006FFFF   CALL <JMP.&PunUnitLib.SavePass>
    005EC084   .  8BD0          MOV EDX,EAX
    005EC086   .  8D45 CC       LEA EAX,DWORD PTR SS:[EBP-34]
    005EC089   .  E8 828CE1FF   CALL JxcAcces.00404D10
    005EC08E   .  8B4D CC       MOV ECX,DWORD PTR SS:[EBP-34]
    005EC091   .  BA C8C15E00   MOV EDX,JxcAcces.005EC1C8                ;  ASCII "RegCode"
    005EC096   .  8BC3          MOV EAX,EBX
    005EC098   .  E8 0774E8FF   CALL JxcAcces.004734A4
    005EC09D   .  8BC3          MOV EAX,EBX
    005EC09F   .  E8 887BE1FF   CALL JxcAcces.00403C2C
    005EC0A4   .  6A 00         PUSH 0
    005EC0A6   .  68 D0C15E00   PUSH JxcAcces.005EC1D0                   ;  系统注册成功,欢迎你使用本软件!
    005EC0AB   .  E8 3C06FFFF   CALL <JMP.&PunUnitLib.ShowMess>
    005EC0B0   .  A1 F4966B00   MOV EAX,DWORD PTR DS:[6B96F4]
    005EC0B5   .  C700 02000000 MOV DWORD PTR DS:[EAX],2
    005EC0BB   .  A1 8C946B00   MOV EAX,DWORD PTR DS:[6B948C]
    005EC0C0   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
    005EC0C2   .  E8 8D4AE8FF   CALL JxcAcces.00470B54
    005EC0C7   .  33C0          XOR EAX,EAX
    005EC0C9   .  5A            POP EDX
    005EC0CA   .  59            POP ECX
    005EC0CB   .  59            POP ECX
    005EC0CC   .  64:8910       MOV DWORD PTR FS:[EAX],EDX
    005EC0CF   .  EB 20         JMP SHORT JxcAcces.005EC0F1
    005EC0D1   .^ E9 3680E1FF   JMP JxcAcces.0040410C
    005EC0D6   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    005EC0D9   .  E8 C611E8FF   CALL JxcAcces.0046D2A4
    005EC0DE   .  E8 5584E1FF   CALL JxcAcces.00404538
    005EC0E3   .  EB 0C         JMP SHORT JxcAcces.005EC0F1
    005EC0E5   >  6A 03         PUSH 3
    005EC0E7   .  68 F4C15E00   PUSH JxcAcces.005EC1F4                   ;  系统注册失败,请检查注册是否有误!
    005EC0EC   .  E8 FB05FFFF   CALL <JMP.&PunUnitLib.ShowMess>
    005EC0F1   >  33C0          XOR EAX,EAX
    005EC0F3   .  5A            POP EDX
    005EC0F4   .  59            POP ECX
    005EC0F5   .  59            POP ECX

       很明显005EBFAB处是计算注册码的地,那就跟进去
    来到这里,
    005DC71C  - FF25 3CDB6B00   jmp     dword ptr ds:[<&PunUnitLib.GetRegPass>]  ; F7跟进
    来到这里

    002A9024 >  55              PUSH EBP
    002A9025    8BEC            MOV EBP,ESP
    002A9027    B9 06000000     MOV ECX,6                                ; 看看硬件号的长度,
    002A902C    6A 00           PUSH 0
    002A902E    6A 00           PUSH 0
    002A9030    49              DEC ECX                                  ; 递减
    002A9031  ^ 75 F9           JNZ SHORT PunUnitL.002A902C
    002A9033    53              PUSH EBX
    002A9034    56              PUSH ESI
    002A9035    33C0            XOR EAX,EAX
    002A9037    55              PUSH EBP
    002A9038    68 F2912A00     PUSH PunUnitL.002A91F2
    002A903D    64:FF30         PUSH DWORD PTR FS:[EAX]
    002A9040    64:8920         MOV DWORD PTR FS:[EAX],ESP
    002A9043    8D45 EC         LEA EAX,DWORD PTR SS:[EBP-14]
    002A9046    E8 65B5F8FF     CALL PunUnitL.002345B0
    002A904B    8D45 F0         LEA EAX,DWORD PTR SS:[EBP-10]
    002A904E    8B55 08         MOV EDX,DWORD PTR SS:[EBP+8]             ; 硬件号传给EAX
    002A9051    E8 4AB7F8FF     CALL PunUnitL.002347A0
    002A9056    8B45 F0         MOV EAX,DWORD PTR SS:[EBP-10]            ; 硬件号传给EAX
    002A9059    E8 0AB8F8FF     CALL PunUnitL.00234868
    002A905E    8BF0            MOV ESI,EAX
    002A9060    85F6            TEST ESI,ESI
    002A9062    7E 26           JLE SHORT PunUnitL.002A908A
    002A9064    BB 01000000     MOV EBX,1
    002A9069    8D4D E8         LEA ECX,DWORD PTR SS:[EBP-18]            ; |硬件号ASCII转为16进制
    002A906C    8B45 F0         MOV EAX,DWORD PTR SS:[EBP-10]            ; |硬件号传给EAX
    002A906F    0FB64418 FF     MOVZX EAX,BYTE PTR DS:[EAX+EBX-1]        ; |依次取
    002A9074    33D2            XOR EDX,EDX                              ; |
    002A9076    E8 F905F9FF     CALL PunUnitL.00239674                   ; |
    002A907B    8B55 E8         MOV EDX,DWORD PTR SS:[EBP-18]            ; |
    002A907E    8D45 FC         LEA EAX,DWORD PTR SS:[EBP-4]             ; |
    002A9081    E8 EAB7F8FF     CALL PunUnitL.00234870                   ; |
    002A9086    43              INC EBX                                  ; |
    002A9087    4E              DEC ESI                                  ; |
    002A9088  ^ 75 DF           JNZ SHORT PunUnitL.002A9069              ; |循环
    002A908A    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]             ; 转换好的ASCII字串地址传递给EAX
    002A908D    E8 D6B7F8FF     CALL PunUnitL.00234868
    002A9092    8BF0            MOV ESI,EAX
    002A9094    85F6            TEST ESI,ESI
    002A9096    7E 2C           JLE SHORT PunUnitL.002A90C4
    002A9098    BB 01000000     MOV EBX,1
    002A909D    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]             ; |将转换好的ASCII字串翻转
    002A90A0    E8 C3B7F8FF     CALL PunUnitL.00234868                   ; |
    002A90A5    2BC3            SUB EAX,EBX                              ; |
    002A90A7    8B55 FC         MOV EDX,DWORD PTR SS:[EBP-4]             ; |
    002A90AA    8A1402          MOV DL,BYTE PTR DS:[EDX+EAX]             ; |
    002A90AD    8D45 E4         LEA EAX,DWORD PTR SS:[EBP-1C]            ; |
    002A90B0    E8 DBB6F8FF     CALL PunUnitL.00234790                   ; |
    002A90B5    8B55 E4         MOV EDX,DWORD PTR SS:[EBP-1C]            ; |
    002A90B8    8D45 F8         LEA EAX,DWORD PTR SS:[EBP-8]             ; |
    002A90BB    E8 B0B7F8FF     CALL PunUnitL.00234870                   ; |
    002A90C0    43              INC EBX                                  ; |
    002A90C1    4E              DEC ESI                                  ; |
    002A90C2  ^ 75 D9           JNZ SHORT PunUnitL.002A909D              ; |循环
    002A90C4    8D45 FC         LEA EAX,DWORD PTR SS:[EBP-4]
    002A90C7    50              PUSH EAX
    002A90C8    B9 04000000     MOV ECX,4                                ; 取4位
    002A90CD    BA 01000000     MOV EDX,1                                ; 从第一位开始
    002A90D2    8B45 F8         MOV EAX,DWORD PTR SS:[EBP-8]             ; 将翻转后的ASCII字串地址传入EAX
    002A90D5    E8 E6B9F8FF     CALL PunUnitL.00234AC0                   ; 将翻转后的ASCII字串的前4位取出
    002A90DA    8D45 F8         LEA EAX,DWORD PTR SS:[EBP-8]
    002A90DD    50              PUSH EAX
    002A90DE    B9 04000000     MOV ECX,4                                ; 取4位
    002A90E3    BA 05000000     MOV EDX,5                                ; 从第五位开始
    002A90E8    8B45 F8         MOV EAX,DWORD PTR SS:[EBP-8]             ; 将翻转后的ASCII字串地址传入EAX
    002A90EB    E8 D0B9F8FF     CALL PunUnitL.00234AC0
    002A90F0    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]             ; 将前4位传入EAX
    002A90F3    E8 70B7F8FF     CALL PunUnitL.00234868
    002A90F8    83F8 04         CMP EAX,4                                ; 比较长度是否为4
    002A90FB    7D 2F           JGE SHORT PunUnitL.002A912C              ; 为4就跳
    002A90FD    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
    002A9100    E8 63B7F8FF     CALL PunUnitL.00234868
    002A9105    8BD8            MOV EBX,EAX
    002A9107    83FB 03         CMP EBX,3
    002A910A    7F 20           JG SHORT PunUnitL.002A912C
    002A910C    8D4D E0         LEA ECX,DWORD PTR SS:[EBP-20]
    002A910F    8BC3            MOV EAX,EBX
    002A9111    C1E0 02         SHL EAX,2
    002A9114    33D2            XOR EDX,EDX
    002A9116    E8 5905F9FF     CALL PunUnitL.00239674
    002A911B    8B55 E0         MOV EDX,DWORD PTR SS:[EBP-20]
    002A911E    8D45 FC         LEA EAX,DWORD PTR SS:[EBP-4]
    002A9121    E8 4AB7F8FF     CALL PunUnitL.00234870
    002A9126    43              INC EBX
    002A9127    83FB 04         CMP EBX,4
    002A912A  ^ 75 E0           JNZ SHORT PunUnitL.002A910C
    002A912C    8B45 F8         MOV EAX,DWORD PTR SS:[EBP-8]             ; 将5~8位传入EAX
    002A912F    E8 34B7F8FF     CALL PunUnitL.00234868
    002A9134    83F8 04         CMP EAX,4                                ; 比较长度是否为4
    002A9137    7D 2F           JGE SHORT PunUnitL.002A9168              ; 为4就跳
    002A9139    8B45 F8         MOV EAX,DWORD PTR SS:[EBP-8]
    002A913C    E8 27B7F8FF     CALL PunUnitL.00234868
    002A9141    8BD8            MOV EBX,EAX
    002A9143    83FB 03         CMP EBX,3
    002A9146    7F 20           JG SHORT PunUnitL.002A9168
    002A9148    8D4D DC         LEA ECX,DWORD PTR SS:[EBP-24]
    002A914B    8BC3            MOV EAX,EBX
    002A914D    C1E0 02         SHL EAX,2
    002A9150    33D2            XOR EDX,EDX
    002A9152    E8 1D05F9FF     CALL PunUnitL.00239674
    002A9157    8B55 DC         MOV EDX,DWORD PTR SS:[EBP-24]
    002A915A    8D45 F8         LEA EAX,DWORD PTR SS:[EBP-8]
    002A915D    E8 0EB7F8FF     CALL PunUnitL.00234870
    002A9162    43              INC EBX
    002A9163    83FB 04         CMP EBX,4
    002A9166  ^ 75 E0           JNZ SHORT PunUnitL.002A9148
    002A9168    8D45 D8         LEA EAX,DWORD PTR SS:[EBP-28]
    002A916B    8B55 0C         MOV EDX,DWORD PTR SS:[EBP+C]             ; "C26P-Q618"的地址传入EAX
    002A916E    E8 2DB6F8FF     CALL PunUnitL.002347A0                   ; 开始拼接正确的注册码
    002A9173    8B45 D8         MOV EAX,DWORD PTR SS:[EBP-28]
    002A9176    8D55 F4         LEA EDX,DWORD PTR SS:[EBP-C]
    002A9179    E8 DE03F9FF     CALL PunUnitL.0023955C
    002A917E    8D45 D4         LEA EAX,DWORD PTR SS:[EBP-2C]
    002A9181    50              PUSH EAX
    002A9182    B9 04000000     MOV ECX,4
    002A9187    BA 01000000     MOV EDX,1
    002A918C    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
    002A918F    E8 2CB9F8FF     CALL PunUnitL.00234AC0
    002A9194    FF75 D4         PUSH DWORD PTR SS:[EBP-2C]               ; 第一部分(固定的)[C26P-]压入堆栈
    002A9197    68 0C922A00     PUSH PunUnitL.002A920C
    002A919C    FF75 FC         PUSH DWORD PTR SS:[EBP-4]                ; 第二部分(前4位)压入堆栈
    002A919F    8D45 D0         LEA EAX,DWORD PTR SS:[EBP-30]
    002A91A2    50              PUSH EAX
    002A91A3    B9 05000000     MOV ECX,5
    002A91A8    BA 05000000     MOV EDX,5
    002A91AD    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
    002A91B0    E8 0BB9F8FF     CALL PunUnitL.00234AC0
    002A91B5    FF75 D0         PUSH DWORD PTR SS:[EBP-30]               ; 第三部分[-Q618]压入堆栈
    002A91B8    68 0C922A00     PUSH PunUnitL.002A920C
    002A91BD    FF75 F8         PUSH DWORD PTR SS:[EBP-8]                ; 第四部分(5~8位)压入堆栈
    002A91C0    8D45 EC         LEA EAX,DWORD PTR SS:[EBP-14]
    002A91C3    BA 06000000     MOV EDX,6
    002A91C8    E8 5BB7F8FF     CALL PunUnitL.00234928                   ; 拼接完成
    002A91CD    8B45 EC         MOV EAX,DWORD PTR SS:[EBP-14]            ; 拼接后完整的注册码传给EAX
    002A91D0    E8 8BB8F8FF     CALL PunUnitL.00234A60
    002A91D5    8BD8            MOV EBX,EAX
    002A91D7    33C0            XOR EAX,EAX
    002A91D9    5A              POP EDX
    002A91DA    59              POP ECX
    002A91DB    59              POP ECX
    002A91DC    64:8910         MOV DWORD PTR FS:[EAX],EDX
    002A91DF    68 F9912A00     PUSH PunUnitL.002A91F9
    002A91E4    8D45 D0         LEA EAX,DWORD PTR SS:[EBP-30]
    002A91E7    BA 0C000000     MOV EDX,0C
    002A91EC    E8 E3B3F8FF     CALL PunUnitL.002345D4
    002A91F1    C3              RETN
    002A91F2  ^ E9 1DADF8FF     JMP PunUnitL.00233F14
    002A91F7  ^ EB EB           JMP SHORT PunUnitL.002A91E4
    002A91F9    8BC3            MOV EAX,EBX
    002A91FB    5E              POP ESI
    002A91FC    5B              POP EBX
    002A91FD    8BE5            MOV ESP,EBP
    002A91FF    5D              POP EBP
    002A9200    C2 0800         RETN 8

        至此算法分析完毕。原来是把硬件号ASCII转成16进制后再取反(即倒过来),分别取前4位、5~8位为注册码的第二部分和四部分,至于第一部分与第三部分则是固定的(即作者提供的C26P-Q618),各部分之间用"-"分开。
    注册机就懒的写了(其实是不会写),找个ASCII转16进制工具就行了。
    算了还是做个内存注册器吧!

    --------------------------------------------------------------------------------
    【破解总结】


        总的来说,还是很顺利的,其实在写这篇破文时,有好多前辈门已做出了算法注册机。此软还有好多暗桩,如单据不能超过200张,不能进行设置等,这通过注册都不能解决,那就只有爆破了。爆破的地方就不说了,没有细数,有近50处,我做了个破解补丁配合注册器使用。
    顺便说一下,佳宜系列算法好象都一样,只是作者给的那两个固定的不同(即C26P-Q618)。
    --------------------------------------------------------------------------------
    【内存注册机】


    中断地址:5EBFB2
    中断次数:1
    第一字节:8D
    子令长度:3
    内存方式->寄存器->EAX

    其实做内存注册器有好多中断地址可做的,此次写破文做的就与上次破解时的地址不同。
    --------------------------------------------------------------------------------
    【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-1-18 17:27
  • 签到天数: 30 天

    [LV.5]常住居民I

     楼主| 发表于 2005-12-28 16:32:49 | 显示全部楼层
    补丁上传不了,不知此篇能通过否
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-1-18 17:27
  • 签到天数: 30 天

    [LV.5]常住居民I

     楼主| 发表于 2005-12-28 16:34:04 | 显示全部楼层
    成为学员竟不能上传附件,该么办
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表