超时代9.25版本有密码提取分析

查看 116|回复 9
作者:bobo53051   
提要:------------------------------------------------------------------------------------
首先添加一个全部为数据为了0的文件,把文件结尾改成视频格式。然后加密就可以看到他的加密方式了。一共是3种加密,
首先会把前256个字节使用第3种加密方式加密,然后每次读取1024个字节进行加密。
分别为第1种加密16个字节,这个里面分别进行了2次查表异或加密和移位等操作。
第2种加密是240字节,和一个固定的字符串进行异或,类似与9.36的版本的加密。
第3种加密是256字节,从0个字节开始和0-255进行异或,进行3次加密,加在一起就是1024个字节。
结尾的时候会判断最后一次读取的字节如果小于16字节就不会进行加密。如果大于16字节小于240字节就会进行第一种加密,
然后剩余的不进行加密,如果大于256个字节就会进行使用第1种和第2种加密方式,剩余的不进行加密。以此类推。
9.25的解密开始地址为 F17F18


22222222222222222.png (64.9 KB, 下载次数: 0)
下载附件
1
2023-4-17 00:59 上传

由于9.25进行的附加保护,不像9.36可以直接附加。需要对进行先过保护才能附加。方法是论坛大佬提供的。
1.  od打开加密后的视频。
2.  对WaitForDebugEvent进行下段点。运行30-40多次其中运行,如果出现卡顿一下后继续运行3-5后。去到00401000.
修改代码如下,eip更新为00401000,运行完后就可以取消WaitForDebugEvent断点,把程序运行起来。在新打开一个OD进行附加player.dll
这个时候就可以附加上去了。
00401000,"pushad"
00401001,"pushfd"
00401002,"push 0x12FD54"                      这个值为程序启动后有一个player.dll的程序PID号
00401007,"call DebugActiveProcessStop"
0040100c,"popfd"
0040100d,"popad"
0040100e,"jmp WaitForDebugEvent"
把视频播放出来。对ReadFile进行下段,单步更下去。回来到player.dll领空,这个时候就要注意了。
64501B90    55              push ebp
64501B91    8BEC            mov ebp,esp
64501B93    57              push edi
64501B94    8BF8            mov edi,eax
64501B96    837F 0C 00      cmp dword ptr ds:[edi+0xC],0x0
64501B9A    0F84 E6000000   je libwzpla.64501C86
64501BA0    837F 10 00      cmp dword ptr ds:[edi+0x10],0x0
64501BA4    0F84 DC000000   je libwzpla.64501C86
64501BAA    837F 14 00      cmp dword ptr ds:[edi+0x14],0x0
64501BAE    56              push esi
64501BAF    8D77 14         lea esi,dword ptr ds:[edi+0x14]
64501BB2    0F84 CD000000   je libwzpla.64501C85
64501BB8    53              push ebx
64501BB9    BB 04000000     mov ebx,0x4
64501BBE    8BFF            mov edi,edi
64501BC0    8B07            mov eax,dword ptr ds:[edi]
64501BC2    8B0E            mov ecx,dword ptr ds:[esi]
64501BC4    50              push eax
64501BC5    6A 00           push 0x0
64501BC7    51              push ecx
64501BC8    E8 43766B00     call libwzpla.64BB9210
64501BCD    83C4 0C         add esp,0xC
64501BD0    83C6 04         add esi,0x4
64501BD3    4B              dec ebx
64501BD4  ^ 75 EA           jnz short libwzpla.64501BC0
64501BD6    8B17            mov edx,dword ptr ds:[edi]
64501BD8    03D2            add edx,edx
64501BDA    03D2            add edx,edx
64501BDC    33C0            xor eax,eax
64501BDE    85D2            test edx,edx
64501BE0    7E 22           jle short libwzpla.64501C04
64501BE2    8B75 08         mov esi,dword ptr ss:[ebp+0x8]
64501BE5    8A1C30          mov bl,byte ptr ds:[eax+esi]                         ; esi是保存这需要进行解密的16个字节
64501BE8    8BC8            mov ecx,eax
64501BEA    83E1 03         and ecx,0x3
64501BED    8B4C8F 14       mov ecx,dword ptr ds:[edi+ecx*4+0x14]                ; 这个会申请4个4字节地址
64501BF1    8BD0            mov edx,eax
64501BF3    C1FA 02         sar edx,0x2
64501BF6    881C0A          mov byte ptr ds:[edx+ecx],bl                         ; 这个里会对文件进行分开存储16个字
64501BF9    8B17            mov edx,dword ptr ds:[edi]                           ; 第一个地址存储1 5 9 13
64501BFB    03D2            add edx,edx                                          ; 第二个地址存储2 6 10 14
64501BFD    40              inc eax                                              ; 第三个地址存储3 7 11 15
64501BFE    03D2            add edx,edx                                          ; 第四个地址存储4 8 12 16
64501C00    3BC2            cmp eax,edx
64501C02  ^ 7C DE           jl short libwzpla.64501BE2
64501C04    8B4F 08         mov ecx,dword ptr ds:[edi+0x8]
64501C07    8BC7            mov eax,edi                                          ; 这里进行9次循环解密
64501C09    E8 72F4FFFF     call libwzpla.64501080                               ; 表1
64501C0E    8B77 08         mov esi,dword ptr ds:[edi+0x8]
64501C11    4E              dec esi
64501C12    5B              pop ebx
64501C13    83FE 01         cmp esi,0x1
64501C16    7C 22           jl short libwzpla.64501C3A
64501C18    8BCF            mov ecx,edi
64501C1A    E8 D1F5FFFF     call libwzpla.645011F0                               ; 移位
64501C1F    8BC7            mov eax,edi
64501C21    E8 4AF5FFFF     call libwzpla.64501170                               ; 表2
64501C26    8BCE            mov ecx,esi
64501C28    8BC7            mov eax,edi
64501C2A    E8 51F4FFFF     call libwzpla.64501080                               ; 表1
64501C2F    E8 0CF7FFFF     call libwzpla.64501340                               ; 表3
64501C34    4E              dec esi
64501C35    83FE 01         cmp esi,0x1
64501C38  ^ 7D DE           jge short libwzpla.64501C18
64501C3A    8BCF            mov ecx,edi
64501C3C    E8 AFF5FFFF     call libwzpla.645011F0                               ; 移位
64501C41    8BC7            mov eax,edi
64501C43    E8 28F5FFFF     call libwzpla.64501170                               ; 表2
64501C48    33C9            xor ecx,ecx
64501C4A    8BC7            mov eax,edi
64501C4C    E8 2FF4FFFF     call libwzpla.64501080                               ; 表1
64501C51    8B0F            mov ecx,dword ptr ds:[edi]
64501C53    03C9            add ecx,ecx
64501C55    03C9            add ecx,ecx
64501C57    33C0            xor eax,eax
64501C59    85C9            test ecx,ecx
64501C5B    7E 28           jle short libwzpla.64501C85
64501C5D    8D49 00         lea ecx,dword ptr ds:[ecx]
64501C60    8BD0            mov edx,eax
64501C62    83E2 03         and edx,0x3
64501C65    8B5497 14       mov edx,dword ptr ds:[edi+edx*4+0x14]
64501C69    8BC8            mov ecx,eax
64501C6B    C1F9 02         sar ecx,0x2
64501C6E    8A0C0A          mov cl,byte ptr ds:[edx+ecx]
64501C71    8B55 0C         mov edx,dword ptr ss:[ebp+0xC]
64501C74    80F1 0A         xor cl,0xA                                           ; 最后和A进行异或
64501C77    880C10          mov byte ptr ds:[eax+edx],cl
64501C7A    8B0F            mov ecx,dword ptr ds:[edi]                           ; 异或完后还要进行最后排序
64501C7C    03C9            add ecx,ecx
64501C7E    40              inc eax
64501C7F    03C9            add ecx,ecx
64501C81    3BC1            cmp eax,ecx
64501C83  ^ 7C DB           jl short libwzpla.64501C60
64501C85    5E              pop esi
64501C86    5F              pop edi
64501C87    5D              pop ebp
64501C88    C3              retn
表一:
64501080    8B50 10         mov edx,dword ptr ds:[eax+0x10]          ; eax地址保存这个程序的特定值生成的解密表  
                                                                        每个生成的视频都是随机的。无密码提取就需要追到这个表是怎么生成的。
64501083    56              push esi                                 ; eax保存的表首,一共是有11组 从下往上读取
64501084    8B70 14         mov esi,dword ptr ds:[eax+0x14]
64501087    03C9            add ecx,ecx
64501089    03C9            add ecx,ecx
6450108B    0FB6148A        movzx edx,byte ptr ds:[edx+ecx*4]
6450108F    3016            xor byte ptr ds:[esi],dl                 ; dl是解密表的最后一行的第一个值,esi是解密字节的第一个值
64501091    8B50 10         mov edx,dword ptr ds:[eax+0x10]
64501094    0FB6548A 04     movzx edx,byte ptr ds:[edx+ecx*4+0x4]
64501099    8B70 14         mov esi,dword ptr ds:[eax+0x14]
6450109C    3056 01         xor byte ptr ds:[esi+0x1],dl             ; dl是解密表的最后一行的第二个值,esi是解密字节的第二个值
6450109F    8B50 10         mov edx,dword ptr ds:[eax+0x10]
645010A2    0FB6548A 08     movzx edx,byte ptr ds:[edx+ecx*4+0x8]
645010A7    8B70 14         mov esi,dword ptr ds:[eax+0x14]
645010AA    3056 02         xor byte ptr ds:[esi+0x2],dl             ; dl是解密表的最后一行的第三个值,esi是解密字节的第三个值
645010AD    8B50 10         mov edx,dword ptr ds:[eax+0x10]
645010B0    0FB6548A 0C     movzx edx,byte ptr ds:[edx+ecx*4+0xC]
645010B5    8B70 14         mov esi,dword ptr ds:[eax+0x14]
645010B8    3056 03         xor byte ptr ds:[esi+0x3],dl             ; 以此类推
645010BB    8B50 10         mov edx,dword ptr ds:[eax+0x10]
645010BE    0FB6548A 01     movzx edx,byte ptr ds:[edx+ecx*4+0x1]
645010C3    8B70 18         mov esi,dword ptr ds:[eax+0x18]
645010C6    3016            xor byte ptr ds:[esi],dl
645010C8    8B50 10         mov edx,dword ptr ds:[eax+0x10]
645010CB    0FB6548A 05     movzx edx,byte ptr ds:[edx+ecx*4+0x5]
645010D0    8B70 18         mov esi,dword ptr ds:[eax+0x18]
645010D3    3056 01         xor byte ptr ds:[esi+0x1],dl
645010D6    8B50 10         mov edx,dword ptr ds:[eax+0x10]
645010D9    0FB6548A 09     movzx edx,byte ptr ds:[edx+ecx*4+0x9]
645010DE    8B70 18         mov esi,dword ptr ds:[eax+0x18]
645010E1    3056 02         xor byte ptr ds:[esi+0x2],dl
645010E4    8B50 10         mov edx,dword ptr ds:[eax+0x10]
645010E7    0FB6548A 0D     movzx edx,byte ptr ds:[edx+ecx*4+0xD]
645010EC    8B70 18         mov esi,dword ptr ds:[eax+0x18]
645010EF    3056 03         xor byte ptr ds:[esi+0x3],dl
645010F2    8B50 10         mov edx,dword ptr ds:[eax+0x10]
645010F5    0FB6548A 02     movzx edx,byte ptr ds:[edx+ecx*4+0x2]
645010FA    8B70 1C         mov esi,dword ptr ds:[eax+0x1C]
645010FD    3016            xor byte ptr ds:[esi],dl
645010FF    8B50 10         mov edx,dword ptr ds:[eax+0x10]
64501102    0FB6548A 06     movzx edx,byte ptr ds:[edx+ecx*4+0x6]
64501107    8B70 1C         mov esi,dword ptr ds:[eax+0x1C]
6450110A    3056 01         xor byte ptr ds:[esi+0x1],dl
6450110D    8B50 10         mov edx,dword ptr ds:[eax+0x10]
64501110    0FB6548A 0A     movzx edx,byte ptr ds:[edx+ecx*4+0xA]
64501115    8B70 1C         mov esi,dword ptr ds:[eax+0x1C]
64501118    3056 02         xor byte ptr ds:[esi+0x2],dl
6450111B    8B50 10         mov edx,dword ptr ds:[eax+0x10]
6450111E    0FB6548A 0E     movzx edx,byte ptr ds:[edx+ecx*4+0xE]
64501123    8B70 1C         mov esi,dword ptr ds:[eax+0x1C]
64501126    3056 03         xor byte ptr ds:[esi+0x3],dl
64501129    8B50 10         mov edx,dword ptr ds:[eax+0x10]
6450112C    0FB6548A 03     movzx edx,byte ptr ds:[edx+ecx*4+0x3]
64501131    8B70 20         mov esi,dword ptr ds:[eax+0x20]
64501134    3016            xor byte ptr ds:[esi],dl
64501136    8B50 10         mov edx,dword ptr ds:[eax+0x10]
64501139    0FB6548A 07     movzx edx,byte ptr ds:[edx+ecx*4+0x7]
6450113E    8B70 20         mov esi,dword ptr ds:[eax+0x20]
64501141    3056 01         xor byte ptr ds:[esi+0x1],dl
64501144    8B50 10         mov edx,dword ptr ds:[eax+0x10]
64501147    0FB6548A 0B     movzx edx,byte ptr ds:[edx+ecx*4+0xB]
6450114C    8B70 20         mov esi,dword ptr ds:[eax+0x20]
6450114F    3056 02         xor byte ptr ds:[esi+0x2],dl
64501152    8B50 20         mov edx,dword ptr ds:[eax+0x20]
64501155    8B40 10         mov eax,dword ptr ds:[eax+0x10]
64501158    8A4C88 0F       mov cl,byte ptr ds:[eax+ecx*4+0xF]
6450115C    304A 03         xor byte ptr ds:[edx+0x3],cl
6450115F    5E              pop esi
64501160    C3              retn
076A47F0  10 55 58 11 5F 51 04 52 16 40 04 55 57 12 21 39  UX_QR@UW!9
076A4800  D8 A8 4A 4A 87 F9 4E 18 91 B9 4A 4D C6 AB 6B 74  亘JJ圌N懝JM偏kt
076A4810  B8 D7 D8 FE 3F 2E 96 E6 AE 97 DC AB 68 3C B7 DF  缸佝?.栨畻塬h
移位: 这个是对16个字节进行移位操作,由于没有进行解密操作,只要知道这个call起到什么作用就可以了 。
表一 过后
dd 04AA7EA0  =CC FB DA F2
dd 04AA7ED0  = 44 A1 19 26
dd 04AA7EE0  = 1E 63 65 35
dd 04AA7FD0  = 03 9C B7 9E
------------------------
位移过后
dd 04AA7EA0  =CC FB DA F2    第一组不动
dd 04AA7ED0  = 26 44 A1 19     第2组往前移一位
dd 04AA7EE0  = 65 35 1E 63     第三组13对换 24对换
dd 04AA7FD0  = 9C B7 9E 03     第4组往后移一位
表2:这个call里面的解密表是固定。
[md]64501170    56              push esi                                             ; 表2
64501171    57              push edi
64501172    83C0 14         add eax,0x14
64501175    BE 04000000     mov esi,0x4
6450117A    8D9B 00000000   lea ebx,dword ptr ds:[ebx]
64501180    8B10            mov edx,dword ptr ds:[eax]
64501182    0FB60A          movzx ecx,byte ptr ds:[edx]                          ; 64e070e0就是解密表头
64501185    8BF9            mov edi,ecx
64501187    83E1 0F         and ecx,0xF                                          ; 把第一字节与F进行位与操作
6450118A    83E7 F0         and edi,0xFFFFFFF0                                   ; 把第一字节与-16进行位与操作
6450118D    0FB68C0F E070E0>movzx ecx,byte ptr ds:[edi+ecx+0x64E070E0]           ; 位与完成的值就是表的里面的位置
64501195    880A            mov byte ptr ds:[edx],cl                             ; 把查到的值赋予第一个字节
64501197    8B10            mov edx,dword ptr ds:[eax]
64501199    0FB64A 01       movzx ecx,byte ptr ds:[edx+0x1]                      ; 以此类推
6450119D    8BF9            mov edi,ecx
6450119F    83E1 0F         and ecx,0xF
645011A2    83E7 F0         and edi,0xFFFFFFF0
645011A5    0FB68C0F E070E0>movzx ecx,byte ptr ds:[edi+ecx+0x64E070E0]
645011AD    884A 01         mov byte ptr ds:[edx+0x1],cl
645011B0    8B10            mov edx,dword ptr ds:[eax]
645011B2    0FB64A 02       movzx ecx,byte ptr ds:[edx+0x2]
645011B6    8BF9            mov edi,ecx
645011B8    83E1 0F         and ecx,0xF
645011BB    83E7 F0         and edi,0xFFFFFFF0
645011BE    0FB68C0F E070E0>movzx ecx,byte ptr ds:[edi+ecx+0x64E070E0]
645011C6    884A 02         mov byte ptr ds:[edx+0x2],cl
645011C9    8B10            mov edx,dword ptr ds:[eax]
645011CB    0FB64A 03       movzx ecx,byte ptr ds:[edx+0x3]
645011CF    8BF9            mov edi,ecx
645011D1    83E7 F0         and edi,0xFFFFFFF0
645011D4    83E1 0F         and ecx,0xF
645011D7    0FB68C0F E070E0>movzx ecx,byte ptr ds:[edi+ecx+0x64E070E0]
645011DF    83C0 04         add eax,0x4
645011E2    4E              dec esi
645011E3    884A 03         mov byte ptr ds:[edx+0x3],cl
645011E6  ^ 75 98           jnz short libwzpla.64501180
645011E8    5F              pop edi
645011E9    5E              pop esi
645011EA    C3              retn
64E070E0  52 09 6A D5 30 36 A5 38 BF 40 A3 9E 81 F3 D7 FB  R.j?6?緻侒
64E070F0  7C E3 39 82 9B 2F FF 87 34 8E 43 44 C4 DE E9 CB  |?倹/??嶤D霓
64E07100  54 7B 94 32 A6 C2 23 3D EE 4C 95 0B 42 FA C3 4E  T{?β#=頛?
64E07110  08 2E A1 66 28 D9 24 B2 76 5B A2 49 6D 8B D1 25  .(?瞯[m
64E07120  72 F8 F6 64 86 68 98 16 D4 A4 5C CC 5D 65 B6 92  rd唄?预\蘛e
64E07130  6C 70 48 50 FD ED B9 DA 5E 15 46 57 A7 8D 9D 84  lpHP冠
64E07140  90 D8 AB 00 8C BC D3 0A F7 E4 58 05 B8 B3 45 06  愗?尲?麂X赋
64E07150  D0 2C 1E 8F CA 3F 0F 02 C1 AF BD 03 01 13 8A 6B  ?徥?怜?
64E07160  3A 91 11 41 4F 67 DC EA 97 F2 CF CE F0 B4 E6 73  :?AOg荜楎衔
64E07170  96 AC 74 22 E7 AD 35 85 E2 F9 37 E8 1C 75 DF 6E  柆t"绛5呪??u
64E07180  47 F1 1A 71 1D 29 C5 89 6F B7 62 0E AA 18 BE 1B  G?q)艍o穊??
64E07190  FC 56 3E 4B C6 D2 79 20 9A DB C0 FE 78 CD 5A F4  黇>K埔y 氎俐
64E071A0  1F DD A8 33 88 07 C7 31 B1 12 10 59 27 80 EC 5F  莰3???Y'?靇
64E071B0  60 51 7F A9 19 B5 4A 0D 2D E5 7A 9F 93 C9 9C EF  `Q?礘.-鍅煋
64E071C0  A0 E0 3B 4D AE 2A F5 B0 C8 EB BB 3C 83 53 99 61  犩;M?醢入?僑
64E071D0  17 2B 04 7E BA 77 D6 26 E1 69 14 63 55 21 0C 7D  +~簑?醝
表3:这里面没有表需要自己进行分析。
64501340    55              push ebp                                             ; 表3
64501341    8BEC            mov ebp,esp
64501343    83EC 1C         sub esp,0x1C
64501346    A1 480CE264     mov eax,dword ptr ds:[0x64E20C48]
6450134B    33C5            xor eax,ebp
6450134D    8945 FC         mov dword ptr ss:[ebp-0x4],eax
64501350    53              push ebx
64501351    56              push esi
64501352    8B47 14         mov eax,dword ptr ds:[edi+0x14]
64501355    0FB608          movzx ecx,byte ptr ds:[eax]
64501358    0FB650 01       movzx edx,byte ptr ds:[eax+0x1]
6450135C    884D EC         mov byte ptr ss:[ebp-0x14],cl                        ; 把一个字节给ebp--14
6450135F    0FB648 02       movzx ecx,byte ptr ds:[eax+0x2]
64501363    8855 ED         mov byte ptr ss:[ebp-0x13],dl                        ; 以此类推
64501366    0FB650 03       movzx edx,byte ptr ds:[eax+0x3]
6450136A    8B47 18         mov eax,dword ptr ds:[edi+0x18]
6450136D    884D EE         mov byte ptr ss:[ebp-0x12],cl
64501370    0FB608          movzx ecx,byte ptr ds:[eax]
64501373    8855 EF         mov byte ptr ss:[ebp-0x11],dl
64501376    0FB650 01       movzx edx,byte ptr ds:[eax+0x1]
6450137A    884D F0         mov byte ptr ss:[ebp-0x10],cl
6450137D    0FB648 02       movzx ecx,byte ptr ds:[eax+0x2]
64501381    8855 F1         mov byte ptr ss:[ebp-0xF],dl
64501384    0FB650 03       movzx edx,byte ptr ds:[eax+0x3]
64501388    8B47 1C         mov eax,dword ptr ds:[edi+0x1C]
6450138B    884D F2         mov byte ptr ss:[ebp-0xE],cl
6450138E    0FB608          movzx ecx,byte ptr ds:[eax]
64501391    8855 F3         mov byte ptr ss:[ebp-0xD],dl
64501394    0FB650 01       movzx edx,byte ptr ds:[eax+0x1]
64501398    884D F4         mov byte ptr ss:[ebp-0xC],cl
6450139B    0FB648 02       movzx ecx,byte ptr ds:[eax+0x2]
6450139F    8855 F5         mov byte ptr ss:[ebp-0xB],dl
645013A2    0FB650 03       movzx edx,byte ptr ds:[eax+0x3]
645013A6    8B47 20         mov eax,dword ptr ds:[edi+0x20]
645013A9    884D F6         mov byte ptr ss:[ebp-0xA],cl
645013AC    0FB608          movzx ecx,byte ptr ds:[eax]
645013AF    8855 F7         mov byte ptr ss:[ebp-0x9],dl
645013B2    0FB650 01       movzx edx,byte ptr ds:[eax+0x1]
645013B6    884D F8         mov byte ptr ss:[ebp-0x8],cl
645013B9    0FB648 02       movzx ecx,byte ptr ds:[eax+0x2]
645013BD    8855 F9         mov byte ptr ss:[ebp-0x7],dl
645013C0    0FB650 03       movzx edx,byte ptr ds:[eax+0x3]
645013C4    884D FA         mov byte ptr ss:[ebp-0x6],cl
645013C7    8855 FB         mov byte ptr ss:[ebp-0x5],dl                         ; 把16字节给ebp-5
645013CA    33F6            xor esi,esi
645013CC    8D6424 00       lea esp,dword ptr ss:[esp]
645013D0    8A5435 EC       mov dl,byte ptr ss:[ebp+esi-0x14]                    ; 开始
645013D4    8ACA            mov cl,dl
645013D6    02C9            add cl,cl
645013D8    8AC1            mov al,cl
645013DA    80FA 80         cmp dl,0x80
645013DD    72 02           jb short libwzpla.645013E1
645013DF    34 1B           xor al,0x1B
645013E1    3C 80           cmp al,0x80
645013E3    73 04           jnb short libwzpla.645013E9
645013E5    02C0            add al,al
645013E7    EB 04           jmp short libwzpla.645013ED
645013E9    02C0            add al,al
645013EB    34 1B           xor al,0x1B
645013ED    3C 80           cmp al,0x80
645013EF    73 04           jnb short libwzpla.645013F5
645013F1    02C0            add al,al
645013F3    EB 04           jmp short libwzpla.645013F9
645013F5    02C0            add al,al
645013F7    34 1B           xor al,0x1B
645013F9    8845 E9         mov byte ptr ss:[ebp-0x17],al                        ; al为经过异或的值给了这个变量
645013FC    8AC1            mov al,cl                                            ; 一共有5变量分别为ebp-15 -16 -17 -18 -19
645013FE    80FA 80         cmp dl,0x80
64501401    72 02           jb short libwzpla.64501405
64501403    34 1B           xor al,0x1B
64501405    3C 80           cmp al,0x80
64501407    73 04           jnb short libwzpla.6450140D
64501409    02C0            add al,al
6450140B    EB 04           jmp short libwzpla.64501411
6450140D    02C0            add al,al
6450140F    34 1B           xor al,0x1B
64501411    8845 EA         mov byte ptr ss:[ebp-0x16],al
64501414    80FA 80         cmp dl,0x80
64501417    72 03           jb short libwzpla.6450141C
64501419    80F1 1B         xor cl,0x1B
6450141C    884D EB         mov byte ptr ss:[ebp-0x15],cl
6450141F    8A4C35 F0       mov cl,byte ptr ss:[ebp+esi-0x10]
64501423    8AD1            mov dl,cl
64501425    02D2            add dl,dl
64501427    8AC2            mov al,dl
64501429    80F9 80         cmp cl,0x80
6450142C    72 02           jb short libwzpla.64501430
6450142E    34 1B           xor al,0x1B
64501430    3C 80           cmp al,0x80
64501432    73 04           jnb short libwzpla.64501438
64501434    02C0            add al,al
64501436    EB 04           jmp short libwzpla.6450143C
64501438    02C0            add al,al
6450143A    34 1B           xor al,0x1B
6450143C    3C 80           cmp al,0x80
6450143E    73 04           jnb short libwzpla.64501444
64501440    02C0            add al,al
64501442    EB 04           jmp short libwzpla.64501448
64501444    02C0            add al,al
64501446    34 1B           xor al,0x1B
64501448    8845 E7         mov byte ptr ss:[ebp-0x19],al
6450144B    80F9 80         cmp cl,0x80
6450144E    72 03           jb short libwzpla.64501453
64501450    80F2 1B         xor dl,0x1B
64501453    8855 E8         mov byte ptr ss:[ebp-0x18],dl
64501456    8A5435 F4       mov dl,byte ptr ss:[ebp+esi-0xC]
6450145A    80FA 80         cmp dl,0x80
6450145D    73 06           jnb short libwzpla.64501465
6450145F    02D2            add dl,dl
64501461    8AC2            mov al,dl
64501463    EB 06           jmp short libwzpla.6450146B
64501465    02D2            add dl,dl
64501467    8AC2            mov al,dl
64501469    34 1B           xor al,0x1B
6450146B    3C 80           cmp al,0x80
6450146D    73 04           jnb short libwzpla.64501473
6450146F    02C0            add al,al
64501471    EB 04           jmp short libwzpla.64501477
64501473    02C0            add al,al
64501475    34 1B           xor al,0x1B
64501477    3C 80           cmp al,0x80
64501479    73 04           jnb short libwzpla.6450147F
6450147B    02C0            add al,al
6450147D    EB 04           jmp short libwzpla.64501483
6450147F    02C0            add al,al
64501481    34 1B           xor al,0x1B
64501483    807C35 F4 80    cmp byte ptr ss:[ebp+esi-0xC],0x80
64501488    8AD8            mov bl,al
6450148A    8AC2            mov al,dl
6450148C    72 02           jb short libwzpla.64501490
6450148E    34 1B           xor al,0x1B
64501490    3C 80           cmp al,0x80
64501492    73 04           jnb short libwzpla.64501498
64501494    02C0            add al,al
64501496    EB 04           jmp short libwzpla.6450149C
64501498    02C0            add al,al
6450149A    34 1B           xor al,0x1B
6450149C    8A4C35 F8       mov cl,byte ptr ss:[ebp+esi-0x8]
645014A0    8AD0            mov dl,al
645014A2    8AC1            mov al,cl
645014A4    02C0            add al,al
645014A6    80F9 80         cmp cl,0x80
645014A9    72 02           jb short libwzpla.645014AD
645014AB    34 1B           xor al,0x1B
645014AD    3C 80           cmp al,0x80
645014AF    73 04           jnb short libwzpla.645014B5
645014B1    02C0            add al,al
645014B3    EB 04           jmp short libwzpla.645014B9
645014B5    02C0            add al,al
645014B7    34 1B           xor al,0x1B
645014B9    3C 80           cmp al,0x80
645014BB    73 04           jnb short libwzpla.645014C1
645014BD    02C0            add al,al
645014BF    EB 04           jmp short libwzpla.645014C5
645014C1    02C0            add al,al
645014C3    34 1B           xor al,0x1B
645014C5    32C1            xor al,cl
645014C7    32C2            xor al,dl
645014C9    8B4F 14         mov ecx,dword ptr ds:[edi+0x14]
645014CC    32C3            xor al,bl
645014CE    324435 F4       xor al,byte ptr ss:[ebp+esi-0xC]
645014D2    3245 E8         xor al,byte ptr ss:[ebp-0x18]
645014D5    3245 E7         xor al,byte ptr ss:[ebp-0x19]
645014D8    324435 F0       xor al,byte ptr ss:[ebp+esi-0x10]
645014DC    3245 EB         xor al,byte ptr ss:[ebp-0x15]
645014DF    3245 EA         xor al,byte ptr ss:[ebp-0x16]
645014E2    3245 E9         xor al,byte ptr ss:[ebp-0x17]
645014E5    88040E          mov byte ptr ds:[esi+ecx],al                         ; 此处为第一个异或完成的值
645014E8    8A4435 EC       mov al,byte ptr ss:[ebp+esi-0x14]
645014EC    02C0            add al,al
645014EE    807C35 EC 80    cmp byte ptr ss:[ebp+esi-0x14],0x80


1111.png (261.19 KB, 下载次数: 0)
下载附件
2
2023-4-17 00:56 上传

9.25的其他2个加密方式很容易解密,就这个麻烦一些。如果需要无密码提取的话就需要对表1进行反向跟踪了。

字节, 第一个

twl288   

你好,本人小白,请问这个是做什么用的?
jyjjf   


twl288 发表于 2023-4-17 11:02
你好,本人小白,请问这个是做什么用的?

分析视频加密软件的原理
pizazzboy   

原理出来了,怎么破?
wasm2023   

楼主,金盾2023啥时候分析一波呦
twl288   

大黄蜂加密视频可以破没?
lingweiqiu   

很厉害。
zjh889   

大师这东西,好破解的吗!~
zwc123xyz   

大神厉害,学习了,谢谢分享!
zerofire   

感谢分享~~学习了~
您需要登录后才可以回帖 登录 | 立即注册

返回顶部