仓管王 V12.6 单机版
软件大小: 4399
KB
软件语言: 简体中文
软件类别: 国产软件 / 共享版 / 商业贸易
应用平台: Win9x/NT/2000/XP
界面预览:
无
加入时间: 2003-03-23 10:02:16
下载次数: 15385
推荐等级:
联
系 人: tech@shd.com.cn
开 发 商: http://www.shd.com.cn/
软件介绍:
全面优化、占用资源极少、简便实用、完全符合国家规范。 完全满足企事业、行政单位的仓库、财产、物资管理的要求。可选择金额、数量记帐法。除设有基本的入库单、出库单、调拨单、报废单、盘点单外,尚有功能强大的单据修改、单据撤销、单据审批、分类统计等全自动的统计功能,是同类产品中功能最强、价格最低的优秀产品。
拥有全国各地近10万用户。
作者声明:初学破解,纯属技术交流,无其它目的。
工具:ollyDBg1.09,W32Dasm10,Caspr110脱壳工具。
假设:
系列号:166697841106
注册号(假码):1234-2345-3456-4567
先用脱壳工具脱壳
一、查找出错信息。
:00653080
E87B24E4FF call 00495500
:00653085
8B45E8 mov eax,
dword ptr [ebp-18]
:00653088 5A
pop edx
:00653089 E802620400
call 00699290====>关键call
:0065308E 84C0
test al, al
:00653090
7530 jne
006530C2====>此改为je即爆破
:00653092 6A10
push 00000010
*
Possible StringData Ref from Code Obj ->"´错误"
|
:00653094 B9E4326500
mov ecx, 006532E4
*
Possible StringData Ref from Code Obj ->"注册号错误 "
|
:00653099 BAEC326500
mov edx, 006532EC
:0065309E A1D45D6B00
mov eax, dword ptr [006B5DD4]
:006530A3 8B00
mov eax, dword ptr [eax]
:006530A5
E8DE3AE3FF call 00486B88
二、用ollydbg载入
0065301C
|. E8 DF24E4FF CALL aa.00495500
; 取得1234.0
00653021
|. FF75 F8 PUSH DWORD PTR SS:[EBP-8]
; push1234
00653024 |.
68 E0326500 PUSH aa.006532E0
00653029 |. 8D55 F4
LEA EDX,DWORD PTR SS:[EBP-C]
0065302C |. 8B83 54030000
MOV EAX,DWORD PTR DS:[EBX+354]
00653032 |. E8 C924E4FF CALL
aa.00495500
; 取得2345.0
00653037 |. FF75 F4
PUSH DWORD PTR SS:[EBP-C]
0065303A |. 68 E0326500
PUSH aa.006532E0
0065303F |. 8D55 F0 LEA
EDX,DWORD PTR SS:[EBP-10]
00653042 |. 8B83 58030000 MOV EAX,DWORD
PTR DS:[EBX+358]
00653048 |. E8 B324E4FF CALL aa.00495500
; 取3456a
0065304D |. FF75 F0 PUSH
DWORD PTR SS:[EBP-10]
00653050 |. 68 E0326500 PUSH aa.006532E0
00653055
|. 8D55 EC LEA EDX,DWORD PTR SS:[EBP-14]
00653058
|. 8B83 5C030000 MOV EAX,DWORD PTR DS:[EBX+35C]
0065305E |.
E8 9D24E4FF CALL aa.00495500
; 取4567a
00653063 |.
FF75 EC PUSH DWORD PTR SS:[EBP-14]
00653066 |.
8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
00653069 |.
BA 07000000 MOV EDX,7
0065306E |. E8 B121DBFF CALL
aa.00405224
; 形成串:
1234-2345-3456-4567
00653073
|. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
00653076
|. 50 PUSH EAX
00653077 |.
8D55 E8 LEA EDX,DWORD PTR SS:[EBP-18]
0065307A |.
8B83 4C030000 MOV EAX,DWORD PTR DS:[EBX+34C]
00653080 |. E8 7B24E4FF
CALL aa.00495500
; 取系列号aa.0
00653085 |. 8B45
E8 MOV EAX,DWORD PTR SS:[EBP-18]
; 系列号EAX
00653088 |. 5A
POP EDX
; 取出输入的注册码
00653089
|. E8 02620400 CALL aa.00699290
; 关键,F7进入00699
0065308E
|. 84C0 TEST AL,AL
00653090 |.
7530 jne 006530C2====>此改为je即爆破
00653092
|. 6A 10 PUSH 10
三、关键call分析
-----------------------------------------
006992A1
|. 56 PUSH ESI
006992A2 |.
8955 F8 MOV DWORD PTR SS:[EBP-8],EDX
; 输入串保存到ebp-8
006992A5 |. 8945
FC MOV DWORD PTR SS:[EBP-4],EAX
; 系列号保存到ebp-4
006992A8 |. 8B45 FC
MOV EAX,DWORD PTR SS:[EBP-4]
006992AB |. E8 9CC0D6FF
CALL aa.0040534C
006992B0 |. 8B45 F8
MOV EAX,DWORD PTR SS:[EBP-8]
006992B3 |. E8 94C0D6FF CALL
aa.0040534C
006992B8 |. 33C0 XOR EAX,EAX
006992BA
|. 55 PUSH EBP
006992BB |.
68 02956900 PUSH aa.00699502
006992C0 |. 64:FF30
PUSH DWORD PTR FS:[EAX]
006992C3 |. 64:8920
MOV DWORD PTR FS:[EAX],ESP
006992C6 |. 8D45 F4
LEA EAX,DWORD PTR SS:[EBP-C]
006992C9 |. E8 DEBBD6FF
CALL aa.00404EAC
006992CE |. 66:BB 0100 MOV
BX,1
006992D2 |> 8BF3 /MOV ESI,EBX
006992D4
|. 03F6 |ADD ESI,ESI
006992D6 |.
4E |DEC ESI
006992D7 |. 8D45
E0 |LEA EAX,DWORD PTR SS:[EBP-20]
006992DA |.
50 |PUSH EAX
006992DB |. 0FB7D6
|MOVZX EDX,SI
006992DE |. B9 01000000
|MOV ECX,1
006992E3 |. 8B45 FC |MOV
EAX,DWORD PTR SS:[EBP-4] ; 系列号入eax
006992E6
|. E8 D1C0D6FF |CALL aa.004053BC
006992EB |. 8B55
E0 |MOV EDX,DWORD PTR SS:[EBP-20]
006992EE |.
8D45 F4 |LEA EAX,DWORD PTR SS:[EBP-C]
006992F1 |.
E8 76BED6FF |CALL aa.0040516C
006992F6 |. 43
|INC EBX
006992F7 |. 66:83FB 05
|CMP BX,5
006992FB |.^75 D5 \JNZ SHORT
aa.006992D2 ;
以上为依次取系列号的1、3
、5、7位
006992FD
|. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
00699300
|. 50 PUSH EAX
00699301 |.
B9 04000000 MOV ECX,4
00699306 |. BA 01000000 MOV
EDX,1
;
0069930B |. 8B45 F8
MOV EAX,DWORD PTR SS:[EBP-8]
; 注册码串入eax
0069930E |. E8 A9C0D6FF CALL
aa.004053BC
; 取串(1)1234
00699313 |. 8D45 EC
LEA EAX,DWORD PTR SS:[EBP-14]
00699316 |. 50
PUSH EAX
00699317 |. B9 04000000 MOV
ECX,4
0069931C |. BA 06000000 MOV EDX,6
; 表示从串第六位取四位
00699321 |. 8B45 F8
MOV EAX,DWORD PTR SS:[EBP-8]
00699324 |. E8 93C0D6FF CALL
aa.004053BC
; 取串(2)2345
00699329 |. 8D45 E8
LEA EAX,DWORD PTR SS:[EBP-18]
0069932C |. 50
PUSH EAX
0069932D |. B9 04000000 MOV
ECX,4
00699332 |. BA 0B000000 MOV EDX,0B
00699337 |.
8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
0069933A |.
E8 7DC0D6FF CALL aa.004053BC
; 取串(3)3456
0069933F |.
8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C]
00699342 |.
50 PUSH EAX
00699343 |. B9
04000000 MOV ECX,4
00699348 |. BA 10000000 MOV
EDX,10
0069934D |. 8B45 F8 MOV EAX,DWORD PTR
SS:[EBP-8]
00699350 |. E8 67C0D6FF CALL aa.004053BC
;
取串(4)4567
00699355 |. 8B45 FC MOV EAX,DWORD
PTR SS:[EBP-4] ; 系列号入eax
00699358
|. E8 07BED6FF CALL aa.00405164
; 取系列号位数
0069935D
|. 8BD8 MOV EBX,EAX
0069935F |.
8D45 D8 LEA EAX,DWORD PTR SS:[EBP-28]
00699362 |.
50 PUSH EAX
00699363 |. B9
01000000 MOV ECX,1
00699368 |. BA 01000000 MOV
EDX,1
0069936D |. 8B45 F0 MOV EAX,DWORD PTR
SS:[EBP-10] ; 输入串1234入eax
00699370
|. E8 47C0D6FF CALL aa.004053BC
; 取串第一位,保存在ebp-28
地址处,
00699375
|. FF75 D8 PUSH DWORD PTR SS:[EBP-28]
00699378
|. 8D45 D4 LEA EAX,DWORD PTR SS:[EBP-2C]
0069937B
|. 50 PUSH EAX
0069937C |.
B9 01000000 MOV ECX,1
00699381 |. BA 02000000 MOV
EDX,2
;
00699386 |. 8B45 EC
MOV EAX,DWORD PTR SS:[EBP-14]
; 串(2)2345入eax
00699389 |. E8 2EC0D6FF
CALL aa.004053BC
; 取得串2的第二位即3
0069938E |. FF75 D4
PUSH DWORD PTR SS:[EBP-2C]
00699391 |. 8D45
D0 LEA EAX,DWORD PTR SS:[EBP-30]
00699394 |.
50 PUSH EAX
00699395 |. B9
01000000 MOV ECX,1
0069939A |. BA 03000000 MOV
EDX,3
0069939F |. 8B45 E8 MOV EAX,DWORD PTR
SS:[EBP-18] ; 串(3)3456
006993A2
|. E8 15C0D6FF CALL aa.004053BC ;取串(3)第3位
006993A7
|. FF75 D0 PUSH DWORD PTR SS:[EBP-30]
; 取得数字5
006993AA |.
8D45 CC LEA EAX,DWORD PTR SS:[EBP-34]
006993AD |.
50 PUSH EAX
006993AE |. B9
01000000 MOV ECX,1
006993B3 |. BA 04000000 MOV
EDX,4
006993B8 |. 8B45 E4 MOV EAX,DWORD PTR
SS:[EBP-1C] ; 串(4)4567入eax
006993BB
|. E8 FCBFD6FF CALL aa.004053BC
; 取串(4)第4位,取得数字7
006993C0
|. FF75 CC PUSH DWORD PTR SS:[EBP-34]
006993C3
|. 8D45 DC LEA EAX,DWORD PTR SS:[EBP-24]
006993C6
|. BA 04000000 MOV EDX,4
006993CB |. E8 54BED6FF
CALL aa.00405224
; 取得的各位形成串,即为
1357
006993D0
|. 8B55 DC MOV EDX,DWORD PTR SS:[EBP-24]
006993D3
|. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
; 系列号的1、3、5、7位,即
1698
006993D6
|. E8 CDBED6FF CALL aa.004052A8
; 系列号的1、3、5、7位,即
1698,与串(1)的第1位,串(2)第2位,串(3)第3位,串(4)第4位各位比较
006993DB
|. 0F85 F2000000 JNZ aa.006994D3
; 关键判断1
006993E1
|. 8D45 C8 LEA EAX,DWORD PTR SS:[EBP-38]
006993E4
|. 50 PUSH EAX
006993E5 |.
B9 01000000 MOV ECX,1
006993EA |. BA 04000000 MOV
EDX,4
006993EF |. 8B45 F0 MOV EAX,DWORD PTR
SS:[EBP-10] ; 串(1)1234入eax
006993F2
|. E8 C5BFD6FF CALL aa.004053BC
; 从串的第4位,即为4
006993F7
|. 8B45 C8 MOV EAX,DWORD PTR SS:[EBP-38]
006993FA
|. 50 PUSH EAX
006993FB |.
8D45 C4 LEA EAX,DWORD PTR SS:[EBP-3C]
006993FE |.
50 PUSH EAX
006993FF |. 0FB7D3
MOVZX EDX,BX
; 系列号的位数入edx,即为12
00699402
|. 83EA 03 SUB EDX,3
;
位数-3,edx=9
00699405 |. B9 01000000 MOV ECX,1
; ecx为1
0069940A |. 8B45 FC
MOV EAX,DWORD PTR SS:[EBP-4]
; 系列号入eax
0069940D |. E8 AABFD6FF CALL aa.004053BC
; 取系列号的第9位,即1
00699412 |. 8B55 C4 MOV
EDX,DWORD PTR SS:[EBP-3C]
00699415 |. 58
POP EAX
00699416 |. E8 8DBED6FF CALL aa.004052A8
; 系列号的第9位与串1的第4位
比较
0069941B
|. 0F85 B2000000 JNZ aa.006994D3
; 关键判断2
00699421
|. 8D45 C0 LEA EAX,DWORD PTR SS:[EBP-40]
00699424
|. 50 PUSH EAX
00699425 |.
B9 01000000 MOV ECX,1
0069942A |. BA 03000000 MOV
EDX,3
0069942F |. 8B45 EC MOV EAX,DWORD PTR
SS:[EBP-14] ; 串(2)2645
00699432
|. E8 85BFD6FF CALL aa.004053BC
; 取串(2)第三位
00699437
|. 8B45 C0 MOV EAX,DWORD PTR SS:[EBP-40]
0069943A
|. 50 PUSH EAX
0069943B |.
8D45 BC LEA EAX,DWORD PTR SS:[EBP-44]
0069943E |.
50 PUSH EAX
0069943F |. 0FB7D3
MOVZX EDX,BX
; 系列号位数入edx
00699442
|. 83EA 02 SUB EDX,2
;
edx减2,edx为10
00699445 |. B9 01000000 MOV ECX,1
0069944A
|. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
; 系列号入eax
0069944D |. E8
6ABFD6FF CALL aa.004053BC
; 取得系列号第10位
00699452 |.
8B55 BC MOV EDX,DWORD PTR SS:[EBP-44]
00699455 |.
58 POP EAX
00699456 |. E8 4DBED6FF
CALL aa.004052A8
; 系列号第10位与串(2)第三
位比较
0069945B
|. 75 76 JNZ SHORT aa.006994D3
; 关键判断3
0069945D
|. 8D45 B8 LEA EAX,DWORD PTR SS:[EBP-48]
00699460
|. 50 PUSH EAX
00699461 |.
B9 01000000 MOV ECX,1
00699466 |. BA 02000000 MOV
EDX,2
0069946B |. 8B45 E8 MOV EAX,DWORD PTR
SS:[EBP-18] ; 串(3)3459入eax
0069946E
|. E8 49BFD6FF CALL aa.004053BC
; 取串(3)第二位即为4
00699473
|. 8B45 B8 MOV EAX,DWORD PTR SS:[EBP-48]
00699476
|. 50 PUSH EAX
00699477 |.
8D45 B4 LEA EAX,DWORD PTR SS:[EBP-4C]
0069947A |.
50 PUSH EAX
0069947B |. 0FB7D3
MOVZX EDX,BX
; 系列号位数入edx
0069947E
|. 4A DEC EDX
; 减1即为第11位
0069947F |. B9 01000000 MOV
ECX,1
00699484 |. 8B45 FC MOV EAX,DWORD PTR
SS:[EBP-4]
00699487 |. E8 30BFD6FF CALL aa.004053BC
;
取系列号的第11位
0069948C |. 8B55 B4 MOV EDX,DWORD
PTR SS:[EBP-4C]
0069948F |. 58
POP EAX
00699490 |. E8 13BED6FF CALL aa.004052A8
;
取系列号的第11位与串(3)
第二位比较
00699495
|. 75 3C JNZ SHORT aa.006994D3
; 关键判断4
00699497
|. 8D45 B0 LEA EAX,DWORD PTR SS:[EBP-50]
0069949A
|. 50 PUSH EAX
0069949B |.
B9 01000000 MOV ECX,1
006994A0 |. BA 01000000 MOV
EDX,1
006994A5 |. 8B45 E4 MOV EAX,DWORD PTR
SS:[EBP-1C] ; 串(4)入eax
006994A8
|. E8 0FBFD6FF CALL aa.004053BC
; 取串(4)第1位
006994AD
|. 8B45 B0 MOV EAX,DWORD PTR SS:[EBP-50]
006994B0
|. 50 PUSH EAX
006994B1 |.
8D45 AC LEA EAX,DWORD PTR SS:[EBP-54]
006994B4 |.
50 PUSH EAX
006994B5 |. 0FB7D3
MOVZX EDX,BX
006994B8 |. 83EA 00
SUB EDX,0
006994BB |. B9 01000000 MOV ECX,1
006994C0
|. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
006994C3
|. E8 F4BED6FF CALL aa.004053BC
; 取系列号第12位
006994C8
|. 8B55 AC MOV EDX,DWORD PTR SS:[EBP-54]
006994CB
|. 58 POP EAX
006994CC |.
E8 D7BDD6FF CALL aa.004052A8
; 系列号第12位与串(4)第1
位比较
006994D1
|. 74 04 JE SHORT aa.006994D7
; 关键判断5
006994D3
|> 33DB XOR EBX,EBX
006994D5 |.
EB 02 JMP SHORT aa.006994D9
---------------------------------
算法总结:
1、系列号的1、3、5、7位,即1698,与串(1)的第1位,串(2)第2位,串(3)第3位,串(4)第4位相等
2、系列号的第9位与串(1)的第4位相等
3、系列号第10位与串(2)第3位相等
4、系列号第11位与串(3)第2位相等
5、系列号第12位与串(4)第1位相等
总结:
系列号:166697841106
注册号:1231-2615-3096-6568
lordor
4.20