一种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



这种方法应该可以通杀上面那种加密方法及类似加密。

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

发表评论:

Free Web Hosting