Cómo descifrar Xunlei VIP
Primero cargue este archivo con OD, busque la cadena "isvip" y encuéntrela, luego establezca un punto de interrupción en la declaración de llamada encima de la declaración "register.ini"
21987044. E8 C882FFFF LLAMADA DWORD PTR DS:[ESI+514]
21987054 50 PUSH EAX
21987055 8D45 9C LEA EAX,DWORD PTR SS:[EBP-64]
21987058 .50 PUSH EAX
21987059 . E8 CE4EFFFF CALL PTR DS:[ESI+5FC],0
21987068 C645 FC 12 MOV BYTE PTR SS:[EBP. -4],12
2198706C .8D4D 9C LEA ECX,DWORD PTR SS:[EBP-64]
2198706F .74 0E CORTO
msvcp71. .std::basic_string
21987077 50 PUSH EAX p>
21987078 68 C8259921. PUSH XLUser.219925C8 ; 1
2198707D EB 0C JMP CORTO 71 .std::basic_string
msvcp71.std::basic_string
21987085 50 PUSH.
EAX
21987086 68 C4259921 PUSH XLUser.219925C4 ; 0
2198708B > 68 003A9921 PUSH XLUser.21993A00 ; 5 . FF15 34209921 LLAMADA DWORD PTR DS:[<&KERNEL32.WritePrivateProfileS>; \WritePrivateProfileStringA
—————————————— ————————————— —————————
En este momento, use OD para cargar “Thunder.exe” y F9 para ejecutar Thunder. Después de interrumpir aquí, sigue F7.
21987044 . E8 C882FFFF CALL Busque la última instrucción de salto, busque la instrucción de llamada encima de la instrucción de salto, establezca un punto de interrupción en la instrucción de llamada y luego F9. Después de interrumpir el programa, sigue F7.
———————————————————————————————————————
2197F311 /$ 55 PUSH EBP ; Inicio de subrutina
2197F312 |8BEC MOV EBP,ESP
2197F314 |. 51 PUSH ECX
2197F315 |. 53 EMPUJE EBX
2197F316 |. 56 EMPUJE ESI
2197F317 |. 8BF1 MOV ESI,ECX
2197F319 |. > 2197F31A |. 8D9E 4C100000 LEA EBX,DWORD PTR DS:[ESI+104C]
2197F320 |. 53 PUSH EBX; /pCriticalSection
2197F321 |. : [EBP-4],EBX ; |
2197F324 |. FF15 24209921 LLAMADA DWORD PTR DS:[<&KERNEL32.EnterCriticalSection>] ; EDI, DWORD PTR SS:[EBP+8]
2197F32D | 39BE 24100000 CMP DWORD PTR DS:[ESI+1024],EDI
2197F333 |. 2197F33B
2197F335 |. 53 PUSH EBX
2197F336 |> 33DB XOR EBX,EBX
2197F33D |. 399E 64100000 CMP DWORD PTR DS:[ESI+1064],EBX
2197F343 |. 74 2F JE CORTO,2
2197F348 |. XLUser.2197F359
2197F34A | 399E A4000000 CMP DWORD PTR DS:[ESI+A4],EBX
2197F350 |. >2197
F352 |. 8BCE MOV ECX,ESI
2197F354 | E8 AED9FFFF LLAMADA p>
2197F35F |. 74 13 JE CORTO >
2197F365 |. A4],EBX
2197F36B |. 75 07 JNZ CORTO XLUser.2197F374
2197F36D |. 8BCE MOV ECX,ESI
2197F36F |. DS:[ESI+1024]
2197F37C | 8986 28100000 MOV DWORD PTR DS:[ESI+1028],EAX
2197F382 |. [EBP+C]
2197F385 |. 89BE 24100000 MOV DWORD PTR DS:[ESI+1024],EDI
2197F38B |. ,EAX
2197F391 |. 75 69 JNZ CORTO XLUser.2197F3FC
2197F393 |. 68 F0229921 PUSH ECX,DWORD PTR DS:[ESI+6F0]
2197F39E |. 889E FC050000 MOV BYTE PTR DS:[ESI+5FC],BL
2197F3A4 |. p>
msvcp71.std::basic_string
2197F3AA |. ; 19000000
2197
F3AF |. 8D8E 3C060000 LEA ECX,DWORD PTR DS:[ESI+63C]
2197F3B5 |. 899E 34060000 MOV DWORD PTR DS:[ESI+634],EBX
2197F3BB | 899E 38060000 MOV DWORD PTR DS:[ESI+638],EBX
2197F3C1 |.
msvcp71.std::basic_string
2197F3C7 |. :[ESI+6D4]
2197F3CD | 899E 10060000 MOV DWORD PTR DS:[ESI+610],EBX
2197F3D3 |. ],EBX
2197F3D9 |. 899E 60060000 MOV DWORD PTR DS:[ESI+660],EBX
2197F3DF |. EBX
2197F3E5 | 899E 18060000 MOV DWORD PTR DS:[ESI+618],EBX
2197F3EB |. /p>
2197F3F1 |. 899E D0060000 MOV DWORD PTR DS:[ESI+6D0],EBX
2197F3F7 |. 64100000>CMP DWORD PTR DS:[ESI+1064],2
2197F403 |. 75 07 JNZ SHORT XLUser.2197F40C
2197F405 |.
2197F407 |. E8 41EDFFFF CALL XLUser.2197E14D; Esta es la primera llamada encima de la instrucción de salto, la seguimos con F7
.
2197F40C |> 83FF 02 CMP EDI,2
2197F40F |. 75 14 JNZ SHORT XLUser.2197F425 La última declaración de salto de la subrutina
2197F411 | 53 EMPUJE EBX
2197F412 |. 53 EMPUJE EBX
2197F413 |. 8D46 10 LEA EAX,DWORD PTR DS:[ESI+10]
2197F416 | 8B08 MOV ECX,DWORD PTR DS:[EAX]
2197F418 |. 6A 0F EMPUJAR 0F
2197F41A |. 2C LLAMADA DWORD PTR DS:[ECX+2C]
2197F41E | 8BCE MOV ECX,ESI
2197F420 |. |> FF75 FC PUSH DWORD PTR SS:[EBP-4] ; /pCriticalSection
2197F428 |> FF15 28209921 CALL DWORD PTR DS:[<&KERNEL32.LeaveCriticalSection>] ; >2197F42E |. 5F POP EDI
2197F42F |. 5E POP ESI
2197F430 |. 5B POP EBX
2197F431 |. p>2197F432\. C2 0800 RETN 8; Fin de subrutina
—————————————————————————— ———— ——————
“2197F407” F7 lo siguió y llegó al final
2197E14D /$ B8 66FF9821 MOV EAX,XLUser.2198FF66
2197E152 | .E8 79050100 LLAMADA
2197E15A |.8BF1 MOV ESI,ECX
2197E15C |.
7 PUSH EDI
2197E15D |8D86 98100000 LEA EAX,DWORD PTR DS:[ESI+1098]
2197E163 |. 50 PUSH EAX /pCriticalSection
2197E164 |. FF15 24209921 LLAMADA DWORD PTR DS:[<&KERNEL32.EnterCriticalSection>] ;\EnterCriticalSection
2197E16A |. >2197E170 |. 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX
2197E173 |. 8D9E 6C100000 LEA EBX,DWORD PTR DS:[ESI+106C]
2197E179 33FF XOR EDI,EDI
2197E17B
2197E180 |. E8 49D8FFFF LLAMADA XLUser.2197B9CE
2197E185 |. 76 2F JBE CORTO >2197E189 |> FFB6 2C100000 /PUSH DWORD PTR DS:[ESI+102C]
2197E18F |> 8B86 70100000 |MOV EAX,DWORD PTR DS:[ESI+1070]
2197E195 |. FFB6 28100000 |PUSH DWORD PTR DS:[ESI+1028]
2197E19B |8D04B8 |LEA EAX,DWORD PTR DS:[EAX+EDI*4]
2197E19E | 8B00 |MOV EAX,DWORD PTR DS:[EAX]
2197E1A0 |. FFB6 24100000 |PUSH DWORD PTR DS:[ESI+1024]
2197E1A6 |. 8B08 |MOV ECX ,DWORD PTR DS:[EAX]
2197E1A8 |. 50 |PUSH EAX
2197E1A9 |. F7 para seguir
2197E1AC |.8BCB |MOV ECX,EBX
2197E1AE |.
47 |INC EDI
2197E1AF |. E8 1AD8FFFF |LLAMADA \JB SHORT 2197E1BE F4 MOV ECX,DWORD PTR SS:[EBP-C]
2197E1C8 |. p>
2197E1C9 |. 5E POP ESI
2197E1CA |. 5B POP EBX
2197E1CB |. /p>
2197E1D2 |. C9 SALIR
2197E1D3 \. C3 RETIN
———————————————————— ————————————————
"2197E1A9" Después siguió F7, vino abajo y entró en el espacio aéreo "BaseCommunity.dll"
1000B9D0. 6A FF PUSH -1
1000B9D2 68 F7030510 PUSH BaseComm.100503F7; instalación del controlador SE
64:A1 0000000>MOV EAX,DWORD PTR FS:[0] p>
1000B9DD 50 PUSH EAX
1000B9DE 64 :8925 00000>MOV DWORD PTR FS:[0],ESP
1000B9E5 . /p>
1000B9EB .C42D0810 MOV EAX,DWORD PTR DS:[10082DC4]
1000B9F0 .
1000B9F3.8BAC24 B8.
0000>MOV EBP,DWORD PTR SS:[ESP+B8]
1000B9FA 57 PUSH EDI
1000B9FB .8BBC24 B80000>MOV EDI,DWORD PTR SS:[ESP+B8]
1000BA02 3BFD CMP EDI,EBP
1000BA04 898424 A00000>MOV DWORD PTR SS:[ESP+A0],EAX
1000BA0B. BaseComm.1000BD2B
1000BA11 83FF 02 CMP EDI,2
1000BA14 53 EMPUJE EBX
1000BA15 . 0F85 6C020000 JNZ BaseComm.1000BC88
1000BA1C 10001FC0; seguimiento de F7
85C0 PRUEBA EAX,EAX
1000BA2A. PTR DS:[<&KERNEL32.GetTickCount>] ; kernel32.GetTickCount
----------------------- ----------------
"1000BA23" F7 sigue y llega al final
10001FC0 /$ 51 PUSH ECX (CPU inicial; selección)
10001FC1 |. 8B41 1C MOV EAX,DWORD PTR DS:[ECX+1C]
10001FC4 |. 74 17 JE CORTO BaseComm.10001FDF
10001FC8 |.8D1424 LEA EDX,DWORD PTR SS:[ESP]
10001FCB |. |. C74424 04 000>MOV DWORD PTR SS:[ESP+4],0
10001FD4 |. 8B08 MOV ECX,DWORD PTR DS:[EAX]
10001FD6 |.
PUSH EAX
10001FD7 |. FF51 0C LLAMAR DWORD PTR DS:[ECX+C]; F7 para seguir
10001FDA |. /p>
10001FDD |. 59 POP ECX
10001FDE | C3 RETN
10001FDF |> 33C0 XOR EAX,EAX
10001FE1 |. POP ECX
10001FE2 \. --- -------------
"10001FD7" Después de que F7 lo siguiera, vino abajo y entró en el espacio aéreo de "XLUser.dll"
2197A95B 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4]
2197A95F 83B8 10100000>CMP DWORD PTR DS:[EAX+1010],2
2197A966. JE CORTO XLUsuario .2197A96F
2197A968 04400080 MOV EAX,80004004
2197A96D EB 0F JMP CORTO XLUsuario.2197A97E
2197A96F > 0FB680 E80500>MO. VZX-EAX , TE PTR DS:[EAX+5E8]; modificado para mover eax,1
2197A976 8B4C24 08 MOV ECX,DWORD PTR SS:[ESP+8]
2197A97A. MOV DWORD PTR DS:[ECX],EAX
2197A97C 33C0 XOR EAX,EAX
2197A97E > C2 0800 RETN 8
Parche en 2197A96F, p>
MOVZX EAX,BYTE PTR DS:[EAX+5E8] modificado a mov eax,1
-------------------- - --------------------
Después de la modificación, guárdalo y te convertirás en un usuario VIP.