Nview, Nconvert & View2 v3.85
XnView v1.45
GFL SDK v1.85
注册名:powerboy
注册码:1720700947
注册码保存在:HKEY_CURRENT_USER\Software\XnView
我的同学买了一张盗版的盘中代的一个类似ACDSEE的看图软件,算法很普通不过由于很久没有动手破解软件了,就贴一篇吧!
Download : http://perso.wanadoo.fr/pierre.g/download
0167:00452DAD 51
PUSH ECX
0167:00452DAE 68D1070000
PUSH 000007D1
0167:00452DB3
56 PUSH
ESI
0167:00452DB4 FFD7
CALL EDI
0167:00452DB6 8A442470
MOV AL,[ESP+70]
0167:00452DBA
84C0 TEST
AL,AL
0167:00452DBC 0F843A010000
JZ 00452EFC
0167:00452DC2 8A442410
MOV AL,[ESP+10]
0167:00452DC6
84C0 TEST
AL,AL
0167:00452DC8 0F842E010000
JZ 00452EFC
0167:00452DCE 8D542408
LEA EDX,[ESP+08]
0167:00452DD2
8D442470 LEA EAX,[ESP+70]
0167:00452DD6 52
PUSH EDX
0167:00452DD7 50
PUSH EAX
0167:00452DD8
E8633BFBFF CALL 00406940------------>算法CALL
0167:00452DDD 8D4C2418 LEA
ECX,[ESP+18]
0167:00452DE1 51
PUSH ECX
0167:00452DE2
E8E44F0000 CALL 00457DCB------------>将输入的SN变成十六进制
0167:00452DE7 8B4C2414 MOV
ECX,[ESP+14]-------->正确的注册码
0167:00452DEB 83C40C
ADD ESP,0C
0167:00452DEE 3BC8
CMP ECX,EAX------------->输入SN的十六与注册码比较
0167:00452DF0
745D JZ
00452E4F
0167:00452DF2 A16CA95600
MOV EAX,[0056A96C]
0167:00452DF7 8D542430
LEA EDX,[ESP+30]
0167:00452DFB
6A40 PUSH
40
0167:00452DFD 52
PUSH EDX
0167:00452DFE 6893130000
PUSH 00001393
0167:00452E03
50 PUSH
EAX
0167:00452E04 FF153C555100 CALL
[USER32!LoadStringA]
0167:00452E0A 6A10
PUSH 10
0167:00452E0C
8D4C2434 LEA ECX,[ESP+34]
0167:00452E10 68187A5600 PUSH
00567A18
0167:00452E15 51
PUSH ECX
0167:00452E16
56 PUSH
ESI
0167:00452E17 FF15C4545100 CALL
[USER32!MessageBoxA]
0167:00452E1D 68D0070000
PUSH 000007D0
0167:00452E22
56 PUSH
ESI
0167:00452E23 FF1550555100 CALL
[USER32!GetDlgItem]
0167:00452E29 50
PUSH EAX
0167:00452E2A
FF15B4545100 CALL [USER32!SetFocus]
0167:00452E30 68187A5600 PUSH
00567A18
0167:00452E35 68D1070000
PUSH 000007D1
0167:00452E3A 56
PUSH
ESI
0167:00452E3B FF1540555100 CALL
[USER32!SetDlgItemTextA]
0167:00452E41 5F
POP EDI
0167:00452E42 B801000000 MOV
EAX,00000001
0167:00452E47 5E
POP ESI
0167:00452E48
81C468010000 ADD ESP,00000168
========================================================================
0167:00406945 55
PUSH EBP
0167:00406946 56
PUSH ESI
0167:00406947
57 PUSH
EDI
0167:00406948 8BFA
MOV EDI,EDX
0167:0040694A 83C9FF
OR ECX,-01
0167:0040694D 33C0
XOR EAX,EAX
0167:0040694F F2AE
REPNZ SCASB
0167:00406951
F7D1 NOT
ECX
0167:00406953 49
DEC ECX
0167:00406954 BEA0BC5400
MOV ESI,0054BCA0
0167:00406959
8BE9 MOV
EBP,ECX
0167:0040695B B905000000
MOV ECX,00000005
0167:00406960 BF047A5600
MOV EDI,00567A04
0167:00406965
F3A5 REPZ MOVSD
0167:00406967
8BF0 MOV
ESI,EAX
0167:00406969 7421
JZ 0040698C
表1:0054BCA0 AA 89 C4 FE 46 78 F0 D0-03
E7 F7 FD F4 E7 B9 B5 ....Fx..........
0167:0040696B 8A0C16
MOV CL,[EDX+ESI]
0167:0040696E 8AD9
MOV BL,CL
0167:00406970 3298047A5600
XOR BL,[EAX+00567A04]
0167:00406976
40 INC
EAX
0167:00406977 83F805
CMP EAX,05
0167:0040697A 881C16
MOV [EDX+ESI],BL
0167:0040697D
8888037A5600 MOV [EAX+00567A03],CL
0167:00406983 7502
JNZ 00406987
0167:00406985 33C0
XOR EAX,EAX
0167:00406987 46
INC ESI
0167:00406988 3BF5
CMP ESI,EBP
0167:0040698A 72DF
JB 0040696B
0167:0040698C 33FF
XOR EDI,EDI
0167:0040698E 33C9
XOR ECX,ECX
0167:00406990 85ED
TEST EBP,EBP
0167:00406992
7626 JBE
004069BA
表2:00567A09 78 F0 D0 03 E7 F7 FD
F4-E7 B9 B5 1B C9 50 73 00 x............Ps.
0167:00406994
8A9F097A5600 MOV BL,[EDI+00567A09]
0167:0040699A 8BF5
MOV ESI,EBP
0167:0040699C 2BF1
SUB ESI,ECX
0167:0040699E 4E
DEC ESI
0167:0040699F 8A0416
MOV AL,[EDX+ESI]
0167:004069A2
32D8 XOR
BL,AL
0167:004069A4 47
INC EDI
0167:004069A5 881C16
MOV [EDX+ESI],BL
0167:004069A8 8887087A5600 MOV
[EDI+00567A08],AL
0167:004069AE 83FF05
CMP EDI,05
0167:004069B1 7502
JNZ 004069B5
0167:004069B3 33FF
XOR EDI,EDI
0167:004069B5 41
INC ECX
0167:004069B6 3BCD
CMP ECX,EBP
0167:004069B8 72DA
JB 00406994
0167:004069BA 33F6
XOR ESI,ESI
0167:004069BC 33FF
XOR EDI,EDI
0167:004069BE
85ED TEST
EBP,EBP
0167:004069C0 7621
JBE 004069E3
表3:00567A0E F7 FD F4 E7 B9 B5 1B C9-50 73 00 00 00 00 00 00
........Ps......
0167:004069C2 8A0417
MOV AL,[EDX+EDI]
0167:004069C5
8A8E0E7A5600 MOV CL,[ESI+00567A0E]
0167:004069CB 32C8
XOR CL,AL
0167:004069CD 46
INC ESI
0167:004069CE 880C17 MOV
[EDX+EDI],CL
0167:004069D1 88860D7A5600
MOV [ESI+00567A0D],AL
0167:004069D7
83FE05 CMP
ESI,05
0167:004069DA 7502
JNZ 004069DE
0167:004069DC 33F6
XOR ESI,ESI
0167:004069DE 47
INC EDI
0167:004069DF 3BFD
CMP EDI,EBP
0167:004069E1 72DF
JB 004069C2
0167:004069E3 33FF
XOR EDI,EDI
0167:004069E5 33C9
XOR ECX,ECX
0167:004069E7 85ED
TEST EBP,EBP
0167:004069E9
7626 JBE
00406A11
表4:00567A13 B5 1B C9 50 73 00 00
00-00 00 00 00 00 06 00 00 ...Ps...........
0167:004069EB
8A9F137A5600 MOV BL,[EDI+00567A13]
0167:004069F1 8BF5
MOV ESI,EBP
0167:004069F3 2BF1
SUB ESI,ECX
0167:004069F5 4E
DEC ESI
0167:004069F6 8A0416
MOV AL,[EDX+ESI]
0167:004069F9
32D8 XOR
BL,AL
0167:004069FB 47
INC EDI
0167:004069FC 881C16
MOV [EDX+ESI],BL
0167:004069FF 8887127A5600 MOV
[EDI+00567A12],AL
0167:00406A05 83FF05
CMP EDI,05
0167:00406A08 7502
JNZ 00406A0C
0167:00406A0A 33FF
XOR EDI,EDI
0167:00406A0C 41
INC ECX
0167:00406A0D 3BCD
CMP ECX,EBP
0167:00406A0F 72DA
JB 004069EB
作最后的处理:
0167:00406A11 8B7C2418
MOV EDI,[ESP+18]
0167:00406A15 33C0
XOR EAX,EAX
0167:00406A17 85ED
TEST EBP,EBP
0167:00406A19 C70700000000
MOV DWORD PTR [EDI],00000000-->清理内存区域
0167:00406A1F
7617 JBE
00406A38
0167:00406A21 8BC8
MOV ECX,EAX
0167:00406A23 83E103
AND ECX,03
0167:00406A26 8A1C39 MOV
BL,[EDI+ECX]
0167:00406A29 8D3439
LEA ESI,[EDI+ECX]
0167:00406A2C
8A0C10 MOV
CL,[EDX+EAX]
0167:00406A2F 02D9
ADD BL,CL
0167:00406A31 40
INC
EAX
0167:00406A32 3BC5
CMP EAX,EBP
0167:00406A34 881E
MOV [ESI],BL
0167:00406A36 72E9
JB 00406A21
0167:00406A38 5F
POP EDI
0167:00406A39 5E
POP ESI
0167:00406A3A 5D
POP EBP
0167:00406A3B
5B POP
EBX
0167:00406A3C C3
RET
---------------------------------------------------------------
算法整理:
表1:AA 89 C4 FE 46 ; 表2:78 F0 D0 03 E7 ; 表3:F7 FD F4 E7 B9 ; 表4:B5
1B C9 50 73;
步骤1:
powerboy:=70 6F 77 65 72 62 6F 79 XOR 表1(但当用户名大于5位时就用NAME[1]
XOR NAME[6]以此类推)
70 XOR AA=DA
6F XOR 89=E6
77 XOR C4=B3
65 XOR FE=9B
72 XOR 46=34
62 XOR 70=12
6F XOR 6F=00
79 XOR
77=0E
X1:=DA E6 B3 9B 34 12 00 0E
步骤2:
翻转X1 并XOR 表2:(但当X1大于5位时就用X1[1]
XOR X1[6]以此类推)
0E XOR 78=76
00 XOR F0=F0
12 XOR D0=C2
34 XOR
03=37
9B XOR E7=7C
B3 XOR 0E=BD
E6 XOR 00=E6
DA XOR 12=C8
X2:=76 F0 C2 37 7C BD E6 C8
步骤3:
翻转X2 并XOR 表3:(但当X1大于5位时就用X2[1]
XOR X2[6]以此类推)
C8 XOR F7=3F
E6 XOR FD=1B
BD XOR F4=49
7C XOR
E7=9B
37 XOR B9=8E
C2 XOR C8=0A
F0 XOR E6=16
76 XOR BD=CB
X3:=3F 1B 49 9B 8E 0A 16 CB
步骤4:
翻转X3 并XOR 表4:(但当X1大于5位时就用X3[1]
XOR X3[6]以此类推)
CB XOR B5=7E
16 XOR 1B=0D
0A XOR C9=C3
8E XOR
50=DE
9B XOR 73=E8
49 XOR CB=82
1B XOR 16=0D
3F XOR 0A=35
X4:=7E 0D C3 DE E8 82 0D 35
步骤5:
35 ADD 00=35
0D ADD 00=0D
82 ADD 00=82
E8 ADD 00=E8
DE ADD 35=113-->13
C3 ADD 0D=D0
0D ADD 82=8F
7E ADD E8=166-->66
X5:=13 D0 8F 66
668FD013--->变成十进制1720700947
- 标 题:一篇初级破解过程,很久没有动手了,大家不要笑我钝啊! (10千字)
- 作 者:PowerBoy
- 时 间:2003-1-11 22:08:39
- 链 接:http://bbs.pediy.com