Control de usuario
Patrocinadores
Estadísticas
Miembros:
334.650
Online:
989
Hilos:
1.380.668
Mensajes:
24.884.877
Stats

Índice de foros PlayStation 3 Scene

[PsDev] Crypter Tools - Por confirmar

Linux, software casero y los diferentes hacks no relacionados con backups

Moderadores: Ferdopa, jamonazo2000, Namco69

Frange
Avatar de usuario
MegaAdicto!!!
 
Mensajes: 1663
Registrado: 03 May 2005

[PsDev] Crypter Tools - Por confirmar

Mensajepor Frange 10 Dic 2011 11:42

El scener PsDev ha sacado unas herramientas para (segun comenta) encriptar y desencriptar cualquier fichero firmandolo con tu propia Key o si tienes la llave de otra cosa decirle al lv0 que lo haga por ti.

Código: Seleccionar todo
"This package of tools can encrypt and decrypt any file type, you can use you own key so no one can decrypt it. Unless they know the key. Note** you can only decrypt files that are encrypted that you did not create if you know the key for it, you cant randomly create a key and try to use it to decrypt it. There is and example folder inside the download too."


INSTRUCCIONES EN INGLES:

Código: Seleccionar todo
The USAGE:
Encrypter:
<Encrypter.exe> <input> <output> : <The Key you want>
____________________________________________________

Decrypter:
<Decrypter.exe> <input> <output> : <The Key you entered in the encryptor>

Note -- if the file has and extension on it ex: example.txt, you must add the .txt.

The Decrypter will say it was decrypted successfully but if you did not enter the right key you will get a file damage error, So enter the right key (One you use to encrypt the file with)




HERRAMIENTAS: http://www.2shared.com/file/i2ZIdtHW/Cypter_tools.html

Fuente: psx-scene.com

alex_spyro
Avatar de usuario
Uncharteando!
 
Mensajes: 839
Registrado: 11 Jul 2007
Ubicación: Granada, España

Mensajepor alex_spyro 10 Dic 2011 12:12

Pillo sitio, esto parece bastante interesante. Como sea cierto es un gran avance!

Brais
Avatar de usuario
͙
 
Mensajes: 742
Registrado: 03 Feb 2009

Mensajepor Brais 10 Dic 2011 12:21

Ojala dejen de salir tantos rumores y cosas que por el momento no sirven para nada, y saquen algo de una vez.
Imagen

_Kristian_
Avatar de usuario
Adicto
 
Mensajes: 439
Registrado: 01 Jun 2007
Ubicación: AlcOy

Mensajepor _Kristian_ 10 Dic 2011 12:24

¿Esto sirve para firmar cualquier cosa con una key "falsa" por asi decirlo?

¿Y en caso de poder sacar la key per console poder firmar todo como si fuese oficial partiendo desde un custom verdad?

Ando un poco espeso ultimamente jajajaja.

A ver que dicen los expertos
Imagen

psn_hypervisor
Habitual
 
Mensajes: 63
Registrado: 11 Jul 2011

Re: [PsDev] Crypter Tools - Por confirmar

Mensajepor psn_hypervisor 10 Dic 2011 13:04

Frange escribió:El scener PsDev ha sacado unas herramientas para (segun comenta) encriptar y desencriptar cualquier fichero firmandolo con tu propia Key o si tienes la llave de otra cosa decirle al lv0 que lo haga por ti.

Código: Seleccionar todo
"This package of tools can encrypt and decrypt any file type, you can use you own key so no one can decrypt it. Unless they know the key. Note** you can only decrypt files that are encrypted that you did not create if you know the key for it, you cant randomly create a key and try to use it to decrypt it. There is and example folder inside the download too."


INSTRUCCIONES EN INGLES:

Código: Seleccionar todo
The USAGE:
Encrypter:
<Encrypter.exe> <input> <output> : <The Key you want>
____________________________________________________

Decrypter:
<Decrypter.exe> <input> <output> : <The Key you entered in the encryptor>

Note -- if the file has and extension on it ex: example.txt, you must add the .txt.

The Decrypter will say it was decrypted successfully but if you did not enter the right key you will get a file damage error, So enter the right key (One you use to encrypt the file with)




HERRAMIENTAS: http://www.2shared.com/file/i2ZIdtHW/Cypter_tools.html

Fuente: psx-scene.com


Encriptar o desencriptar FIRMANDO?
Lo primero es que encriptar o desencriptar nada tiene que ver con el proceso de firmado, y segundo, no dice nada del lv0, mas bien dice que esto sirve para cualquier tipo de archivo, adjunta un txt
encriptado y desencriptado en texto plano.
Util para ocultar algo, aunque supongo que alguien te puede reversar el exe del decriptador y sacar el algoritmo de desencriptacion.

De todos modos, en el caso de la PS3, no basta con encriptar algo con una key custom, si haces eso, y el sistema no tiene soporte para esa key custom...como te lo desencripta?
Aparte de eso, tambien requiere que se firme correctamente, o no te lo arrancara, a menos de que parchees el chequeo de la firma como pasa en el 3.56 MA.

Un saludo

Noriko
Avatar de usuario
Numerador Denominado
 
Mensajes: 1083
Registrado: 15 Sep 2010
Ubicación: En Matriz

Mensajepor Noriko 10 Dic 2011 13:13

psn_hypervisor


Osea otra utilidad que no sirve para mucho en cuanto a carga de backups/creación de CFW, gracias hypervisor por poner freno al hype que seguramente se iba a crear.
Norik...OImagen Imagen COPIAR NO ES ROBAR

Video explicativo:http://www.youtube.com/watch?v=cTMXjY0uz2Q&feature=related

Mi canal: http://www.youtube.com/user/N0RlK0?feature=watch *nuevo video "Stress Times"

Los instigadores de la guerra nunca van a luchar, te mandan a ti a hacerlo.
En una batalla no hay vencedores ni vencidos, solamente victimas.



Con MEGABOX del creador de MEGAUPLOAD los artistas ganarían el 90%

Acermax
Avatar de usuario
MegaAdicto!!!
 
Mensajes: 735
Registrado: 06 Feb 2006

Mensajepor Acermax 10 Dic 2011 13:40

Esto más bien parece una aplicación para utilizarla en PC, porque para PS3 no vale para mucho, la verdad.
Imagen

Frange
Avatar de usuario
MegaAdicto!!!
 
Mensajes: 1663
Registrado: 03 May 2005

Re: [PsDev] Crypter Tools - Por confirmar

Mensajepor Frange 10 Dic 2011 14:42

psn_hypervisor escribió:Encriptar o desencriptar FIRMANDO?
Lo primero es que encriptar o desencriptar nada tiene que ver con el proceso de firmado, y segundo, no dice nada del lv0

Un saludo

lo del lv0 lo comentan en la fuente, busca

psn_hypervisor
Habitual
 
Mensajes: 63
Registrado: 11 Jul 2011

Re: [PsDev] Crypter Tools - Por confirmar

Mensajepor psn_hypervisor 10 Dic 2011 15:15

Frange escribió:
psn_hypervisor escribió:Encriptar o desencriptar FIRMANDO?
Lo primero es que encriptar o desencriptar nada tiene que ver con el proceso de firmado, y segundo, no dice nada del lv0

Un saludo

lo del lv0 lo comentan en la fuente, busca


¿Que busque que? Lo primero, nada de ordenes a mi.
Lo segundo, antes de postear lee bien los comentarios de la gente de esa noticia:
Te pongo uno:

"Whenever I see this guy's name I think at CFW FOLDER Checker (whatever)... and I always end up with a stupid grin over my face
I might even think at a great application to post for this contest myself... It will be called "Useless Crap of Magic PS3" - UCMPS3

Now, I respect everyone's work, I know that making free applications for someone is hard, and the biggest reward we get as developers is the people's gratitude!
YES, I respect your work, but making a program that adds 1+1 endlessly, and posting it over the net won't get anyone's attention!

OH, and if you ever wonder why I bash this guy this much: You can do what this program does with one line of code! ONE LINE!
I'm a little rusty, more than 7 yrs break from programming but I'm sure that encryption routines are embedded in every major programming language"

Entiendo que quieras informar de algo que sale deprisa y corriendo y ser el primero que informa de ello...si...
Es solo mi opinion, quitando el offtopic, y por una vez voy a poner un codigo largo, si, es la funcion que este programa usa para encriptar, crea una key RC4, deriva y saca una publica (en estructura BLOB), hace un hash, etc.

Código: Seleccionar todo
int __cdecl sub_4115F0(LPCSTR lpFileName, const CHAR *a2, LPCSTR pbData)
{
  void *v3; // eax@2
  int v4; // edx@3
  int v5; // eax@3
  int v6; // eax@6
  int v7; // eax@9
  int v8; // eax@14
  int v9; // eax@19
  int v10; // eax@21
  BYTE *v11; // eax@23
  int v12; // eax@24
  int v13; // eax@30
  int v14; // eax@33
  int v15; // eax@36
  int v16; // eax@38
  int v17; // eax@42
  DWORD v18; // eax@41
  int v19; // eax@45
  int v20; // eax@48
  int v21; // eax@53
  int v22; // eax@57
  int v23; // eax@59
  int v24; // eax@70
  int v25; // eax@74
  int v26; // eax@77
  int v28; // ST18_4@78
  int v29; // ecx@78
  char v30; // [sp+Ch] [bp-168h]@1
  unsigned __int8 v31; // [sp+D3h] [bp-A1h]@50
  DWORD NumberOfBytesWritten; // [sp+DCh] [bp-98h]@35
  DWORD dwBufLen; // [sp+E8h] [bp-8Ch]@49
  DWORD nNumberOfBytesToRead; // [sp+F4h] [bp-80h]@49
  void *Memory; // [sp+100h] [bp-74h]@1
  DWORD Size; // [sp+10Ch] [bp-68h]@22
  BYTE *lpBuffer; // [sp+118h] [bp-5Ch]@1
  HCRYPTHASH hHash; // [sp+124h] [bp-50h]@1
  HCRYPTKEY hExpKey; // [sp+130h] [bp-44h]@1
  HCRYPTKEY hKey; // [sp+13Ch] [bp-38h]@1
  HCRYPTPROV hProv; // [sp+148h] [bp-2Ch]@1
  HANDLE hFile; // [sp+154h] [bp-20h]@1
  HANDLE hObject; // [sp+160h] [bp-14h]@1
  char v44; // [sp+16Fh] [bp-5h]@1
  int v45; // [sp+174h] [bp+0h]@78

  memset(&v30, -858993460, 0x168u);
  v44 = 0;
  hObject = (HANDLE)-1;
  hFile = (HANDLE)-1;
  hProv = 0;
  hKey = 0;
  hExpKey = 0;
  hHash = 0;
  lpBuffer = 0;
  Memory = 0;
  CreateFileA(lpFileName, 1u, 1u, 0, 3u, 0x80u, 0);
  hObject = (HANDLE)((int (*)(void))sub_41117C)();
  if ( hObject == (HANDLE)-1 )
  {
    GetLastError();
    v5 = ((int (*)(void))sub_41117C)();
    sub_41119F("Error opening plaintext file!\n", v5);
    goto LABEL_62;
  }
  printf("The plaintext file, %s, is open. \n", lpFileName);
  ((void (*)(void))sub_41117C)();
  CreateFileA(a2, 2u, 1u, 0, 4u, 0x80u, 0);
  v3 = (void *)((int (*)(void))sub_41117C)();
  hFile = v3;
  if ( v3 == (void *)-1 )
  {
    GetLastError();
    v6 = ((int (*)(void))sub_41117C)();
    sub_41119F("Error opening ecrypted file!\n", v6);
    goto LABEL_62;
  }
  printf("The encryption file, %s, is open. \n", a2);
  ((void (*)(void))sub_41117C)();
  CryptAcquireContextA(&hProv, 0, "Microsoft Enhanced Cryptographic Provider v1.0", 1u, 0);
  if ( !((int (*)(void))sub_41117C)() )
  {
    GetLastError();
    v7 = ((int (*)(void))sub_41117C)();
    sub_41119F("Error during Crypto!\n", v7);
    goto LABEL_62;
  }
  printf("A  crypto has been acquired. \n");
  ((void (*)(void))sub_41117C)();
  if ( pbData && *pbData )
  {
    CryptCreateHash(hProv, 0x8003u, 0, 0, &hHash);
    if ( !((int (*)(void))sub_41117C)() )
    {
      GetLastError();
      v17 = ((int (*)(void))sub_41117C)();
      sub_41119F("Error during CryptCreateHash!\n", v17);
      goto LABEL_62;
    }
    printf("A hash object has been created. \n");
    ((void (*)(void))sub_41117C)();
    lstrlenA(pbData);
    v18 = ((int (*)(void))sub_41117C)();
    CryptHashData(hHash, (const BYTE *)pbData, v18, 0);
    if ( !((int (*)(void))sub_41117C)() )
    {
      GetLastError();
      v19 = ((int (*)(void))sub_41117C)();
      sub_41119F("Error during CryptHashData. \n", v19);
      goto LABEL_62;
    }
    printf("The key has been added to the hash. \n");
    ((void (*)(void))sub_41117C)();
    CryptDeriveKey(hProv, 0x6801u, hHash, 0x800000u, &hKey);
    if ( !((int (*)(void))sub_41117C)() )
    {
      GetLastError();
      v20 = ((int (*)(void))sub_41117C)();
      sub_41119F("Error during CryptDeriveKey!\n", v20);
      goto LABEL_62;
    }
    printf("An encryption key is derived from the password hash. \n");
    ((void (*)(void))sub_41117C)();
  }
  else
  {
    CryptGenKey(hProv, 0x6801u, 0x800001u, &hKey);
    if ( !((int (*)(void))sub_41117C)() )
    {
      GetLastError();
      v8 = ((int (*)(void))sub_41117C)();
      sub_41119F("Error during CryptGenKey. \n", v8);
      goto LABEL_62;
    }
    printf("A key has been created. \n");
    ((void (*)(void))sub_41117C)();
    CryptGetUserKey(hProv, 1u, &hExpKey);
    if ( ((int (*)(void))sub_41117C)() )
    {
      printf("The user public key has been retrieved. \n");
      ((void (*)(void))sub_41117C)();
    }
    else
    {
      GetLastError();
      if ( ((int (*)(void))sub_41117C)() != -2146893811 )
      {
        GetLastError();
        v10 = ((int (*)(void))sub_41117C)();
        sub_41119F("User public key is not available and may not exist.\n", v10);
        goto LABEL_62;
      }
      CryptGenKey(hProv, 1u, 1u, &hExpKey);
      if ( !((int (*)(void))sub_41117C)() )
      {
        GetLastError();
        v9 = ((int (*)(void))sub_41117C)();
        sub_41119F("Could not create a user public key.\n", v9);
        goto LABEL_62;
      }
    }
    CryptExportKey(hKey, hExpKey, 1u, 0, 0, &Size);
    if ( !((int (*)(void))sub_41117C)() )
    {
      GetLastError();
      v12 = ((int (*)(void))sub_41117C)();
      sub_41119F("Error BLOB length! \n", v12);
      goto LABEL_62;
    }
    printf("The key BLOB is %d bytes long. \n", Size);
    ((void (*)(void))sub_41117C)();
    malloc(Size);
    v11 = (BYTE *)((int (*)(void))sub_41117C)();
    lpBuffer = v11;
    if ( !v11 )
    {
      sub_41119F("Out of memory. \n", -2147024882);
      goto LABEL_62;
    }
    printf("Memory is allocated for the key BLOB. \n");
    ((void (*)(void))sub_41117C)();
    CryptExportKey(hKey, hExpKey, 1u, 0, lpBuffer, &Size);
    if ( !((int (*)(void))sub_41117C)() )
    {
      GetLastError();
      v13 = ((int (*)(void))sub_41117C)();
      sub_41119F("Error during CryptExportKey!\n", v13);
      goto LABEL_62;
    }
    printf("The key has been exported. \n");
    ((void (*)(void))sub_41117C)();
    if ( hExpKey )
    {
      CryptDestroyKey(hExpKey);
      if ( !((int (*)(void))sub_41117C)() )
      {
        GetLastError();
        v14 = ((int (*)(void))sub_41117C)();
        sub_41119F("Error during CryptDestroyKey.\n", v14);
        goto LABEL_62;
      }
      hExpKey = 0;
    }
    WriteFile(hFile, &Size, 4u, &NumberOfBytesWritten, 0);
    if ( !((int (*)(void))sub_41117C)() )
    {
      GetLastError();
      v15 = ((int (*)(void))sub_41117C)();
      sub_41119F("Error writing header.\n", v15);
      goto LABEL_62;
    }
    printf("A file header has been written. \n");
    ((void (*)(void))sub_41117C)();
    WriteFile(hFile, lpBuffer, Size, &NumberOfBytesWritten, 0);
    if ( !((int (*)(void))sub_41117C)() )
    {
      GetLastError();
      v16 = ((int (*)(void))sub_41117C)();
      sub_41119F("Error writing header.\n", v16);
      goto LABEL_62;
    }
    printf("The key BLOB has been written to the file. \n");
    ((void (*)(void))sub_41117C)();
    free(lpBuffer);
    ((void (*)(void))sub_41117C)();
  }
  nNumberOfBytesToRead = 1000;
  dwBufLen = 1008;
  malloc(0x3F0u);
  Memory = (void *)((int (*)(void))sub_41117C)();
  if ( Memory )
  {
    printf("Memory has been allocated for the buffer. \n");
    ((void (*)(void))sub_41117C)();
    v31 = 0;
    do
    {
      ReadFile(hObject, Memory, nNumberOfBytesToRead, &NumberOfBytesWritten, 0);
      if ( !((int (*)(void))sub_41117C)() )
      {
        GetLastError();
        v21 = ((int (*)(void))sub_41117C)();
        sub_41119F("Error reading plaintext!!!\n", v21);
        goto LABEL_62;
      }
      if ( NumberOfBytesWritten < nNumberOfBytesToRead )
        v31 = 1;
      CryptEncrypt(hKey, 0, v31, 0, (BYTE *)Memory, &NumberOfBytesWritten, dwBufLen);
      if ( !((int (*)(void))sub_41117C)() )
      {
        GetLastError();
        v22 = ((int (*)(void))sub_41117C)();
        sub_41119F("Error during CryptEncrypt. \n", v22);
        goto LABEL_62;
      }
      WriteFile(hFile, Memory, NumberOfBytesWritten, &NumberOfBytesWritten, 0);
      if ( !((int (*)(void))sub_41117C)() )
      {
        GetLastError();
        v23 = ((int (*)(void))sub_41117C)();
        sub_41119F("Error writing ciphertext.\n", v23);
        goto LABEL_62;
      }
    }
    while ( !v31 );
    v44 = 1;
  }
  else
  {
    sub_41119F("Out of memory. \n", -2147024882);
  }
LABEL_62:
  if ( hObject )
  {
    CloseHandle(hObject);
    ((void (*)(void))sub_41117C)();
  }
  if ( hFile )
  {
    CloseHandle(hFile);
    ((void (*)(void))sub_41117C)();
  }
  if ( Memory )
  {
    free(Memory);
    ((void (*)(void))sub_41117C)();
  }
  if ( hHash )
  {
    CryptDestroyHash(hHash);
    if ( !((int (*)(void))sub_41117C)() )
    {
      GetLastError();
      v24 = ((int (*)(void))sub_41117C)();
      sub_41119F("Error during CryptDestroyHash.\n", v24);
    }
    hHash = 0;
  }
  if ( hKey )
  {
    CryptDestroyKey(hKey);
    if ( !((int (*)(void))sub_41117C)() )
    {
      GetLastError();
      v25 = ((int (*)(void))sub_41117C)();
      sub_41119F("Error during CryptDestroyKey!\n", v25);
    }
  }
  if ( hProv )
  {
    CryptReleaseContext(hProv, 0);
    if ( !((int (*)(void))sub_41117C)() )
    {
      GetLastError();
      v26 = ((int (*)(void))sub_41117C)();
      sub_41119F("Error during CryptReleaseContext!\n", v26);
    }
  }
  v28 = v4;
  sub_41109B(&v45, &dword_411F28);
  return sub_41117C(v29, v28);
}


Si se sabe programar para Windows, se sabe que API se estan usando muy rapido.
No tengo nada mas que decir del tema.

Un saludo

piksi
Avatar de usuario
Habitual
 
Mensajes: 90
Registrado: 22 Nov 2006

Mensajepor piksi 10 Dic 2011 16:09

A ver gachos, que lo que pone psn_hypervisor es la pura verdad. Daros un voltio por los principios básicos de criptografía y os miráis las diferencias entre cifrar algo y firmarlo digitalmente, que aunque los dos usan un algoritmo X, se parecen como un huevo a una castaña.

Siguiente

Volver a Scene

¿Quién está conectado?

Usuarios navegando por este foro: No hay usuarios registrados visitando el foro y 3 invitados