今天刚拿到金盾2018SS加密的视频,界面如下:<ignore_js_op>
机器码由源来的“00000-00000-00000-00000”变成了一串32位的字符串了;
<ignore_js_op>
OD打开我们发现其实18SS的播放器仍然是有类似的机器码,只不过是三组数据构成,类似"0000-0000-0000"这样的格式;<ignore_js_op>
运行-->暂停-->返回到用户代码-->查找字符串
我们可以发现和之前的版本有类似的地方,大概的机器码生成的地方,就可能在这里;
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
|
0089B808 . 55
push
ebp
0089B809 . 8BEC
mov
ebp
,
esp
0089B80B . 83C4 F0
add
esp
,-0x10
0089B80E . 53
push
ebx
0089B80F . 56
push
esi
0089B810 . 57
push
edi
0089B811 . 33C9
xor
ecx
,
ecx
0089B813 . 894D FC
mov
dword
ptr
ss
:[
ebp
-0x4],
ecx
0089B816 . 8945 F8
mov
dword
ptr
ss
:[
ebp
-0x8],
eax
0089B819 . 33C0
xor
eax
,
eax
0089B81B . 55
push
ebp
0089B81C . 68 59BA8900
push
金盾18SS.0089BA59
0089B821 . 64:FF30
push
dword
ptr
fs
:[
eax
]
0089B824 . 64:8920
mov
dword
ptr
fs
:[
eax
],
esp
0089B827 . A1 B0128F00
mov
eax
,
dword
ptr
ds
:[0x8F12B0]
0089B82C . 8B80 64020000
mov
eax
,
dword
ptr
ds
:[
eax
+0x264]
0089B832 . B2 01
mov
dl
,0x1
0089B834 . 8B08
mov
ecx
,
dword
ptr
ds
:[
eax
]
0089B836 . FF91 E8000000
call
dword
ptr
ds
:[
ecx
+0xE8]
0089B83C . 33C0
xor
eax
,
eax
0089B83E . 55
push
ebp
0089B83F . 68 5EB88900
push
金盾18SS.0089B85E
0089B844 . 64:FF30
push
dword
ptr
fs
:[
eax
]
0089B847 . 64:8920
mov
dword
ptr
fs
:[
eax
],
esp
0089B84A . E8 39E0F7FF
call
金盾18SS.00819888
0089B84F . 8B10
mov
edx
,
dword
ptr
ds
:[
eax
]
0089B851 . FF52 14
call
dword
ptr
ds
:[
edx
+0x14]
0089B854 . 33C0
xor
eax
,
eax
0089B856 . 5A
pop
edx
0089B857 . 59
pop
ecx
0089B858 . 59
pop
ecx
0089B859 . 64:8910
mov
dword
ptr
fs
:[
eax
],
edx
0089B85C . EB 0A
jmp
short
金盾18SS.0089B868
0089B85E .^ E9 FDDDB6FF
jmp
金盾18SS.00409660
0089B863 . E8 50E2B6FF
call
金盾18SS.00409AB8
0089B868 > A1 EC5D8D00
mov
eax
,
dword
ptr
ds
:[0x8D5DEC]
0089B86D . 8338 00
cmp
dword
ptr
ds
:[
eax
],0x0
0089B870 . 0F84 01010000
je
金盾18SS.0089B977
0089B876 . 8B0D EC5D8D00
mov
ecx
,
dword
ptr
ds
:[0x8D5DEC]
; 金盾18SS.008F1C4C
0089B87C . 8B09
mov
ecx
,
dword
ptr
ds
:[
ecx
]
0089B87E . 8D45 FC
lea
eax
,
dword
ptr
ss
:[
ebp
-0x4]
0089B881 . BA 74BA8900
mov
edx
,金盾18SS.0089BA74
; c:\drmsoft\face
0089B886 . E8 71FBB6FF
call
金盾18SS.0040B3FC
0089B88B . B2 01
mov
dl
,0x1
0089B88D . 8B45 FC
mov
eax
,
dword
ptr
ss
:[
ebp
-0x4]
0089B890 . E8 B3AEB8FF
call
金盾18SS.00426748
0089B895 . 84C0
test
al
,
al
0089B897 . 74 08
je
short
金盾18SS.0089B8A1
0089B899 . 8B45 FC
mov
eax
,
dword
ptr
ss
:[
ebp
-0x4]
0089B89C . E8 33B3B8FF
call
金盾18SS.00426BD4
0089B8A1 > 33D2
xor
edx
,
edx
0089B8A3 . 55
push
ebp
0089B8A4 . 68 70B98900
push
金盾18SS.0089B970
0089B8A9 . 64:FF32
push
dword
ptr
fs
:[
edx
]
0089B8AC . 64:8922
mov
dword
ptr
fs
:[
edx
],
esp
0089B8AF . 8B45 FC
mov
eax
,
dword
ptr
ss
:[
ebp
-0x4]
0089B8B2 . E8 FDAAB8FF
call
金盾18SS.004263B4
0089B8B7 . 50
push
eax
0089B8B8 . E8 3B8EB7FF
call
金盾18SS.004146F8
0089B8BD . 6A 01
push
0x1
0089B8BF . 8B4D FC
mov
ecx
,
dword
ptr
ss
:[
ebp
-0x4]
0089B8C2 . B2 01
mov
dl
,0x1
0089B8C4 . A1 AC444400
mov
eax
,
dword
ptr
ds
:[0x4444AC]
; 8FF
0089B8C9 . E8 A696BCFF
call
金盾18SS.00464F74
0089B8CE . 8BD8
mov
ebx
,
eax
0089B8D0 . 6A 40
push
0x40
0089B8D2 . 8B0D A8608D00
mov
ecx
,
dword
ptr
ds
:[0x8D60A8]
; 金盾18SS.008F1AB0
0089B8D8 . 8B09
mov
ecx
,
dword
ptr
ds
:[
ecx
]
0089B8DA . B2 01
mov
dl
,0x1
0089B8DC . A1 AC444400
mov
eax
,
dword
ptr
ds
:[0x4444AC]
; 8FF
0089B8E1 . E8 8E96BCFF
call
金盾18SS.00464F74
0089B8E6 . 8945 F4
mov
dword
ptr
ss
:[
ebp
-0xC],
eax
0089B8E9 . 8B15 7C558D00
mov
edx
,
dword
ptr
ds
:[0x8D557C]
; 金盾18SS.008F1C58
0089B8EF . 8B12
mov
edx
,
dword
ptr
ds
:[
edx
]
0089B8F1 . F7DA
neg
edx
0089B8F3 . 66:B9 0200
mov
cx
,0x2
0089B8F7 . 8B45 F4
mov
eax
,
dword
ptr
ss
:[
ebp
-0xC]
0089B8FA . 8B30
mov
esi
,
dword
ptr
ds
:[
eax
]
0089B8FC . FF56 1C
call
dword
ptr
ds
:[
esi
+0x1C]
0089B8FF . 8D55 F0
lea
edx
,
dword
ptr
ss
:[
ebp
-0x10]
0089B902 . B9 04000000
mov
ecx
,0x4
0089B907 . 8B45 F4
mov
eax
,
dword
ptr
ss
:[
ebp
-0xC]
0089B90A . E8 7590BCFF
call
金盾18SS.00464984
0089B90F . 8B15 7C558D00
mov
edx
,
dword
ptr
ds
:[0x8D557C]
; 金盾18SS.008F1C58
0089B915 . 8B12
mov
edx
,
dword
ptr
ds
:[
edx
]
0089B917 . 0355 F0
add
edx
,
dword
ptr
ss
:[
ebp
-0x10]
0089B91A . F7DA
neg
edx
0089B91C . 66:B9 0200
mov
cx
,0x2
0089B920 . 8B45 F4
mov
eax
,
dword
ptr
ss
:[
ebp
-0xC]
0089B923 . 8B30
mov
esi
,
dword
ptr
ds
:[
eax
]
0089B925 . FF56 1C
call
dword
ptr
ds
:[
esi
+0x1C]
0089B928 . 8B45 F0
mov
eax
,
dword
ptr
ss
:[
ebp
-0x10]
0089B92B . 99
cdq
0089B92C . 52
push
edx
0089B92D . 50
push
eax
0089B92E . 8B55 F4
mov
edx
,
dword
ptr
ss
:[
ebp
-0xC]
0089B931 . 8BC3
mov
eax
,
ebx
0089B933 . E8 EC92BCFF
call
金盾18SS.00464C24
0089B938 . 8BC3
mov
eax
,
ebx
0089B93A . E8 B5CDB6FF
call
金盾18SS.004086F4
0089B93F . 6A 00
push
0x0
0089B941 . A1 B0128F00
mov
eax
,
dword
ptr
ds
:[0x8F12B0]
0089B946 . 8B80 6C020000
mov
eax
,
dword
ptr
ds
:[
eax
+0x26C]
0089B94C . 8B80 60030000
mov
eax
,
dword
ptr
ds
:[
eax
+0x360]
0089B952 . 8B55 FC
mov
edx
,
dword
ptr
ss
:[
ebp
-0x4]
0089B955 . E8 967AE2FF
call
金盾18SS.006C33F0
0089B95A . 33C0
xor
eax
,
eax
0089B95C . 5A
pop
edx
0089B95D . 59
pop
ecx
0089B95E . 59
pop
ecx
0089B95F . 64:8910
mov
dword
ptr
fs
:[
eax
],
edx
0089B962 . 68 77B98900
push
金盾18SS.0089B977
0089B967 > 8B45 F4
mov
eax
,
dword
ptr
ss
:[
ebp
-0xC]
0089B96A . E8 85CDB6FF
call
金盾18SS.004086F4
0089B96F . C3
retn
0089B970 .^ E9 9FDFB6FF
jmp
金盾18SS.00409914
0089B975 .^ EB F0
jmp
short
金盾18SS.0089B967
0089B977 > 8B15 1C5D8D00
mov
edx
,
dword
ptr
ds
:[0x8D5D1C]
; 金盾18SS.008F1B48
0089B97D . 8B12
mov
edx
,
dword
ptr
ds
:[
edx
]
0089B97F . A1 B0128F00
mov
eax
,
dword
ptr
ds
:[0x8F12B0]
0089B984 . E8 5BC1E5FF
call
金盾18SS.006F7AE4
0089B989 . 8B15 685A8D00
mov
edx
,
dword
ptr
ds
:[0x8D5A68]
; 金盾18SS.008F1AD8
0089B98F . 8B12
mov
edx
,
dword
ptr
ds
:[
edx
]
0089B991 . A1 B0128F00
mov
eax
,
dword
ptr
ds
:[0x8F12B0]
0089B996 . 8B80 54020000
mov
eax
,
dword
ptr
ds
:[
eax
+0x254]
0089B99C . 8B08
mov
ecx
,
dword
ptr
ds
:[
eax
]
0089B99E . FF91 C0020000
call
dword
ptr
ds
:[
ecx
+0x2C0]
0089B9A4 . 8B15 A44E8D00
mov
edx
,
dword
ptr
ds
:[0x8D4EA4]
; 金盾18SS.008F1B60
0089B9AA . 8B12
mov
edx
,
dword
ptr
ds
:[
edx
]
0089B9AC . 8B45 F8
mov
eax
,
dword
ptr
ss
:[
ebp
-0x8]
0089B9AF . 8B80 64020000
mov
eax
,
dword
ptr
ds
:[
eax
+0x264]
0089B9B5 . 8B08
mov
ecx
,
dword
ptr
ds
:[
eax
]
0089B9B7 . FF91 70020000
call
dword
ptr
ds
:[
ecx
+0x270]
0089B9BD . 8B15 445C8D00
mov
edx
,
dword
ptr
ds
:[0x8D5C44]
; 金盾18SS.008F1B5C
0089B9C3 . 8B12
mov
edx
,
dword
ptr
ds
:[
edx
]
0089B9C5 . 8B45 F8
mov
eax
,
dword
ptr
ss
:[
ebp
-0x8]
0089B9C8 . 8B80 5C020000
mov
eax
,
dword
ptr
ds
:[
eax
+0x25C]
0089B9CE . 8B08
mov
ecx
,
dword
ptr
ds
:[
eax
]
0089B9D0 . FF91 70020000
call
dword
ptr
ds
:[
ecx
+0x270]
0089B9D6 . 8B45 F8
mov
eax
,
dword
ptr
ss
:[
ebp
-0x8]
0089B9D9 . 8B80 60020000
mov
eax
,
dword
ptr
ds
:[
eax
+0x260]
0089B9DF . 33D2
xor
edx
,
edx
0089B9E1 . 8B08
mov
ecx
,
dword
ptr
ds
:[
eax
]
0089B9E3 . FF91 7C020000
call
dword
ptr
ds
:[
ecx
+0x27C]
0089B9E9 . 8B15 CC5D8D00
mov
edx
,
dword
ptr
ds
:[0x8D5DCC]
; 金盾18SS.008F1B50
0089B9EF . 8B12
mov
edx
,
dword
ptr
ds
:[
edx
]
0089B9F1 . A1 B0128F00
mov
eax
,
dword
ptr
ds
:[0x8F12B0]
0089B9F6 . 8B80 70020000
mov
eax
,
dword
ptr
ds
:[
eax
+0x270]
0089B9FC . 8B08
mov
ecx
,
dword
ptr
ds
:[
eax
]
0089B9FE . FF91 70020000
call
dword
ptr
ds
:[
ecx
+0x270]
0089BA04 . A1 744F8D00
mov
eax
,
dword
ptr
ds
:[0x8D4F74]
0089BA09 . 8B00
mov
eax
,
dword
ptr
ds
:[
eax
]
0089BA0B . BA A0BA8900
mov
edx
,金盾18SS.0089BAA0
; 1
0089BA10 . E8 1FFBB6FF
call
金盾18SS.0040B534
0089BA15 . 75 17
jnz
short
金盾18SS.0089BA2E
0089BA17 . A1 B0128F00
mov
eax
,
dword
ptr
ds
:[0x8F12B0]
0089BA1C . 8B80 70020000
mov
eax
,
dword
ptr
ds
:[
eax
+0x270]
0089BA22 . B2 01
mov
dl
,0x1
0089BA24 . 8B08
mov
ecx
,
dword
ptr
ds
:[
eax
]
0089BA26 . FF91 EC000000
call
dword
ptr
ds
:[
ecx
+0xEC]
0089BA2C . EB 15
jmp
short
金盾18SS.0089BA43
0089BA2E > A1 B0128F00
mov
eax
,
dword
ptr
ds
:[0x8F12B0]
0089BA33 . 8B80 70020000
mov
eax
,
dword
ptr
ds
:[
eax
+0x270]
0089BA39 . 33D2
xor
edx
,
edx
0089BA3B . 8B08
mov
ecx
,
dword
ptr
ds
:[
eax
]
0089BA3D . FF91 EC000000
call
dword
ptr
ds
:[
ecx
+0xEC]
0089BA43 > 33C0
xor
eax
,
eax
0089BA45 . 5A
pop
edx
0089BA46 . 59
pop
ecx
0089BA47 . 59
pop
ecx
0089BA48 . 64:8910
mov
dword
ptr
fs
:[
eax
],
edx
0089BA4B . 68 60BA8900
push
金盾18SS.0089BA60
0089BA50 > 8D45 FC
lea
eax
,
dword
ptr
ss
:[
ebp
-0x4]
0089BA53 . E8 D0E8B6FF
call
金盾18SS.0040A328
0089BA58 . C3
retn
0089BA59 .^ E9 B6DEB6FF
jmp
金盾18SS.00409914
0089BA5E .^ EB F0
jmp
short
金盾18SS.0089BA50
0089BA60 . 5F
pop
edi
0089BA61 . 5E
pop
esi
0089BA62 . 5B
pop
ebx
0089BA63 . 8BE5
mov
esp
,
ebp
0089BA65 . 5D
pop
ebp
0089BA66 . C3
retn
|
从这里我们F8单步分析<ignore_js_op>
从上面分析跟踪后发现,在0089CD17下断然后F8跟下来,可以发现机器码生成了并可以替换
<ignore_js_op>
替换两次运行后程序的机器码改变了,这说明加密视频打开后的机器码成功替换,接下来就是输入正确的播放密码并且再次验证机器码
所以我们必须还要找到播放后验证机器码的地方。
这么久才更新,在此表示抱歉,一来临近春节,各方面的工作比较紧张;二来,也希望吾爱的朋友们一起分析,发表自己的成果,可是这么久
都没有人分享一点,那还是由来我继续写下去吧。
更新时间:2015-02-04
上次我们分析到加密视频打开后替换机器码,接下来就是输入正确的播放密码后,程序再次验证机器码的问题。
经过分析得到了一个关键的地方,在这里就直接放出来吧,这个CALL只是个启示,中间会出现一个问题,将在
下次的分析中给出答案。
断点:0089C940
和之前的方式一样,程序运行后就可以下这个断点,就可以正常地替换机器码吧,大概有十几次吧!
先分享到此,亲们去偿试试,希望多把你遇到的问题或者发现的解决地方法分享出来哦~
在下周我再来解答大家的问题
(保存一下)