一种mt4收费加密指标的和谐方法
https://www.52pojie.cn/thread-1682825-1-1.html
工具:52下的OD;
研究对象:一种mt4收费加密指标;
来源:网络
理由:和谐过程中的一点心得;
软件类型:MetaTrader;
操作系统:winxp
要达到目的:功能正常使用
百度了一下,据说ex4比较难和谐,特意从网上找了一个ex4,下面是过期后指标表现的状态。

好像无法下手,唯一有效的信息就是“账号无权限续费微信”,内存映射里找一下,在地址057D27D4找到,先下内存访问断点,看OD是否断得下来

[Asm] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
007EBCB7 8D4F 4C
lea
ecx
,
dword
ptr
ds
:[
edi
+0x4C]
007EBCBA 8945 14
mov
dword
ptr
ss
:[
ebp
+0x14],
eax
007EBCBD 8D51 01
lea
edx
,
dword
ptr
ds
:[
ecx
+0x1]
007EBCC0 8A01
mov
al
,
byte
ptr
ds
:[
ecx
]
007EBCC2 41
inc
ecx
007EBCC3 84C0
test
al
,
al
007EBCC5 ^ 75 F9
jnz
short
terminal.007EBCC0
007EBCC7 8D86 64010000
lea
eax
,
dword
ptr
ds
:[
esi
+0x164]
007EBCCD 2BCA
sub
ecx
,
edx
007EBCCF 50
push
eax
007EBCD0 8D45 C0
lea
eax
,
dword
ptr
ss
:[
ebp
-0x40]
007EBCD3 894D 0C
mov
dword
ptr
ss
:[
ebp
+0xC],
ecx
007EBCD6 50
push
eax
007EBCD7 FF15 0CCC9900
call
dword
ptr
ds
:[0x99CC0C]
; user32.CopyRect
007EBCDD 83BF 78020000 0>
cmp
dword
ptr
ds
:[
edi
+0x278],0x0
007EBCE4 74 09
je
short
terminal.007EBCEF
007EBCC0断下来,取消内存访问断点,上面程序计算字符个数。看一下堆栈调用

没有显性的调用关系。Ctrl+f9,f8,再看堆栈调用

到程序段段首下断
[Asm] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
007BE340 55
push
ebp
007BE341 8BEC
mov
ebp
,
esp
007BE343 83E4 C0
and
esp
,0xFFFFFFC0
007BE346 83EC 34
sub
esp
,0x34
007BE349 837D 08 00
cmp
dword
ptr
ss
:[
ebp
+0x8],0x0
007BE34D 53
push
ebx
007BE34E 56
push
esi
007BE34F 57
push
edi
007BE350 8BF9
mov
edi
,
ecx
007BE352 C74424 3C 00000000
mov
dword
ptr
ss
:[
esp
+0x3C],0x0
007BE35A 0F84 E3000000
je
terminal.007BE443
007BE360 8B5D 0C
mov
ebx
,
dword
ptr
ss
:[
ebp
+0xC]
007BE363 85DB
test
ebx
,
ebx
007BE365 0F84 D8000000
je
terminal.007BE443
007BE36B 837B 04 00
cmp
dword
ptr
ds
:[
ebx
+0x4],0x0
007BE36F 0F84 CE000000
je
terminal.007BE443
007BE375 837B 08 01
cmp
dword
ptr
ds
:[
ebx
+0x8],0x1
007BE379 0F8C C4000000
jl
terminal.007BE443
007BE37F 8B07
mov
eax
,
dword
ptr
ds
:[
edi
]
; terminal.00A1E52C
007BE381 FF50 10
call
dword
ptr
ds
:[
eax
+0x10]
007BE384 83F8 01
cmp
eax
,0x1
007BE387 74 0A
je
short
terminal.007BE393
007BE389 8B87 80060000
mov
eax
,
dword
ptr
ds
:[
edi
+0x680]
007BE38F 894424 3C
mov
dword
ptr
ss
:[
esp
+0x3C],
eax
007BE393 8BB7 F41E0000
mov
esi
,
dword
ptr
ds
:[
edi
+0x1EF4]
007BE399 897424 38
mov
dword
ptr
ss
:[
esp
+0x38],
esi
007BE39D 33F6
xor
esi
,
esi
007BE39F 397424 38
cmp
dword
ptr
ss
:[
esp
+0x38],
esi
007BE3A3 0F8E 84000000
jle
terminal.007BE42D
007BE3A9 8B5C24 38
mov
ebx
,
dword
ptr
ss
:[
esp
+0x38]
007BE3AD 0F1F ???
; 未知命令
007BE3AF 0085 F678713B
add
byte
ptr
ss
:[
ebp
+0x3B7178F6],
al
007BE3B5 B7 F4
mov
bh
,0xF4
007BE3B7 1E
push
ds
007BE3B8 0000
add
byte
ptr
ds
:[
eax
],
al
007BE3BA 7D 69
jge
short
terminal.007BE425
007BE3BC 8B9F EC1E0000
mov
ebx
,
dword
ptr
ds
:[
edi
+0x1EEC]
007BE3C2 85DB
test
ebx
,
ebx
007BE3C4 74 5B
je
short
terminal.007BE421
007BE3C6 8B1CB3
mov
ebx
,
dword
ptr
ds
:[
ebx
+
esi
*4]
007BE3C9 85DB
test
ebx
,
ebx
007BE3CB 74 54
je
short
terminal.007BE421
007BE3CD 8B55 10
mov
edx
,
dword
ptr
ss
:[
ebp
+0x10]
007BE3D0 8BCB
mov
ecx
,
ebx
007BE3D2 52
push
edx
007BE3D3 E8 F8EAC6FF
call
terminal.0042CED0
007BE3D8 3BD0
cmp
edx
,
eax
007BE3DA 75 45
jnz
short
terminal.007BE421
007BE3DC FFB7 DC1E0000
push
dword
ptr
ds
:[
edi
+0x1EDC]
007BE3E2 8B03
mov
eax
,
dword
ptr
ds
:[
ebx
]
; terminal.00A23ED8
007BE3E4 FFB7 D81E0000
push
dword
ptr
ds
:[
edi
+0x1ED8]
007BE3EA FF50 5C
call
dword
ptr
ds
:[
eax
+0x5C]
007BE3ED FF7424 3C
push
dword
ptr
ss
:[
esp
+0x3C]
007BE3F1 8B45 10
mov
eax
,
dword
ptr
ss
:[
ebp
+0x10]
007BE3F4 8BCB
mov
ecx
,
ebx
007BE3F6 83EC 10
sub
esp
,0x10
007BE3F9 8983 E8000000
mov
dword
ptr
ds
:[
ebx
+0xE8],
eax
007BE3FF 0F1087 A01E0000
movups
xmm0
,dqword
ptr
ds
:[
edi
+0x1EA0]
007BE406 8B03
mov
eax
,
dword
ptr
ds
:[
ebx
]
; terminal.00A23ED8
007BE408 0F110424
movups
dqword
ptr
ss
:[
esp
],
xmm0
007BE40C FFB7 901E0000
push
dword
ptr
ds
:[
edi
+0x1E90]
007BE412 FFB7 881E0000
push
dword
ptr
ds
:[
edi
+0x1E88]
007BE418 FF75 0C
push
dword
ptr
ss
:[
ebp
+0xC]
007BE41B FF75 08
push
dword
ptr
ss
:[
ebp
+0x8]
007BE41E FF50 40
call
dword
ptr
ds
:[
eax
+0x40]
007BE421 8B5C24 38
mov
ebx
,
dword
ptr
ss
:[
esp
+0x38]
007BE425 46
inc
esi
007BE426 3BF3
cmp
esi
,
ebx
007BE428 ^ 7C 86
jl
short
terminal.007BE3B0
007BE42A 8B5D 0C
mov
ebx
,
dword
ptr
ss
:[
ebp
+0xC]
007BE42D 8B45 14
mov
eax
,
dword
ptr
ss
:[
ebp
+0x14]
007BE430 85C0
test
eax
,
eax
007BE432 74 0F
je
short
terminal.007BE443
007BE434 50
push
eax
007BE435 FF75 10
push
dword
ptr
ss
:[
ebp
+0x10]
007BE438 8BCF
mov
ecx
,
edi
007BE43A 53
push
ebx
007BE43B FF75 08
push
dword
ptr
ss
:[
ebp
+0x8]
007BE43E E8 7DE1FFFF
call
terminal.007BC5C0
007BE443 5F
pop
edi
; 0567D770
007BE444 5E
pop
esi
; 0567D770
007BE445 5B
pop
ebx
; 0567D770
007BE446 8BE5
mov
esp
,
ebp
007BE448 5D
pop
ebp
; 0567D770
007BE449 C2 1000
retn
0x10
断下后f8走下来,来动态分析这段程序,走到
007BE3DA /75 45 jnz short terminal.007BE421
改为
007BE3DA /EB 45 jmp short terminal.007BE421
F9

这种方法应该可以通杀上面那种加密方法及类似加密。
工具:52下的OD;
研究对象:一种mt4收费加密指标;
来源:网络
理由:和谐过程中的一点心得;
软件类型:MetaTrader;
操作系统:winxp
要达到目的:功能正常使用


[Asm] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
|
007EBCB7 8D4F 4C lea ecx , dword ptr ds :[ edi +0x4C]
007EBCBA 8945 14 mov dword ptr ss :[ ebp +0x14], eax
007EBCBD 8D51 01 lea edx , dword ptr ds :[ ecx +0x1]
007EBCC0 8A01 mov al , byte ptr ds :[ ecx ]
007EBCC2 41 inc ecx
007EBCC3 84C0 test al , al
007EBCC5 ^ 75 F9 jnz short terminal.007EBCC0
007EBCC7 8D86 64010000 lea eax , dword ptr ds :[ esi +0x164]
007EBCCD 2BCA sub ecx , edx
007EBCCF 50 push eax
007EBCD0 8D45 C0 lea eax , dword ptr ss :[ ebp -0x40]
007EBCD3 894D 0C mov dword ptr ss :[ ebp +0xC], ecx
007EBCD6 50 push eax
007EBCD7 FF15 0CCC9900 call dword ptr ds :[0x99CC0C] ; user32.CopyRect
007EBCDD 83BF 78020000 0> cmp dword ptr ds :[ edi +0x278],0x0
007EBCE4 74 09 je short terminal.007EBCEF
007EBCC0断下来,取消内存访问断点,上面程序计算字符个数。看一下堆栈调用
|


[Asm] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
007BE340 55 push ebp
007BE341 8BEC mov ebp , esp
007BE343 83E4 C0 and esp ,0xFFFFFFC0
007BE346 83EC 34 sub esp ,0x34
007BE349 837D 08 00 cmp dword ptr ss :[ ebp +0x8],0x0
007BE34D 53 push ebx
007BE34E 56 push esi
007BE34F 57 push edi
007BE350 8BF9 mov edi , ecx
007BE352 C74424 3C 00000000 mov dword ptr ss :[ esp +0x3C],0x0
007BE35A 0F84 E3000000 je terminal.007BE443
007BE360 8B5D 0C mov ebx , dword ptr ss :[ ebp +0xC]
007BE363 85DB test ebx , ebx
007BE365 0F84 D8000000 je terminal.007BE443
007BE36B 837B 04 00 cmp dword ptr ds :[ ebx +0x4],0x0
007BE36F 0F84 CE000000 je terminal.007BE443
007BE375 837B 08 01 cmp dword ptr ds :[ ebx +0x8],0x1
007BE379 0F8C C4000000 jl terminal.007BE443
007BE37F 8B07 mov eax , dword ptr ds :[ edi ] ; terminal.00A1E52C
007BE381 FF50 10 call dword ptr ds :[ eax +0x10]
007BE384 83F8 01 cmp eax ,0x1
007BE387 74 0A je short terminal.007BE393
007BE389 8B87 80060000 mov eax , dword ptr ds :[ edi +0x680]
007BE38F 894424 3C mov dword ptr ss :[ esp +0x3C], eax
007BE393 8BB7 F41E0000 mov esi , dword ptr ds :[ edi +0x1EF4]
007BE399 897424 38 mov dword ptr ss :[ esp +0x38], esi
007BE39D 33F6 xor esi , esi
007BE39F 397424 38 cmp dword ptr ss :[ esp +0x38], esi
007BE3A3 0F8E 84000000 jle terminal.007BE42D
007BE3A9 8B5C24 38 mov ebx , dword ptr ss :[ esp +0x38]
007BE3AD 0F1F ??? ; 未知命令
007BE3AF 0085 F678713B add byte ptr ss :[ ebp +0x3B7178F6], al
007BE3B5 B7 F4 mov bh ,0xF4
007BE3B7 1E push ds
007BE3B8 0000 add byte ptr ds :[ eax ], al
007BE3BA 7D 69 jge short terminal.007BE425
007BE3BC 8B9F EC1E0000 mov ebx , dword ptr ds :[ edi +0x1EEC]
007BE3C2 85DB test ebx , ebx
007BE3C4 74 5B je short terminal.007BE421
007BE3C6 8B1CB3 mov ebx , dword ptr ds :[ ebx + esi *4]
007BE3C9 85DB test ebx , ebx
007BE3CB 74 54 je short terminal.007BE421
007BE3CD 8B55 10 mov edx , dword ptr ss :[ ebp +0x10]
007BE3D0 8BCB mov ecx , ebx
007BE3D2 52 push edx
007BE3D3 E8 F8EAC6FF call terminal.0042CED0
007BE3D8 3BD0 cmp edx , eax
007BE3DA 75 45 jnz short terminal.007BE421
007BE3DC FFB7 DC1E0000 push dword ptr ds :[ edi +0x1EDC]
007BE3E2 8B03 mov eax , dword ptr ds :[ ebx ] ; terminal.00A23ED8
007BE3E4 FFB7 D81E0000 push dword ptr ds :[ edi +0x1ED8]
007BE3EA FF50 5C call dword ptr ds :[ eax +0x5C]
007BE3ED FF7424 3C push dword ptr ss :[ esp +0x3C]
007BE3F1 8B45 10 mov eax , dword ptr ss :[ ebp +0x10]
007BE3F4 8BCB mov ecx , ebx
007BE3F6 83EC 10 sub esp ,0x10
007BE3F9 8983 E8000000 mov dword ptr ds :[ ebx +0xE8], eax
007BE3FF 0F1087 A01E0000 movups xmm0 ,dqword ptr ds :[ edi +0x1EA0]
007BE406 8B03 mov eax , dword ptr ds :[ ebx ] ; terminal.00A23ED8
007BE408 0F110424 movups dqword ptr ss :[ esp ], xmm0
007BE40C FFB7 901E0000 push dword ptr ds :[ edi +0x1E90]
007BE412 FFB7 881E0000 push dword ptr ds :[ edi +0x1E88]
007BE418 FF75 0C push dword ptr ss :[ ebp +0xC]
007BE41B FF75 08 push dword ptr ss :[ ebp +0x8]
007BE41E FF50 40 call dword ptr ds :[ eax +0x40]
007BE421 8B5C24 38 mov ebx , dword ptr ss :[ esp +0x38]
007BE425 46 inc esi
007BE426 3BF3 cmp esi , ebx
007BE428 ^ 7C 86 jl short terminal.007BE3B0
007BE42A 8B5D 0C mov ebx , dword ptr ss :[ ebp +0xC]
007BE42D 8B45 14 mov eax , dword ptr ss :[ ebp +0x14]
007BE430 85C0 test eax , eax
007BE432 74 0F je short terminal.007BE443
007BE434 50 push eax
007BE435 FF75 10 push dword ptr ss :[ ebp +0x10]
007BE438 8BCF mov ecx , edi
007BE43A 53 push ebx
007BE43B FF75 08 push dword ptr ss :[ ebp +0x8]
007BE43E E8 7DE1FFFF call terminal.007BC5C0
007BE443 5F pop edi ; 0567D770
007BE444 5E pop esi ; 0567D770
007BE445 5B pop ebx ; 0567D770
007BE446 8BE5 mov esp , ebp
007BE448 5D pop ebp ; 0567D770
007BE449 C2 1000 retn 0x10
|
断下后f8走下来,来动态分析这段程序,走到
007BE3DA /75 45 jnz short terminal.007BE421
改为
007BE3DA /EB 45 jmp short terminal.007BE421
F9

版权所有:《Keep it hot》 => 《一种mt4收费加密指标的和谐方法》
本文地址:http://keephot.eu.org/?post=93
除非注明,文章均为 《Keep it hot》 原创,欢迎转载!转载请注明本文地址,谢谢。
发表评论: