首先添加一个全部为数据为了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 rd唄?预\蘛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进行反向跟踪了。