ChmMaker追注册码过程(明码比较)
运行程序,点注册软件,输入注册码,提示“重新运行程序!”,显然是重启验证的类型。用PEID查壳,发现是ASPack 2.12 -> Alexey Solodovnikov。用ESP定律脱壳。载入OD:提示代码段加壳,是否分析,点否。 我们来到下面的地址: 0057D001 >
60
pushad0057D002
E8 03000000
call
0057D00A0057D007
- E9 EB045D45
jmp
45B4D4F70057D00C
55
push
ebp0057D00D
C3
retn0057D00E
E8 01000000
call
0057D0140057D013
EB 5D
jmp
short 0057D0720057D015
BB EDFFFFFF
mov
ebx, -130057D01A
03DD
add
ebx, ebp0057D01C
81EB 00D01700
sub
ebx, 17D0000057D022
83BD 22040000 0>cmp
dword ptr , 00057D029
899D 22040000
mov
dword ptr , ebx0057D02F
0F85 65030000
jnz
0057D39A0057D035
8D85 2E040000
lea
eax, dword ptr 0057D03B
50
push
eax0057D03C
FF95 4D0F0000
call
dword ptr 0057D042
8985 26040000
mov
dword ptr , eax0057D048
8BF8
mov
edi, eax0057D04A
8D5D 5E
lea
ebx, dword ptr 0057D04D
53
push
ebx0057D04E
50
push
eax0057D04F
FF95 490F0000
call
dword ptr 0057D055
8985 4D050000
mov
dword ptr , eax0057D05B
8D5D 6B
lea
ebx, dword ptr 0057D05E
53
push
ebx0057D05F
57
push
edi0057D060
FF95 490F0000
call
dword ptr 0057D066
8985 51050000
mov
dword ptr , eax0057D06C
8D45 77
lea
eax, dword ptr 0057D06F
FFE0
jmp
eax0057D071
56
push
esi0057D072
6972 74 75616C4>imul
esi, dword ptr , 416C617>0057D079
6C
ins
byte ptr es:, dx0057D07A
6C
ins
byte ptr es:, dx0057D07B
6F
outs
dx, dword ptr es:0057D07C
6300
arpl
word ptr , ax0057D07E
56
push
esi0057D07F
6972 74 75616C4>imul
esi, dword ptr , 466C617>0057D086
72 65
jb
short 0057D0ED0057D088
65:008B 9D31050>add
byte ptr gs:, cl0057D08F
000B
add
byte ptr , cl 单步走,发现到0057D002
E8 03000000
call
0057D00A首次ESP变红,复制ESP中的地址,下断 hr 0012FFA4 后,F9运行,我们来到这里:0057D3B0
/75 08
jnz
short 0057D3BA0057D3B2
|B8 01000000
mov
eax, 10057D3B7
|C2 0C00
retn
0C0057D3BA
\68 50FD4C00
push
004CFD500057D3BF
C3
retn0057D3C0
8B85 26040000
mov
eax, dword ptr 0057D3C6
8D8D 3B040000
lea
ecx, dword ptr 0057D3CC
51
push
ecx0057D3CD
50
push
eax0057D3CE
FF95 490F0000
call
dword ptr 0057D3D4
8985 55050000
mov
dword ptr , eax0057D3DA
8D85 47040000
lea
eax, dword ptr 0057D3E0
50
push
eax0057D3E1
FF95 510F0000
call
dword ptr 0057D3E7
8985 2A040000
mov
dword ptr , eax0057D3ED
8D8D 52040000
lea
ecx, dword ptr 0057D3F3
51
push
ecx0057D3F4
50
push
eax 继续F8单步走,几步后我们来到这里: 004CFD50
55
push
ebp004CFD51
8BEC
mov
ebp, esp004CFD53
83C4 F0
add
esp, -10004CFD56
53
push
ebx004CFD57
B8 D0F94C00
mov
eax, 004CF9D0004CFD5C
E8 A76BF3FF
call
00406908004CFD61
8B1D 98304D00
mov
ebx, dword ptr
; ChmMaker.004D4C34004CFD67
8B03
mov
eax, dword ptr 004CFD69
E8 F645F9FF
call
00464364004CFD6E
8B03
mov
eax, dword ptr 004CFD70
BA C8FD4C00
mov
edx, 004CFDC8004CFD75
E8 F641F9FF
call
00463F70004CFD7A
8B0D C42F4D00
mov
ecx, dword ptr
; ChmMaker.004D51D8004CFD80
8B03
mov
eax, dword ptr 004CFD82
8B15 B4D44C00
mov
edx, dword ptr
; ChmMaker.004CD500004CFD88
E8 EF45F9FF
call
0046437C004CFD8D
8B0D E8314D00
mov
ecx, dword ptr
; ChmMaker.004D51D0 这里应该就到程序的OEP了,脱壳,保存。双击运行,没问题。 用OD载入脱壳后的文件,查找字符串,Ultra String Reference, 条目 510
Address=004CEF73
Disassembly=mov
edx, 004CF04C
Text String= - 未购买用户 双击跟进,找到关键部分下好断点,运行我们来到这里: 004CEEF2
|.
B1 01
mov
cl, 1004CEEF4
|.
BA F8EF4C00
mov
edx, 004CEFF8
;
software\chmmaker
//打开注册表004CEEF9
|.
8BC3
mov
eax, ebx004CEEFB
|.
E8 84ABF9FF
call
00469A84004CEF00
|.
8D4D F0
lea
ecx, dword ptr 004CEF03
|.
BA 14F04C00
mov
edx, 004CF014
;
reguser
//注册的用户名004CEF08
|.
8BC3
mov
eax, ebx004CEF0A
|.
E8 3DADF9FF
call
00469C4C004CEF0F
|.
8B55 F0
mov
edx, dword ptr 004CEF12
|.
B8 E0514D00
mov
eax, 004D51E0
;
ASCII "\/?004CEF17
|.
E8 FC55F3FF
call
00404518004CEF1C
|.
8D4D EC
lea
ecx, dword ptr 004CEF1F
|.
BA 24F04C00
mov
edx, 004CF024
;
regno
//保存的注册码004CEF24
|.
8BC3
mov
eax, ebx004CEF26
|.
E8 21ADF9FF
call
00469C4C004CEF2B
|.
8B45 EC
mov
eax, dword ptr
;
这里出现注册码(真码)004CEF2E
|.
50
push
eax004CEF2F
|.
8D4D E8
lea
ecx, dword ptr 004CEF32
|.
BA 34F04C00
mov
edx, 004CF034
;
chmmakerchina004CEF37
|.
A1 E0514D00
mov
eax, dword ptr 004CEF3C
|.
E8 97F2FCFF
call
0049E1D8004CEF41
|.
8B55 E8
mov
edx, dword ptr 004CEF44
|.
58
pop
eax004CEF45
|.
E8 7659F3FF
call
004048C0004CEF4A
|.
75 07
jnz
short 004CEF53004CEF4C
|.
C605 DC514D00>mov
byte ptr , 1004CEF53
|>
8BC3
mov
eax, ebx004CEF55
|.
E8 DE47F3FF
call
00403738004CEF5A
|.
803D DC514D00>cmp
byte ptr , 0004CEF61
|.
75 27
jnz
short 004CEF8A
;
关键跳,跳了就挂!爆破直接改 jmp004CEF63
|.
8D55 E4
lea
edx, dword ptr 004CEF66
|.
A1 D8514D00
mov
eax, dword ptr 004CEF6B
|.
E8 7054F7FF
call
004443E0004CEF70
|.
8D45 E4
lea
eax, dword ptr 004CEF73
|.
BA 4CF04C00
mov
edx, 004CF04C
;
- 未购买用户004CEF78
|.
E8 0758F3FF
call
00404784004CEF7D
|.
8B55 E4
mov
edx, dword ptr 004CEF80
|.
A1 D8514D00
mov
eax, dword ptr 004CEF85
|.
E8 8654F7FF
call
00444410004CEF8A
|>
33C0
xor
eax, eax004CEF8C
|.
5A
pop
edx004CEF8D
|.
59
pop
ecx004CEF8E
|.
59
pop
ecx004CEF8F
|.
64:8910
mov
dword ptr fs:, edx004CEF92
|.
68 B4EF4C00
push
004CEFB4004CEF97
|>
8D45 E4
lea
eax, dword ptr 004CEF9A
|.
E8 2555F3FF
call
004044C4004CEF9F
|.
8D45 E8
lea
eax, dword ptr 004CEFA2
|.
BA 06000000
mov
edx, 6004CEFA7
|.
E8 3C55F3FF
call
004044E8004CEFAC
\.
C3
retn004CEFAD
.^ E9 1A4FF3FF
jmp
00403ECC004CEFB2
.^ EB E3
jmp
short 004CEF97004CEFB4
.
5B
pop
ebx004CEFB5
.
8BE5
mov
esp, ebp004CEFB7
.
5D
pop
ebp004CEFB8
.
C3
retn 【注册名】:sun152121【注册码】:62DDF43AAEB12C7E087F495EB972713C 软件如果爆破的话,将004CEF61
|. /75 27
jnz
short 004CEF8A
;
改成004CEF61
|. /75 27
jmp
short 004CEF8A即可。 【总结】:这个软件是明码比较的软件,爆破也很简单。如果感兴趣也可以做个内存注册机。 感谢分享建议反汇编代码那用代码标签 这样方便大家阅读 不知道是什么来的 呃....好乱,我头看晕了!最好能整理一下!像什么在出现假码的地方,eax的值是什么之类的,会看的更清晰一些! 不错,值得学习,追得好{:1_918:} 支持了,感谢分享
页:
[1]