- UID
- 5592
注册时间2005-12-21
阅读权限40
最后登录1970-1-1
独步武林
TA的每日心情 | 慵懒 2019-1-18 17:27 |
---|
签到天数: 30 天 [LV.5]常住居民I
|
【破文作者】lzq1973
【作者性别】
【作者主页】
【作者邮箱】[email protected]
【所属组织】暂无
【软件名称】万能商品销售管理软件V5.2.8
【下载地址】http://www2.skycn.com/soft/24476.html
【破解工具】PEiD V0.93、C32Asm、OllyDBG1.1
【保护方式】无(Borland Delphi 6.0 - 7.0)
【软件限制】功能(不能导出及打印等)
【破解难度】简单
----------------------------------------------------
软件介绍:
本软件是专为小型企业、店铺、个人开发的进、销、存管理、理财、员工管理的工具软件,具有商品管理、进销存单据管理、库存管理,利润查看,员工成绩图表查看,月销售成绩图表比较查看,日销售统计报表,月销售统计报表,年销售统计报表,并可以打印各种报表,可以根据各种条件组合查询、汇总,软件具有功能完备、实用简单、使用方便,上手快的特点,是小型企业、店铺、个人理想的管理和理财工具。 行业用户:办公用品、建材、服装、电脑、机电、小型超市、医药、日用品、汽摩配、农(资)产品、礼品、电子电器等 。
----------------------------------------------------
破解声名:我是只小鸟,想深入软件编程?但大家都知道,首先要学会自我保护,这也是我的目的,只是为了增强自我防护意思,别无它意。
----------------------------------------------------
【破解分析】
第一步当然是侦壳,用PEID看看,无,说是用“Borland Delphi 6.0 - 7.0”写的。运气太好了,此等软体正适合我(这正是我苦找了多
天的)。
运行程序,来到注册界面,随便输些什么点注册看看有什么提示,记下来。我的的用户代码为96c2800528。
用C32Asm打开wnspxsglxt.exe。找有关字符串(就是刚才记下的那些)。见下面的代码:
::005CB868:: 8B55 E8 MOV EDX,[EBP-18] \:假的软件注册号
::005CB86B:: 8B45 EC MOV EAX,[EBP-14] \:真的软件注册号
::005CB86E:: E8 3D8FE3FF CALL 004047B0 \:进行比对
::005CB873:: 0F85 15010000 JNZ 005CB98E \:不等就跳(出错),爆破在这里改85为84
::005CB879:: 8D55 E0 LEA EDX,[EBP-20]
::005CB87C:: 8B83 1C030000 MOV EAX,[EBX+31C]
::005CB882:: E8 B518EFFF CALL 004BD13C
::005CB887:: 8B55 E0 MOV EDX,[EBP-20] \:假的软件序列号[第一位]
::005CB88A:: 8B45 FC MOV EAX,[EBP-4] \:真的软件序列号[第一位]
::005CB88D:: E8 1E8FE3FF CALL 004047B0 \:进行比对
::005CB892:: 0F85 F6000000 JNZ 005CB98E \:不等就跳(出错),爆破在这里改85为84
::005CB898:: 8D55 DC LEA EDX,[EBP-24]
::005CB89B:: 8B83 20030000 MOV EAX,[EBX+320]
::005CB8A1:: E8 9618EFFF CALL 004BD13C
::005CB8A6:: 8B55 DC MOV EDX,[EBP-24] \:假的软件序列号[第二位]
::005CB8A9:: 8B45 F8 MOV EAX,[EBP-8] \:真的软件序列号[第二位]
::005CB8AC:: E8 FF8EE3FF CALL 004047B0 \:进行比对
::005CB8B1:: 0F85 D7000000 JNZ 005CB98E \:不等就跳(出错),爆破在这里改85为84
::005CB8B7:: 8D55 D8 LEA EDX,[EBP-28]
::005CB8BA:: 8B83 24030000 MOV EAX,[EBX+324]
::005CB8C0:: E8 7718EFFF CALL 004BD13C
::005CB8C5:: 8B55 D8 MOV EDX,[EBP-28] \:假的软件序列号[第三位]
::005CB8C8:: 8B45 F4 MOV EAX,[EBP-C] \:真的软件序列号[第三位]
::005CB8CB:: E8 E08EE3FF CALL 004047B0 \:进行比对
::005CB8D0:: 0F85 B8000000 JNZ 005CB98E \:不等就跳(出错),爆破在这里改85为84
::005CB8D6:: 8D55 D4 LEA EDX,[EBP-2C]
::005CB8D9:: 8B83 28030000 MOV EAX,[EBX+328]
::005CB8DF:: E8 5818EFFF CALL 004BD13C
::005CB8E4:: 8B55 D4 MOV EDX,[EBP-2C] \:假的软件序列号[第四位]
::005CB8E7:: 8B45 F0 MOV EAX,[EBP-10] \:真的软件序列号[第四位]
::005CB8EA:: E8 C18EE3FF CALL 004047B0 \:进行比对
::005CB8EF:: 0F85 99000000 JNZ 005CB98E \:不等就跳(出错),爆破在这里改85为84
::005CB8F5:: B2 01 MOV DL,1
::005CB8F7:: A1 68404400 MOV EAX,[444068]
::005CB8FC:: E8 6788E7FF CALL 00444168 \:JMPUP
::005CB901:: 8BF0 MOV ESI,EAX
::005CB903:: BA 02000080 MOV EDX,80000002
::005CB908:: 8BC6 MOV EAX,ESI
::005CB90A:: E8 F988E7FF CALL 00444208 \:JMPUP
::005CB90F:: B1 01 MOV CL,1
::005CB911:: BA ECB95C00 MOV EDX,5CB9EC \->:把注册信息写在这里
Software\Microsoft\Windows\CurrentVersion\Explorer\soslfte
::005CB916:: 8BC6 MOV EAX,ESI
::005CB918:: E8 4F89E7FF CALL 0044426C \:JMPUP
::005CB91D:: 84C0 TEST AL,AL
::005CB91F:: 74 1C JE SHORT 005CB93D \:JMPDOWN
::005CB921:: 33C9 XOR ECX,ECX
::005CB923:: BA 30BA5C00 MOV EDX,5CBA30 \->: gc_id[此键名的值为0表示已注册,反之]
::005CB928:: 8BC6 MOV EAX,ESI
::005CB92A:: E8 7D8BE7FF CALL 004444AC \:JMPUP
::005CB92F:: 8BC6 MOV EAX,ESI
::005CB931:: E8 A288E7FF CALL 004441D8 \:JMPUP
::005CB936:: 8BC6 MOV EAX,ESI
::005CB938:: E8 F77BE3FF CALL 00403534 \:JMPUP
::005CB93D:: 6A 00 PUSH 0 \:BYJMP JmpBy:005CB91F,
::005CB93F:: B9 38BA5C00 MOV ECX,5CBA38 \->: 提示
::005CB944:: BA 40BA5C00 MOV EDX,5CBA40 \->: 软件注册成功!
::005CB949:: A1 7C1B5F00 MOV EAX,[5F1B7C]
::005CB94E:: 8B00 MOV EAX,[EAX]
::005CB950:: E8 63CBEBFF CALL 004884B8 \:JMPUP
::005CB955:: BA 58BA5C00 MOV EDX,5CBA58 \->: 软件已注册
::005CB95A:: 8B83 F8020000 MOV EAX,[EBX+2F8]
::005CB960:: E8 67BDE9FF CALL 004676CC \:JMPUP
::005CB965:: 6A 00 PUSH 0
::005CB967:: 6A 00 PUSH 0
::005CB969:: 6A 10 PUSH 10
::005CB96B:: 8B83 44030000 MOV EAX,[EBX+344]
::005CB971:: 50 PUSH EAX
::005CB972:: E8 69BFE3FF CALL 004078E0 \:JMPUP >>>: USER32.DLL:SendMessageA
::005CB977:: 6A 00 PUSH 0
::005CB979:: 6A 00 PUSH 0
::005CB97B:: 68 01040000 PUSH 401
::005CB980:: 8B83 44030000 MOV EAX,[EBX+344]
::005CB986:: 50 PUSH EAX
::005CB987:: E8 54BFE3FF CALL 004078E0 \:JMPUP >>>: USER32.DLL:SendMessageA
::005CB98C:: EB 18 JMP SHORT 005CB9A6 \:JMPDOWN
::005CB98E:: 6A 00 PUSH 0 \:BYJMP
::005CB990:: B9 64BA5C00 MOV ECX,5CBA64 \->: 警告框
::005CB995:: BA 6CBA5C00 MOV EDX,5CBA6C \->: 注册码错误!请与作者联系!
::005CB99A:: A1 7C1B5F00 MOV EAX,[5F1B7C]
::005CB99F:: 8B00 MOV EAX,[EAX]
----------------------------------------------------
用OD载入,在005CB7C7处下断,来到(看下面),这是注册码获取部分
005CB7BD |. B9 18000000 MOV ECX,18 ; 取后24位
005CB7C2 |. BA 09000000 MOV EDX,9 ; 从第9位开始
005CB7C7 |. 8B83 40030000 MOV EAX,DWORD PTR DS:[EBX+340] ; (ASCII "34ad51ef91355c1f09f28f945e8b141e")
005CB7CD |. E8 F290E3FF CALL wnspxsgl.004048C4 ;
005CB7D2 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4] ; 将后24位取出后传给EAX
005CB7D5 |. 50 PUSH EAX
005CB7D6 |. B9 04000000 MOV ECX,4 ; |第一部分序列号长度4
005CB7DB |. BA 01000000 MOV EDX,1 ; |从第一位开始
005CB7E0 |. 8B83 40030000 MOV EAX,DWORD PTR DS:[EBX+340] ; |(ASCII "91355c1f09f28f945e8b141e")
005CB7E6 |. E8 D990E3FF CALL wnspxsgl.004048C4 ; |
005CB7EB |. 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8] ; |取前4位9135
005CB7EE |. 50 PUSH EAX ; |
005CB7EF |. B9 04000000 MOV ECX,4 ; #
005CB7F4 |. BA 05000000 MOV EDX,5 ; #第二部分序列号从第5位开始
005CB7F9 |. 8B83 40030000 MOV EAX,DWORD PTR DS:[EBX+340] ; #
005CB7FF |. E8 C090E3FF CALL wnspxsgl.004048C4 [可做内存注册器]; #eax(ASCII "91355c1f09f28f945e8b141e")
005CB804 |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C] ; #取5~9位即5c1f传递给EAX
005CB807 |. 50 PUSH EAX ; #
005CB808 |. B9 04000000 MOV ECX,4 ; ×
005CB80D |. BA 09000000 MOV EDX,9 ; ×第三部分序列号从第9位开始
005CB812 >|. 8B83 40030000 MOV EAX,DWORD PTR DS:[EBX+340] ; ×
005CB818 |. E8 A790E3FF CALL wnspxsgl.004048C4 [可做内存注册器]; ×eax(ASCII "91355c1f09f28f945e8b141e")
005CB81D |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10] ; ×即09f2传给EAX
005CB820 |. 50 PUSH EAX ; ×
005CB821 |. B9 04000000 MOV ECX,4 ; &
005CB826 |. BA 0D000000 MOV EDX,0D ; &第四部分从第13位开始
005CB82B |. 8B83 40030000 MOV EAX,DWORD PTR DS:[EBX+340] ; &
005CB831 |. E8 8E90E3FF CALL wnspxsgl.004048C4 [可做内存注册器]; &eax(ASCII "91355c1f09f28f945e8b141e")
005CB836 |. 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14] ; &第四部分8f94传给EAX
005CB839 |. 50 PUSH EAX ; &
005CB83A |. B9 08000000 MOV ECX,8 ; $注册号长度8
005CB83F |. BA 11000000 MOV EDX,11 ; $注册号从第17位开始
005CB844 |. 8B83 40030000 MOV EAX,DWORD PTR DS:[EBX+340] ; $(ASCII "91355c1f09f28f945e8b141e")
005CB84A |. E8 7590E3FF CALL wnspxsgl.004048C4 [可做内存注册器]; $
005CB84F |. 8D55 E4 LEA EDX,DWORD PTR SS:[EBP-1C] ; $即5e8b141传给EDX
005CB852 |. 8B83 14030000 MOV EAX,DWORD PTR DS:[EBX+314]
005CB858 |. E8 DF18EFFF CALL wnspxsgl.004BD13C
005CB85D |. 8B45 E4 MOV EAX,DWORD PTR SS:[EBP-1C]
005CB860 |. 8D55 E8 LEA EDX,DWORD PTR SS:[EBP-18]
005CB863 |. E8 C4D7E3FF CALL wnspxsgl.0040902C
至此注册码已全部找到,但仍不甘心,“91355c1f09f28f945e8b141e”这串数字是如何来的呢,那就看下面
005CBB0C |. 50 PUSH EAX
005CBB0D |. 8D95 E8FFFEFF LEA EDX,DWORD PTR SS:[EBP+FFFEFFE8]
005CBB13 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 取主板序列号(ASCII
"09/20/2000-i810-W83627HF-6A69MTG9C-00")
005CBB16 |. E8 0DE7EBFF CALL wnspxsgl.0048A228
005CBB1B |. 8D8D E8FFFEFF LEA ECX,DWORD PTR SS:[EBP+FFFEFFE8]
005CBB21 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
005CBB24 |. B8 54BC5C00 MOV EAX,wnspxsgl.005CBC54 ; ASCII "MD5String"
005CBB29 |. E8 3E010000 CALL wnspxsgl.005CBC6C ; 进行MD5计算
005CBB2E |. 8B95 F8FFFEFF MOV EDX,DWORD PTR SS:[EBP+FFFEFFF8] ; MD5加密(ASCII "96c2800254c36a133114c3a927c3b715")
005CBB34 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
005CBB37 |. E8 0089E3FF CALL wnspxsgl.0040443C
005CBB3C |. 8D85 E0FFFEFF LEA EAX,DWORD PTR SS:[EBP+FFFEFFE0]
005CBB42 |. 50 PUSH EAX
005CBB43 |. B9 07000000 MOV ECX,7 ; 取其前7位
005CBB48 |. BA 01000000 MOV EDX,1
005CBB4D |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005CBB50 |. E8 6F8DE3FF CALL wnspxsgl.004048C4
005CBB55 |. 8B85 E0FFFEFF MOV EAX,DWORD PTR SS:[EBP+FFFEFFE0] ; 前7位为96c2800
005CBB5B |. 8D95 E4FFFEFF LEA EDX,DWORD PTR SS:[EBP+FFFEFFE4]
005CBB61 |. E8 C6D4E3FF CALL wnspxsgl.0040902C
005CBB66 |. 8D85 E4FFFEFF LEA EAX,DWORD PTR SS:[EBP+FFFEFFE4]
005CBB6C |. BA 68BC5C00 MOV EDX,wnspxsgl.005CBC68 ; ASCII "528"
005CBB71 |. E8 F68AE3FF CALL wnspxsgl.0040466C
005CBB76 |. 8B95 E4FFFEFF MOV EDX,DWORD PTR SS:[EBP+FFFEFFE4] ; 前7位后+528
005CBB7C |. 8B83 30030000 MOV EAX,DWORD PTR DS:[EBX+330]
005CBB82 |. E8 45BBE9FF CALL wnspxsgl.004676CC
005CBB87 |. 8D95 D8FFFEFF LEA EDX,DWORD PTR SS:[EBP+FFFEFFD8]
005CBB8D |. 8B83 30030000 MOV EAX,DWORD PTR DS:[EBX+330]
005CBB93 |. E8 04BBE9FF CALL wnspxsgl.0046769C
005CBB98 |. 8B85 D8FFFEFF MOV EAX,DWORD PTR SS:[EBP+FFFEFFD8] ; 为硬件号(ASCII "96c2800528")
005CBB9E |. 8D95 DCFFFEFF LEA EDX,DWORD PTR SS:[EBP+FFFEFFDC]
005CBBA4 |. E8 83D4E3FF CALL wnspxsgl.0040902C
005CBBA9 |. 8B95 DCFFFEFF MOV EDX,DWORD PTR SS:[EBP+FFFEFFDC]
005CBBAF |. 8D83 40030000 LEA EAX,DWORD PTR DS:[EBX+340]
005CBBB5 |. E8 3E88E3FF CALL wnspxsgl.004043F8
005CBBBA |. 8D85 D4FFFEFF LEA EAX,DWORD PTR SS:[EBP+FFFEFFD4]
005CBBC0 |. 50 PUSH EAX
005CBBC1 |. 8D95 E8FFFEFF LEA EDX,DWORD PTR SS:[EBP+FFFEFFE8] ; 堆栈 SS:[0011F7C0]=0104455C, (ASCII
"96c2800254c36a133114c3a927c3b715")
005CBBC7 |. 8B83 40030000 MOV EAX,DWORD PTR DS:[EBX+340] ; 硬件号传给EAX
005CBBCD |. E8 56E6EBFF CALL wnspxsgl.0048A228
005CBBD2 |. 8D8D E8FFFEFF LEA ECX,DWORD PTR SS:[EBP+FFFEFFE8]
005CBBD8 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
005CBBDB |. B8 54BC5C00 MOV EAX,wnspxsgl.005CBC54 ; ASCII "MD5String"
005CBBE0 |. E8 87000000 CALL wnspxsgl.005CBC6C ; 对用户代码(即硬件号MD5加密)
005CBBE5 |. 8B95 D4FFFEFF MOV EDX,DWORD PTR SS:[EBP+FFFEFFD4] ; 加密后的(即34ad51ef91355c1f09f28f945e8b141e)给EDX
005CBBEB |. 8D83 40030000 LEA EAX,DWORD PTR DS:[EBX+340]
005CBBF1 |. E8 0288E3FF CALL wnspxsgl.004043F8
005CBBF6 |> 33C0 XOR EAX,EAX
005CBBF8 |. 5A POP EDX
005CBBF9 |. 59 POP ECX
005CBBFA |. 59 POP ECX
005CBBFB |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
005CBBFE |. 68 44BC5C00 PUSH wnspxsgl.005CBC44
005CBC03 |> 8D85 D4FFFEFF LEA EAX,DWORD PTR SS:[EBP+FFFEFFD4]
005CBC09 |. E8 9687E3FF CALL wnspxsgl.004043A4
005CBC0E |. 8D85 D8FFFEFF LEA EAX,DWORD PTR SS:[EBP+FFFEFFD8]
005CBC14 |. E8 8B87E3FF CALL wnspxsgl.004043A4
005CBC19 |. 8D85 DCFFFEFF LEA EAX,DWORD PTR SS:[EBP+FFFEFFDC]
005CBC1F |. BA 03000000 MOV EDX,3
005CBC24 |. E8 9F87E3FF CALL wnspxsgl.004043C8
005CBC29 |. 8D85 F8FFFEFF LEA EAX,DWORD PTR SS:[EBP+FFFEFFF8]
005CBC2F |. E8 7087E3FF CALL wnspxsgl.004043A4
005CBC34 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
005CBC37 |. E8 6887E3FF CALL wnspxsgl.004043A4
005CBC3C \. C3 RETN
005CBC3D .^ E9 8680E3FF JMP wnspxsgl.00403CC8
005CBC42 .^ EB BF JMP SHORT wnspxsgl.005CBC03
005CBC44 . 5B POP EBX
005CBC45 . 8BE5 MOV ESP,EBP
005CBC47 . 5D POP EBP
005CBC48 . C3 RETN
005CBC49 00 DB 00
005CBC4A 00 DB 00
005CBC4B 00 DB 00
005CBC4C . FFFFFFFF DD FFFFFFFF
005CBC50 . 09000000 DD 00000009
用户代码(即硬件号)是通过获取主板(BiOS)序列号,再经MD5计算后取前7位再加“528”而来的。至于软件序列号、注册号部分就是再把硬件号MD5加密后的字串。
有兴趣的话可看看这里,有关MD5算法的
从5CBBE0来到这里进行MD5计算
005CBC54 . 4D 44 35 53 7>ASCII "MD5String",0
005CBC5E 00 DB 00
005CBC5F 00 DB 00
005CBC60 . FFFFFFFF DD FFFFFFFF
005CBC64 . 03000000 DD 00000003
005CBC68 . 35 32 38 00 ASCII "528",0
005CBC6C /$ 55 PUSH EBP
005CBC6D |. 8BEC MOV EBP,ESP
005CBC6F |. 83C4 E4 ADD ESP,-1C
005CBC72 |. 53 PUSH EBX
005CBC73 |. 56 PUSH ESI
005CBC74 |. 57 PUSH EDI
005CBC75 |. 33DB XOR EBX,EBX
005CBC77 |. 895D E4 MOV DWORD PTR SS:[EBP-1C],EBX
005CBC7A |. 8BF1 MOV ESI,ECX
005CBC7C |. 8D7D F0 LEA EDI,DWORD PTR SS:[EBP-10]
005CBC7F |. A5 MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ES>
005CBC80 |. A5 MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ES>
005CBC81 |. A5 MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ES>
005CBC82 |. A5 MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ES>
005CBC83 |. 33C0 XOR EAX,EAX
005CBC85 |. 55 PUSH EBP
005CBC86 |. 68 CFBC5C00 PUSH wnspxsgl.005CBCCF
005CBC8B |. 64:FF30 PUSH DWORD PTR FS:[EAX]
005CBC8E |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
005CBC91 |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
005CBC94 |. 50 PUSH EAX
005CBC95 |. 8D55 E4 LEA EDX,DWORD PTR SS:[EBP-1C] ; 主板序列号MD5加密后的
ASCII(34ad51ef91355c1f09f28f945e8b141e)
005CBC98 |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
005CBC9B |. E8 FCE5EBFF CALL wnspxsgl.0048A29C
005CBCA0 |. 8B45 E4 MOV EAX,DWORD PTR SS:[EBP-1C] ; |
005CBCA3 |. 8945 E8 MOV DWORD PTR SS:[EBP-18],EAX ; |
005CBCA6 |. C645 EC 0B MOV BYTE PTR SS:[EBP-14],0B ; |
005CBCAA |. 8D55 E8 LEA EDX,DWORD PTR SS:[EBP-18] ; |
005CBCAD |. 33C9 XOR ECX,ECX ; |
005CBCAF |. B8 E8BC5C00 MOV EAX,wnspxsgl.005CBCE8 ; |ASCII "%s"
005CBCB4 |. E8 73E6E3FF CALL wnspxsgl.0040A32C ; \wnspxsgl.0040A32C
005CBCB9 |. 33C0 XOR EAX,EAX
005CBCBB |. 5A POP EDX
005CBCBC |. 59 POP ECX
005CBCBD |. 59 POP ECX
005CBCBE |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
005CBCC1 |. 68 D6BC5C00 PUSH wnspxsgl.005CBCD6
005CBCC6 |> 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C]
005CBCC9 |. E8 D686E3FF CALL wnspxsgl.004043A4
005CBCCE \. C3 RETN
005CBCCF .^ E9 F47FE3FF JMP wnspxsgl.00403CC8
005CBCD4 .^ EB F0 JMP SHORT wnspxsgl.005CBCC6
*******************************
从005CBC9B来MD5计算过程
0048A29C /$ 55 PUSH EBP
0048A29D |. 8BEC MOV EBP,ESP
0048A29F |. 83C4 E8 ADD ESP,-18
0048A2A2 |. 53 PUSH EBX
0048A2A3 |. 56 PUSH ESI
0048A2A4 |. 57 PUSH EDI
0048A2A5 |. 33C9 XOR ECX,ECX
0048A2A7 |. 894D EC MOV DWORD PTR SS:[EBP-14],ECX
0048A2AA |. 894D E8 MOV DWORD PTR SS:[EBP-18],ECX
0048A2AD |. 8BF0 MOV ESI,EAX
0048A2AF |. 8D7D F0 LEA EDI,DWORD PTR SS:[EBP-10]
0048A2B2 |. A5 MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ES>
0048A2B3 |. A5 MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ES>
0048A2B4 |. A5 MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ES>
0048A2B5 |. A5 MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ES>
0048A2B6 |. 8BFA MOV EDI,EDX
0048A2B8 |. 33C0 XOR EAX,EAX
0048A2BA |. 55 PUSH EBP
0048A2BB |. 68 37A34800 PUSH wnspxsgl.0048A337
0048A2C0 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
0048A2C3 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
0048A2C6 |. 8BC7 MOV EAX,EDI
0048A2C8 |. E8 D7A0F7FF CALL wnspxsgl.004043A4
0048A2CD |. B3 10 MOV BL,10
0048A2CF |. 8D75 F0 LEA ESI,DWORD PTR SS:[EBP-10]
0048A2D2 |> FF37 /PUSH DWORD PTR DS:[EDI] ;|计算开始
0048A2D4 |. 8D45 EC |LEA EAX,DWORD PTR SS:[EBP-14] ;|
0048A2D7 |. 33D2 |XOR EDX,EDX ;|
0048A2D9 |. 8A16 |MOV DL,BYTE PTR DS:[ESI] ;|
0048A2DB |. C1EA 04 |SHR EDX,4 ;|
0048A2DE |. 83E2 0F |AND EDX,0F ;|
0048A2E1 |. 8A92 C0E35E00 |MOV DL,BYTE PTR DS:[EDX+5EE3C0] ;|
0048A2E7 |. E8 A0A2F7FF |CALL wnspxsgl.0040458C ;|
0048A2EC |. FF75 EC |PUSH DWORD PTR SS:[EBP-14] ;|
0048A2EF |. 8D45 E8 |LEA EAX,DWORD PTR SS:[EBP-18] ;|
0048A2F2 |. 8A16 |MOV DL,BYTE PTR DS:[ESI] ;|
0048A2F4 |. 80E2 0F |AND DL,0F ;|
0048A2F7 |. 81E2 FF000000 |AND EDX,0FF ;|
0048A2FD |. 8A92 C0E35E00 |MOV DL,BYTE PTR DS:[EDX+5EE3C0] ;|
0048A303 |. E8 84A2F7FF |CALL wnspxsgl.0040458C ;|
0048A308 |. FF75 E8 |PUSH DWORD PTR SS:[EBP-18] ;|
0048A30B |. 8BC7 |MOV EAX,EDI ;|
0048A30D |. BA 03000000 |MOV EDX,3 ;|
0048A312 |. E8 0DA4F7FF |CALL wnspxsgl.00404724 ;|
0048A317 |. 46 |INC ESI ;|
0048A318 |. FECB |DEC BL ;|
0048A31A |.^ 75 B6 \JNZ SHORT wnspxsgl.0048A2D2 ;|循环
0048A31C |. 33C0 XOR EAX,EAX
0048A31E |. 5A POP EDX
0048A31F |. 59 POP ECX
0048A320 |. 59 POP ECX
0048A321 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
0048A324 |. 68 3EA34800 PUSH wnspxsgl.0048A33E
0048A329 |> 8D45 E8 LEA EAX,DWORD PTR SS:[EBP-18]
0048A32C |. BA 02000000 MOV EDX,2
0048A331 |. E8 92A0F7FF CALL wnspxsgl.004043C8
0048A336 \. C3 RETN
【总结】
破起来很简单,要爆破只需改5处(005CB873、005CB892、005CB8B1、005CB8D0、005CB8EF),将JNZ改为JZ即可。
还有种方法就是找注册表:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\soslfte]
"gc_id"=dword:00000001(此值为0表示已注册,反之为1则未注册)。
在这里我做了个内存注册器(在上面我提到过的),说说具体用法吧,因为截取到的是32位字串,此软件注册有5个地方要输入:第一部分软件序列号的四个输入框填前16位,每4个一组,依次填写;注册号内填8位,即从17~24;后面的8位不要。
另外,与此软件同版号的还有“旺铺销售理财专家 V5.2.8”、“商品销售管理软件V5.2.8” ,应该是三姐妹吧,注册方式一样,功能好象也差不多。特别要说的是“旺铺销售理财专家 V5.2.8”文件大小与它一样。这三个软件的注册号通用。
小子我不懂算法,望哪位高人帮完善之。
----------------------------------------------------
【版权信息】
小子之艺来源于各位前辈的教诲,欢迎转载。
[ 本帖最后由 lzq1973 于 2005-12-27 04:40 PM 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|