2014-5-11 21:35 /
之前的那个说错了,那个是FileName的hash【找文件用的
这个才是文件解密的函数。
最后的程序我懒得写了,主要是Xortable的长度是4096*8Bit...【SB啊
然后我一时间没想出挖这个Table的简易方法,于是我就暂时搁置了233
【目前是用String来计算的orz
[7D8100]初始化为0,记录上一个xor的BYTE,然后再错项求xor生成真正的key。
至于开头的“mdf\0”这个Signature实际上没看看见在哪里用过,之后也应该有一个未知的DWORD=。=


005ED9AC  /$ 53             PUSH EBX
005ED9AD  |. 56             PUSH ESI
005ED9AE  |. 57             PUSH EDI
005ED9AF  |. 55             PUSH EBP
005ED9B0  |. BE 8CFA7000    MOV ESI,cloverda.0070FA8C                ;  FilePointer
005ED9B5  |. 8BF8           MOV EDI,EAX          ;
005ED9B7  |. 33C9           XOR ECX,ECX          ;ECX = 0,dwPos = 0
005ED9B9  |. 8BC7           MOV EAX,EDI          ;iPos2 = EDI
005ED9BB  |. 3BD1           CMP EDX,ECX
005ED9BD  |. 7E 24          JLE SHORT cloverda.005ED9E3
005ED9BF  |> 8A18           /MOV BL,BYTE PTR DS:[EAX]             ;char *temp = iPos2 //XOR Table,Key1
005ED9C1  |. 301D 00817D00  |XOR BYTE PTR DS:[7D8100],BL          ;char temp2 ^= *(temp+iPos2)   //temp2不变化的,Key2
005ED9C7  |. 8A1D 00817D00  |MOV BL,BYTE PTR DS:[7D8100]          ;temp = temp2
005ED9CD  |. 8B2E           |MOV EBP,DWORD PTR DS:[ESI]           ;DWORD dwPos = DS:[ESI]
005ED9CF  |. 309D 006F7D00  |XOR BYTE PTR SS:[EBP+7D6F00],BL      ;*(pFile+dwPos) ^= temp;
005ED9D5  |. FF06           |INC DWORD PTR DS:[ESI]               ;iPos ++
005ED9D7  |. 8126 FF0F0000  |AND DWORD PTR DS:[ESI],0FFF          ;iPos %= 0xFFF  //4096*8Bit...F**K
005ED9DD  |. 41             |INC ECX                              ;dwPos++
005ED9DE  |. 40             |INC EAX                              ;iPos2++
005ED9DF  |. 3BD1           |CMP EDX,ECX                          ;EDX = FileSize, while(dwPos < FileSize)
005ED9E1  |.^7F DC          \JG SHORT cloverda.005ED9BF            
005ED9E3  |> 33C0           XOR EAX,EAX
005ED9E5  |. 8A07           MOV AL,BYTE PTR DS:[EDI]
005ED9E7  |. 83E0 01        AND EAX,1
005ED9EA  |. 0106           ADD DWORD PTR DS:[ESI],EAX
005ED9EC  |. 8126 FF0F0000  AND DWORD PTR DS:[ESI],0FFF
005ED9F2  |. 5D             POP EBP
005ED9F3  |. 5F             POP EDI
005ED9F4  |. 5E             POP ESI
005ED9F5  |. 5B             POP EBX
005ED9F6  \. C3             RETN


题外话,这里为什么会出现adobe啊233

0065D224  /$ 55             PUSH EBP
0065D225  |. 8BEC           MOV EBP,ESP
0065D227  |. 83C4 F4        ADD ESP,-0C
0065D22A  |. 83F9 0C        CMP ECX,0C
0065D22D  |. 53             PUSH EBX
0065D22E  |. 8BD8           MOV EBX,EAX
0065D230  |. 56             PUSH ESI
0065D231  |. 0F82 A2000000  JB cloverda.0065D2D9
0065D237  |. 803A 41        CMP BYTE PTR DS:[EDX],41
0065D23A  |. 0F85 99000000  JNZ cloverda.0065D2D9
0065D240  |. 807A 01 64     CMP BYTE PTR DS:[EDX+1],64
0065D244  |. 0F85 8F000000  JNZ cloverda.0065D2D9
0065D24A  |. 807A 02 6F     CMP BYTE PTR DS:[EDX+2],6F
0065D24E  |. 0F85 85000000  JNZ cloverda.0065D2D9
0065D254  |. 807A 03 62     CMP BYTE PTR DS:[EDX+3],62
0065D258  |. 75 7F          JNZ SHORT cloverda.0065D2D9
0065D25A  |. 807A 04 65     CMP BYTE PTR DS:[EDX+4],65
0065D25E  |. 75 79          JNZ SHORT cloverda.0065D2D9
0065D260  |. 33C0           XOR EAX,EAX
0065D262  |. 33C9           XOR ECX,ECX
0065D264  |. 8A42 05        MOV AL,BYTE PTR DS:[EDX+5]
0065D267  |. 8A4A 06        MOV CL,BYTE PTR DS:[EDX+6]
0065D26A  |. C1E0 08        SHL EAX,8
0065D26D  |. 03C1           ADD EAX,ECX
0065D26F  |. 33C9           XOR ECX,ECX
0065D271  |. 8945 FC        MOV DWORD PTR SS:[EBP-4],EAX
0065D274  |. 33C0           XOR EAX,EAX
0065D276  |. 8A42 07        MOV AL,BYTE PTR DS:[EDX+7]
0065D279  |. 8A4A 08        MOV CL,BYTE PTR DS:[EDX+8]
0065D27C  |. C1E0 08        SHL EAX,8
0065D27F  |. 03C1           ADD EAX,ECX
0065D281  |. 33C9           XOR ECX,ECX
0065D283  |. 8945 F8        MOV DWORD PTR SS:[EBP-8],EAX
0065D286  |. 33C0           XOR EAX,EAX
0065D288  |. 8A42 09        MOV AL,BYTE PTR DS:[EDX+9]
0065D28B  |. 8A4A 0A        MOV CL,BYTE PTR DS:[EDX+A]
0065D28E  |. C1E0 08        SHL EAX,8
0065D291  |. 03C1           ADD EAX,ECX
0065D293  |. 8945 F4        MOV DWORD PTR SS:[EBP-C],EAX
0065D296  |. 0FB672 0B      MOVZX ESI,BYTE PTR DS:[EDX+B]
0065D29A  |. 8B03           MOV EAX,DWORD PTR DS:[EBX]
0065D29C  |. 83C0 18        ADD EAX,18
0065D29F  |. 8B55 FC        MOV EDX,DWORD PTR SS:[EBP-4]
0065D2A2  |. 8910           MOV DWORD PTR DS:[EAX],EDX
0065D2A4  |. 8B4D F8        MOV ECX,DWORD PTR SS:[EBP-8]
0065D2A7  |. 8948 04        MOV DWORD PTR DS:[EAX+4],ECX
0065D2AA  |. 8B55 F4        MOV EDX,DWORD PTR SS:[EBP-C]
0065D2AD  |. 8950 08        MOV DWORD PTR DS:[EAX+8],EDX
0065D2B0  |. 8970 0C        MOV DWORD PTR DS:[EAX+C],ESI
0065D2B3  |. 8B03           MOV EAX,DWORD PTR DS:[EBX]
0065D2B5  |. C740 14 4C0000>MOV DWORD PTR DS:[EAX+14],4C
0065D2BC  |. BA 01000000    MOV EDX,1
0065D2C1  |. 8BC3           MOV EAX,EBX
0065D2C3  |. 8B08           MOV ECX,DWORD PTR DS:[EAX]
0065D2C5  |. FF51 04        CALL DWORD PTR DS:[ECX+4]
0065D2C8  |. C683 F8000000 >MOV BYTE PTR DS:[EBX+F8],1
0065D2CF  |. 8BC6           MOV EAX,ESI
0065D2D1  |. 8883 F9000000  MOV BYTE PTR DS:[EBX+F9],AL
0065D2D7  |. EB 1B          JMP SHORT cloverda.0065D2F4
0065D2D9  |> 8B03           MOV EAX,DWORD PTR DS:[EBX]
0065D2DB  |. BA 01000000    MOV EDX,1
0065D2E0  |. C740 14 4E0000>MOV DWORD PTR DS:[EAX+14],4E
0065D2E7  |. 034D 08        ADD ECX,DWORD PTR SS:[EBP+8]
0065D2EA  |. 8948 18        MOV DWORD PTR DS:[EAX+18],ECX
0065D2ED  |. 8BC3           MOV EAX,EBX
0065D2EF  |. 8B08           MOV ECX,DWORD PTR DS:[EAX]
0065D2F1  |. FF51 04        CALL DWORD PTR DS:[ECX+4]
0065D2F4  |> 5E             POP ESI
0065D2F5  |. 5B             POP EBX
0065D2F6  |. 8BE5           MOV ESP,EBP
0065D2F8  |. 5D             POP EBP
0065D2F9  \. C2 0400        RETN 4