ScoreHero
Home | Forum | Wiki
Inbox [ Login ]Inbox [ Login ]
SearchSearch MemberlistMemberlist
ProfileProfile Log inLog in
GH: WT PC Customs ARE HERE (w/ TUTORIAL)
Goto page Previous  1, 2, 3, 4 ... 12, 13, 14  Next
 
Post new topic   Reply to topic    ScoreHero Forum Index -> Software
View previous topic :: View next topic  
Author Message
thepoop555  





Joined: 16 Sep 2007
Posts: 316
Location: Austin, TX

PostPosted: Fri Jul 31, 2009 4:38 pm    Post subject: Reply with quote

Well I will soon. And it's not really mine. Its just a VERY slightly modified version of bnw's modified version of the original GH3 Decrypter (if that makes sense ).

Anyway, since every song doesn't use a general key like in GH3, you must run my decrypter first to dump the key to filekey.bin. But that's my disadvantage because that will be A LOT of filekey.bin's. I'm still trying to work that out.

I am gonna find out a more efficient system to this, then, (if it's ok with bnw) I will release the source code and the .exe.

I'm still surprised that mine works. Because I have absolutely no skill in c++. I'm glad that it is slightly like c#!
_________________
SUPPORT GH: AVENGED SEVENFOLD

Arandomguy1 on YouTube
TrevorTheGreat wrote:
Oh my god I've never seen a bunch of bitching children like this before.

OMG I got perma-rockered! /world

So fucking what. Play your plastic guitar and get over it.
Back to top
View user's profile Send private message XBL Gamertag: guns4fun2872
choseh  





Joined: 29 Jul 2009
Posts: 8

PostPosted: Fri Jul 31, 2009 5:17 pm    Post subject: Reply with quote

gief! ;)
Back to top
View user's profile Send private message XBL Gamertag: ch0si ICQ Number
thepoop555  





Joined: 16 Sep 2007
Posts: 316
Location: Austin, TX

PostPosted: Fri Jul 31, 2009 5:21 pm    Post subject: Reply with quote

Ok, so, does anyone here know how to export multiple channels from audacity into a lame .wav/.mp3? Because everytime I do that with FFMpeg, it creates a file with 0 bytes in it. And then with .mp3's, it only lets me do a stereo (2 channel) .mp3.

Or maybe just create multichannel .wav's (or .mp3's) in general.
_________________
SUPPORT GH: AVENGED SEVENFOLD

Arandomguy1 on YouTube
TrevorTheGreat wrote:
Oh my god I've never seen a bunch of bitching children like this before.

OMG I got perma-rockered! /world

So fucking what. Play your plastic guitar and get over it.
Back to top
View user's profile Send private message XBL Gamertag: guns4fun2872
rob182  





Joined: 05 May 2009
Posts: 5

PostPosted: Sat Aug 01, 2009 4:39 am    Post subject: Reply with quote

so hows the custom advancement by now? hope you can make it work soon you can do it man :P
Back to top
View user's profile Send private message
bnw33  





Joined: 29 Mar 2008
Posts: 42

PostPosted: Sat Aug 01, 2009 4:40 am    Post subject: Reply with quote

There isn't really such thing as a multichannel mp3 file. It's just supposed to be stereo and mono. But the folks down at red octane decided to make their own. So we'll have to make our own way of interleaving the stereo mp3 streams into one mp3 file (that copies theirs).

Feel free to release the code thepoop, I'm kindof migrating towards the xbox side of ghwt customs.
Back to top
View user's profile Send private message
thepoop555  





Joined: 16 Sep 2007
Posts: 316
Location: Austin, TX

PostPosted: Sun Aug 02, 2009 8:15 pm    Post subject: Reply with quote

Ok, I upload my decrpyter and encrypter.

INSTRUCTIONS:
You MUST extract your audio file's key of the song you want to replace, so that the decrypter can extract the key into a file.

1. Decrypt the a song's audio file no matter what.

2. Encrypt the audio file you want. It will look for filekey.bin to encrypt.

3. Replace that audio file for the song you decrypted.

4. IMPORTANT! DELETE THE FILEKEY.BIN. OTHERWISE YOU MAY ENCOUNTER PROBLEMS IN ECRYPTING IN THE FUTURE.

ENCRYPTER:

Code:
// xendecrypt.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "windows.h"
#include "stdio.h"
#include "sys\stat.h"
#include "stdlib.h"
#include <cmath>


#define KEY_LEN 32

char SwapByteBits(unsigned char cInput)
{
   unsigned char nResult=0;

   for(int i=0; i<8; i++)
   {
      nResult = nResult <<1>> 1;
   }

   return (nResult);
}
/*
bool SearchKey(int pos, FILE * inFile, unsigned char* kBuffer)
{
   fpos_t pos1;
   fgetpos(inFile, &pos1);
   //fsetpos(inFile, pos1);
   fread(kBuffer, 4, 4, inFile);
   return false;
}*/

int main(int argc, char* argv[])
{
   int nError = 0;
   struct _stat32 fileStat;
   unsigned int nBufferSize = 0;
   FILE* inFile = NULL;
   FILE* outFile = NULL;
   unsigned char* pBuffer;
   unsigned char* kBuffer;
   unsigned char* pInput;
   //unsigned char* kInput;
   unsigned int nLoopIdx = 0;
   int platform = NULL;
   //about a girl
   //unsigned char fsbKey[4];
   //unsigned char xorKey[4] = {'\x62', '\xCA', '\x42', '\x2C'};
   unsigned char cpKey[32];/* =
     
                   {'\x48', '\x90', '\xE3', '\x01',
                    '\x47', '\x02', '\x88', '\x5F',
                    '\x3F', '\x04', '\x5B', '\x53',
                    '\xD0', '\xA0', '\xC4', '\xB4',
                    '\x5E', '\x30', '\xC1', '\x11',
                    '\x91', '\x59', '\x2C', '\x7E',
                    '\xFD', '\xFB', '\x4C', '\x7C',
                    '\x3A', '\xF9', '\x67'};
   */
   //aggro
   /*unsigned char cpKey[32] =
   {'\xAD', '\x5B', '\x1D', '\x41',
    '\x72', '\xA0', '\xE6', '\x41',
   '\x43', '\xF5', '\xC8', '\x1D',
   '\x03', '\xF5', '\x28', '\xDD',
   '\x6E', '\x9B', '\x46', '\x01',
   '\x1F', '\xCA', '\x5B', '\xCD',
   '\xC1', '\x3D', '\xE0', '\xBB',
   '\x99', '\xA6', '\x36'};

   /*for(int i=0; i<KEY_LEN-1; i++)
   {
      cpKey[i] = (char)hexKey[i];
   }*/
   printf ("GHWT FSB Encryptor v1.0 by Invo -- Modified by bnw33, and then thepoop555\n");
   printf ("--------------------------------\n");
   printf ("\n");

   // Check params
   if (argc != 3)
   {
      printf ("Usage: %s <Input> <Output>\n"
            "\n"
           "\n", argv[0]);
      return (1);
   }
       // if((argv[0][0] != '-') || (strlen(argv[0]) != 2)) {
      //   fprintf(stderr, "\nError: wrong command-line argument (%s)\n\n", argv[0]);}



   // Get the file size
   nError = _stat32(argv[1], &fileStat);
   if (nError != 0)
   {
      printf ("Failed to get the input file size!\n");
      return (1);
   }

   nBufferSize = fileStat.st_size;

   // Allocate buffer
   pBuffer = (unsigned char*)malloc(nBufferSize);
   kBuffer = (unsigned char*)malloc(nBufferSize);
   if (pBuffer == NULL)
   {
      printf ("Failed to allocate input buffer!\n");
      return (1);
   }
   if (kBuffer == NULL)
   {
      printf ("Failed to allocate key buffer!\n");
      return (1);
   }

   // Open and read the input
   inFile = fopen(argv[1], "rb");
   if (inFile == NULL)
   {
      printf ("Failed to open the input file!\n");
      return (1);
   }
   
   //Since the key is different for every single .fsb file, and there is a padding of FFFF bytes (hopefully)
   //at the end... The Preview files seem to not contain this structure...
   printf ("Reading key... ");
   FILE* KeyFile = fopen("filekey.bin", "rb");
   fread(cpKey, 1, 31, KeyFile);
  // fseek(inFile, 0, SEEK_SET);
   printf ("Done!\n");
   //Search through file for key...
   /*
   printf ("Reading Key... ");
   fread(kBuffer, 1, nBufferSize, inFile);
   fclose(inFile);
   kInput = kBuffer;
   for (int kLoopIdx=0; kLoopIdx<4; kLoopIdx++)
   {
      fsbKey[kLoopIdx] = *kInput ^ xorKey[kLoopIdx];
   }
   int i = 0;
   for (int kLoopIdx=4; kLoopIdx<nBufferSize; kLoopIdx++)
   {
      if (SearchKey(kLoopIdx, inFile, kBuffer))
      {
         break;
      }
   }*/
   printf ("Reading file (%d Bytes)... ", nBufferSize);
   fread(pBuffer, 1, nBufferSize, inFile);
   fclose(inFile);
   printf ("Done!\n");

   // Encrypt
   printf ("Encrypting... ");
   pInput = pBuffer;
   for (int nLoopIdx=0; nLoopIdx<nBufferSize; nLoopIdx++)
   {
      //*pInput = SwapByteBits(*pInput ^ cpKey[nLoopIdx % (KEY_LEN-1)]);
     *pInput = SwapByteBits(*pInput) ^ cpKey[nLoopIdx % (KEY_LEN-1)];
      pInput++;
   }
   printf ("Done!\n");

   // Open and write the output
   outFile = fopen(argv[2], "wb");
   if (outFile == NULL)
   {
      printf ("Failed to open the output file!\n");
      return (1);
   }
   printf ("Writing file... ");
   fwrite(pBuffer, 1, nBufferSize, outFile);
   fclose (outFile);
   printf ("Done!\n");

   // The end...
   return (0);
}


DECRYPTER:

Code:
// xendecrypt.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "windows.h"
#include "stdio.h"
#include "sys\stat.h"
#include "stdlib.h"
#include <cmath>


#define KEY_LEN 32

char SwapByteBits(unsigned char cInput)
{
   unsigned char nResult=0;

   for(int i=0; i<8; i++)
   {
      nResult = nResult <<1>> 1;
   }

   return (nResult);
}
/*
bool SearchKey(int pos, FILE * inFile, unsigned char* kBuffer)
{
   fpos_t pos1;
   fgetpos(inFile, &pos1);
   //fsetpos(inFile, pos1);
   fread(kBuffer, 4, 4, inFile);
   return false;
}*/

int main(int argc, char* argv[])
{
   int nError = 0;
   struct _stat32 fileStat;
   unsigned int nBufferSize = 0;
   FILE* inFile = NULL;
   FILE* outFile = NULL;
   unsigned char* pBuffer;
   unsigned char* kBuffer;
   unsigned char* pInput;
   //unsigned char* kInput;
   unsigned int nLoopIdx = 0;
   int platform = NULL;
   //about a girl
   //unsigned char fsbKey[4];
   //unsigned char xorKey[4] = {'\x62', '\xCA', '\x42', '\x2C'};
   unsigned char cpKey[32];/* =
     
                   {'\x48', '\x90', '\xE3', '\x01',
                    '\x47', '\x02', '\x88', '\x5F',
                    '\x3F', '\x04', '\x5B', '\x53',
                    '\xD0', '\xA0', '\xC4', '\xB4',
                    '\x5E', '\x30', '\xC1', '\x11',
                    '\x91', '\x59', '\x2C', '\x7E',
                    '\xFD', '\xFB', '\x4C', '\x7C',
                    '\x3A', '\xF9', '\x67'};
   */
   //aggro
   /*unsigned char cpKey[32] =
   {'\xAD', '\x5B', '\x1D', '\x41',
    '\x72', '\xA0', '\xE6', '\x41',
   '\x43', '\xF5', '\xC8', '\x1D',
   '\x03', '\xF5', '\x28', '\xDD',
   '\x6E', '\x9B', '\x46', '\x01',
   '\x1F', '\xCA', '\x5B', '\xCD',
   '\xC1', '\x3D', '\xE0', '\xBB',
   '\x99', '\xA6', '\x36'};

   /*for(int i=0; i<KEY_LEN-1; i++)
   {
      cpKey[i] = (char)hexKey[i];
   }*/
   printf ("GHWT FSB Decryptor v1.0 by Invo -- Modified by bnw33, and then ny thepoop555\n");
   printf ("--------------------------------\n");
   printf ("\n");

   // Check params
   if (argc != 4)
   {
      printf ("Usage: %s [options] <Input> <Output>\n"
            "\n"
           "-p      GHWT PC fsb.xen\n"
           "-x      GHWT XBOX 360 fsb.xen\n"
           "\n", argv[0]);
      return (1);
   }
       // if((argv[0][0] != '-') || (strlen(argv[0]) != 2)) {
      //   fprintf(stderr, "\nError: wrong command-line argument (%s)\n\n", argv[0]);}
       
        switch(argv[1][1]) {
            case 'p': platform    = 0;    break;
            case 'x': platform      = 1;    break;
            default: {
                fprintf(stderr, "\nError: wrong command-line argument (%s)\n\n", argv[0]);
                exit(1);
                }
      }



   // Get the file size
   nError = _stat32(argv[2], &fileStat);
   if (nError != 0)
   {
      printf ("Failed to get the input file size!\n");
      return (1);
   }

   nBufferSize = fileStat.st_size;

   // Allocate buffer
   pBuffer = (unsigned char*)malloc(nBufferSize);
   kBuffer = (unsigned char*)malloc(nBufferSize);
   if (pBuffer == NULL)
   {
      printf ("Failed to allocate input buffer!\n");
      return (1);
   }
   if (kBuffer == NULL)
   {
      printf ("Failed to allocate key buffer!\n");
      return (1);
   }

   // Open and read the input
   inFile = fopen(argv[2], "rb");
   if (inFile == NULL)
   {
      printf ("Failed to open the input file!\n");
      return (1);
   }
   
   //Since the key is different for every single .fsb file, and there is a padding of FFFF bytes (hopefully)
   //at the end... The Preview files seem to not contain this structure...
   printf ("Reading key... ");
   double keyed = (nBufferSize-1)/31;
   keyed = floor(keyed); //round it
   keyed--;
   keyed = keyed*31;
   keyed = (long) keyed;
   fseek(inFile, keyed, SEEK_SET); //fseek doesnot work... now it does.. haha.
   fread(kBuffer, 1, 31, inFile);
   //fclose(inFile);
   fseek(inFile, 0, SEEK_SET);
   for (int i=0; i<31; i++)
   {
      if (platform == 0)
      {
      cpKey[i] = *kBuffer;//^'\xFF';
      }
      if (platform == 1)
      {
      cpKey[i] = *kBuffer^'\xFF';   
      }
      kBuffer++;
     
   }
  // fseek(inFile, 0, SEEK_SET);
   printf ("Done!\n");
   printf ("Dumping Key...");
   FILE* KeyFile = fopen("key.bin", "wb");
   fwrite(cpKey, 1, 31, KeyFile);
   printf("Done!\n");
   //Search through file for key...
   /*
   printf ("Reading Key... ");
   fread(kBuffer, 1, nBufferSize, inFile);
   fclose(inFile);
   kInput = kBuffer;
   for (int kLoopIdx=0; kLoopIdx<4; kLoopIdx++)
   {
      fsbKey[kLoopIdx] = *kInput ^ xorKey[kLoopIdx];
   }
   int i = 0;
   for (int kLoopIdx=4; kLoopIdx<nBufferSize; kLoopIdx++)
   {
      if (SearchKey(kLoopIdx, inFile, kBuffer))
      {
         break;
      }
   }*/
   printf ("Reading file (%d Bytes)... ", nBufferSize);
   fread(pBuffer, 1, nBufferSize, inFile);
   fclose(inFile);
   printf ("Done!\n");

   // Decrypt
   printf ("Decrypting... ");
   pInput = pBuffer;
   for (int nLoopIdx=0; nLoopIdx<nBufferSize; nLoopIdx++)
   {
      //*pInput = SwapByteBits(*pInput ^ cpKey[nLoopIdx % (KEY_LEN-1)]);
     *pInput = SwapByteBits(*pInput ^ cpKey[nLoopIdx % (KEY_LEN-1)]);
      pInput++;
   }
   printf ("Done!\n");

   // Open and write the output
   outFile = fopen(argv[3], "wb");
   if (outFile == NULL)
   {
      printf ("Failed to open the output file!\n");
      return (1);
   }
   printf ("Writing file... ");
   fwrite(pBuffer, 1, nBufferSize, outFile);
   fclose (outFile);
   printf ("Done!\n");

   // The end...
   return (0);
}

_________________
SUPPORT GH: AVENGED SEVENFOLD

Arandomguy1 on YouTube
TrevorTheGreat wrote:
Oh my god I've never seen a bunch of bitching children like this before.

OMG I got perma-rockered! /world

So fucking what. Play your plastic guitar and get over it.


Last edited by thepoop555 on Fri Sep 11, 2009 2:37 am; edited 1 time in total
Back to top
View user's profile Send private message XBL Gamertag: guns4fun2872
thepoop555  





Joined: 16 Sep 2007
Posts: 316
Location: Austin, TX

PostPosted: Sun Aug 02, 2009 8:42 pm    Post subject: Reply with quote

DOUBLE POST AGAIN:

Found out something interesting also. Most of the text strings in the game like song titles and section names are now in the file "qs.pak.xen." I saw that in a PS2 thread, and it seems it's true for PC version to.

Changed a section name in American Woman, and I'm going to post a screenshot in a sec.

Just thought if anyone would like to know that.




_________________
SUPPORT GH: AVENGED SEVENFOLD

Arandomguy1 on YouTube
TrevorTheGreat wrote:
Oh my god I've never seen a bunch of bitching children like this before.

OMG I got perma-rockered! /world

So fucking what. Play your plastic guitar and get over it.
Back to top
View user's profile Send private message XBL Gamertag: guns4fun2872
choseh  





Joined: 29 Jul 2009
Posts: 8

PostPosted: Mon Aug 03, 2009 7:12 am    Post subject: Reply with quote

uhm looks like the new decrypter breaks the files for fsbext ;)
Back to top
View user's profile Send private message XBL Gamertag: ch0si ICQ Number
thepoop555  





Joined: 16 Sep 2007
Posts: 316
Location: Austin, TX

PostPosted: Mon Aug 03, 2009 7:48 am    Post subject: Reply with quote

That's the source code from the original decrypter. I have made no changes on how it finds the filekey. So it probably is still buggy. If you really want to use the encrypter, and it doesn't like your file, take an encrypted file from the game and look for either a 31 byte reoccuring pattern or a 10 byte or just any reoccuring byte pattern and then copy that to a blank file and name it filekey.bin.
_________________
SUPPORT GH: AVENGED SEVENFOLD

Arandomguy1 on YouTube
TrevorTheGreat wrote:
Oh my god I've never seen a bunch of bitching children like this before.

OMG I got perma-rockered! /world

So fucking what. Play your plastic guitar and get over it.
Back to top
View user's profile Send private message XBL Gamertag: guns4fun2872
Kielidge  





Joined: 08 Aug 2008
Posts: 6

PostPosted: Mon Aug 03, 2009 9:29 pm    Post subject: Reply with quote

Nice work! Have you had any luck making the "multichannel" MP3's?

Also, I've been playing around with the mid file sections and found that I am able to edit notes, but if I add an extra note, or take one away, the song fails to load, not sure why that is. I'll post again if I find anything extra...
Back to top
View user's profile Send private message
dogg21  





Joined: 02 Jan 2008
Posts: 31

PostPosted: Wed Aug 05, 2009 9:51 pm    Post subject: Reply with quote

I compared the mid.qbs from pc and ps2 and they seem to be the same only different endianness.

GH3 ps2 was little endian
and
GH3 pc was big endian

I think that this is the case with these, GZ added support for big endian on qb2chart 0.3.
Qb2chart doesn't output ps2 ghwt mids correctly, but maybe it can be modified to work with both.

edit: i was able to use qb2chart with the pc mid.qbs, but the resulting chart had the exact same errors as the ps2 mid.qbs

Any help on this?

To get the mid.qbs just use unpak.exe on the *_song.pak.xen
or use nanooks new and improved queenbee v1.7
Back to top
View user's profile Send private message
dogg21  





Joined: 02 Jan 2008
Posts: 31

PostPosted: Fri Aug 07, 2009 7:05 pm    Post subject: Reply with quote

somebody try this
open one of the pak.xens in queenbee, extract the mid.qb
open a diffenrent pak.xen in queenbee, now replace that mid.qb with the one from the 1st pak.

Does it crash?
there might be a toc check. ps2 had a file fif that was used for this.


hey kielidge
Quote:
I've been playing around with the mid file sections and found that I am able to edit notes, but if I add an extra note, or take one away, the song fails to load, not sure why that is


How did you change only one note, how were you editing them?
Back to top
View user's profile Send private message
Kielidge  





Joined: 08 Aug 2008
Posts: 6

PostPosted: Fri Aug 07, 2009 11:09 pm    Post subject: Reply with quote

dogg21 wrote:
somebody try this
open one of the pak.xens in queenbee, extract the mid.qb
open a diffenrent pak.xen in queenbee, now replace that mid.qb with the one from the 1st pak.

Does it crash?
there might be a toc check. ps2 had a file fif that was used for this.


hey kielidge
Quote:
I've been playing around with the mid file sections and found that I am able to edit notes, but if I add an extra note, or take one away, the song fails to load, not sure why that is


How did you change only one note, how were you editing them?



Unfortunately yes, that does crash it. What is a toc check? I've not heard that term before.

I edited a note by splitting up the mid file (using one of the early GH3 mid splitters) then hex editing the songname_song_expert file. I used GameZelda's mid.qb specs to look for the part to edit.
Back to top
View user's profile Send private message
dogg21  





Joined: 02 Jan 2008
Posts: 31

PostPosted: Sat Aug 08, 2009 12:10 am    Post subject: Reply with quote

toc table of contents check, a way to check the disc has the original files, and not customs.

here's a couple threads about that

http://www.scorehero.com/forum/viewtopic.php?t=90218&highlight=fif

http://www.scorehero.com/forum/viewtopic.php?t=80347&highlight=fif

the second one has some info on the new qb files
Back to top
View user's profile Send private message
flasklax  





Joined: 11 Jan 2008
Posts: 6

PostPosted: Mon Aug 10, 2009 8:11 pm    Post subject: Reply with quote

The DLC-files aren't encrypted btw, they're FSB4-files.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    ScoreHero Forum Index -> Software All times are GMT
Goto page Previous  1, 2, 3, 4 ... 12, 13, 14  Next
Page 3 of 14

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum




Copyright © 2006-2024 ScoreHero, LLC
Terms of Use | Privacy Policy


Powered by phpBB