Control de usuario
Patrocinadores
Estadísticas
Miembros:
334.650
Online:
993
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

Chechuty
Avatar de usuario
||||||||||||| 70%
 
Mensajes: 4083
Registrado: 20 Jul 2006

Mensajepor Chechuty 10 Dic 2011 16:57

Resumiendo, que le dejado un CD con el Visual Studio, hace 2 aplicaciones sencillas y se cree Dark_Alex :-|
Imagen

PHONO
Avatar de usuario
MegaAdicto!!!
 
Mensajes: 550
Registrado: 31 Oct 2006
Ubicación: En un bunker secreto XD

Mensajepor PHONO 10 Dic 2011 18:26

Chechuty escribió:Resumiendo, que le dejado un CD con el Visual Studio, hace 2 aplicaciones sencillas y se cree Dark_Alex :-|


[qmparto] [qmparto] [qmparto]
Joder, como me he reido con tu comentario. [oki]
Tim Schafer dijo:
"Cabrearse con Activision es como cabrearse con un mono por lanzar sus heces. Los animales se comunican así"

Milmirex
Avatar de usuario
Andy Williams !!!
 
Mensajes: 1589
Registrado: 15 May 2006
Ubicación: Celaya Gto México

Mensajepor Milmirex 10 Dic 2011 18:59

Chechuty escribió:Resumiendo, que le dejado un CD con el Visual Studio, hace 2 aplicaciones sencillas y se cree Dark_Alex :-|


No te apresures!! podría ser Fortran . . . [sonrisa]

Saludos !
Life Sucks and then die !
Imagen
Imagen
Linux Mint Gloria User with LXDE Desktop Environment
Death Note and L Fan

toni___18
Avatar de usuario
Adicto
 
Mensajes: 164
Registrado: 27 Ene 2008
Ubicación: jaen

Mensajepor toni___18 10 Dic 2011 19:14

esto no podria servir para firmar los nuevos eboots con las antiguas keys?

Calantra
Adicto
 
Mensajes: 183
Registrado: 13 Sep 2010

Re: [PsDev] Crypter Tools - Por confirmar

Mensajepor Calantra 11 Dic 2011 09:57

psn_hypervisor escribió:
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


Con rayos Hequix todo es mas facil [sonrisa]

campa1980
Avatar de usuario
Adicto
 
Mensajes: 300
Registrado: 08 Sep 2008

scene?

Mensajepor campa1980 11 Dic 2011 13:01

hola. por lo que he leido se sigue igual. se desprestigia el trabajo de los demas y solo se pide que se saquen cosas para jugar a los juegos pirata. de que vais? que pasa, que el homebrew no es scene? que pasa, que a gente crea aplicaciones que no valen para nada solo para malgastar su tiempo?

solo espero, como digo siempre, que no vuelvan a sacar nada mas. OS LO MERECEIS ! ! !
RECICLA !
se realiza RGH en Bilbao o alrededores

Te estas convirtiendo en un ZOMBIE? seguro que SI
http://www.youtube.com/watch?v=Kd0ZyrnVVAM

Smacks
MegaAdicto!!!
 
Mensajes: 656
Registrado: 20 Oct 2010

Re: scene?

Mensajepor Smacks 11 Dic 2011 13:09

campa1980 escribió:hola. por lo que he leido se sigue igual. se desprestigia el trabajo de los demas y solo se pide que se saquen cosas para jugar a los juegos pirata. de que vais? que pasa, que el homebrew no es scene? que pasa, que a gente crea aplicaciones que no valen para nada solo para malgastar su tiempo?

solo espero, como digo siempre, que no vuelvan a sacar nada mas. OS LO MERECEIS ! ! !

+1 pero esto solo en esta web, en otras hay muy buen royo, pero aquí uuuugh!

Chechuty
Avatar de usuario
||||||||||||| 70%
 
Mensajes: 4083
Registrado: 20 Jul 2006

Re: scene?

Mensajepor Chechuty 11 Dic 2011 14:41

campa1980 escribió:hola. por lo que he leido se sigue igual. se desprestigia el trabajo de los demas y solo se pide que se saquen cosas para jugar a los juegos pirata. de que vais? que pasa, que el homebrew no es scene? que pasa, que a gente crea aplicaciones que no valen para nada solo para malgastar su tiempo?

solo espero, como digo siempre, que no vuelvan a sacar nada mas. OS LO MERECEIS ! ! !


Pero que me estás contando, si esto ni siquiera sirve para la PS3...

Como la otra aplicación que hizo que te comprobaba que se llamara PS3UPDAT.PUP y estuviera en su carpeta [+risas]

La culpa la tienen páginas como PSX-scene por ponerlo en portada ..
Imagen

Previo

Volver a Scene

¿Quién está conectado?

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