今天刚拿到金盾2018SS加密的视频,界面如下:<ignore_js_op>
机器码由源来的“00000-00000-00000-00000”变成了一串32位的字符串了;
<ignore_js_op>
OD打开我们发现其实18SS的播放器仍然是有类似的机器码,只不过是三组数据构成,类似"0000-0000-0000"这样的格式;<ignore_js_op>
运行-->暂停-->返回到用户代码-->查找字符串
我们可以发现和之前的版本有类似的地方,大概的机器码生成的地方,就可能在这里;
[Asm] 纯文本查看 复制代码
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
和之前的方式一样,程序运行后就可以下这个断点,就可以正常地替换机器码吧,大概有十几次吧!
先分享到此,亲们去偿试试,希望多把你遇到的问题或者发现的解决地方法分享出来哦~
在下周我再来解答大家的问题
(保存一下)