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 ... , 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: Sat Dec 12, 2009 7:27 am    Post subject: Reply with quote

SethPDA wrote:
I have a problem

http://img200.imageshack.us/img200/4882/39401047.png

Please some1 help

I have copied in the same directory as this tool the music files from WT and the mp3 file too
What can be the problem?


This is saying that you don't have Java runtime installed. Go to www.java.com and download the latest version.
_________________
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
Gyuszi999  





Joined: 06 Aug 2009
Posts: 9

PostPosted: Mon Dec 14, 2009 1:50 am    Post subject: XENdecrypt Reply with quote

Hello everyone...

I'm trying to extract the music from GH5, and I found something interesting... I don't really understand the XEN encrypting algorythm, but I think there is a little bug in the decrypter...

I'vebeen looking for informations about multi-channel XMA files for days, and I've noticed something...

After I decode the XEN to FSB, the FSB has byte errors: there are places where continuous "ff ff ff ff" should be, but instead of it, every 31th bit is "df" at me...

so I think XEN decrypter has a little bug, maybe it need a checking (I don't understand Java :S)

BTW, in the decoding of XMA-s there is no success so far...

but I'm not giving up
Back to top
View user's profile Send private message
Gyuszi999  





Joined: 06 Aug 2009
Posts: 9

PostPosted: Mon Dec 14, 2009 1:37 pm    Post subject: success Reply with quote

hi everyone

I have great news:

1. I modified an earlier version of XENDecrypt, and now it works perfectly for me

I wrote a new algorythm for key finding (however, it can only find keys with length from 5 to 50, but I think, that's enough for now)

EXE: http://www.mediafire.com/file/jryutynme0z/XENDecryptNew.exe

Source: http://www.mediafire.com/file/gnvymqdzzgy/XENDecryptNew.cpp


2. I managed to extract PCM WAV files associated with All Along The Wathtower (from GH5, multichannel XMA)

But I couldn't do it without the XMA-parser, and a lot of help

So, many thanks to AlphaTwentyThree and hcs!

If anybody is interested in extracting music from those XMA-s, write PM to me

Have a nice day, everyone!
Back to top
View user's profile Send private message
Gyuszi999  





Joined: 06 Aug 2009
Posts: 9

PostPosted: Tue Dec 15, 2009 10:00 pm    Post subject: XEN-decrypt Reply with quote

Meanwhile, I found out that my algorithm doesn't work on some FSB.XEN files, so I corrected the pervious one, in Java...

It was just a little mistake, in the constants

The source is here: http://www.mediafire.com/file/ztmntc51zni/xendecrypt.java

Maybe someone could compile it (I'm not very professional in Java), and test it, and if it's good, it could be added to ghwt_tools as an update
Back to top
View user's profile Send private message
dogg21  





Joined: 02 Jan 2008
Posts: 31

PostPosted: Thu Dec 17, 2009 7:56 pm    Post subject: Reply with quote

hey Gyuszi I compiled your java code, it seems to work fine. It also works where the last version failed.(FF DF FF)

I'll pm you a link so you can test it out.
Back to top
View user's profile Send private message
Gyuszi999  





Joined: 06 Aug 2009
Posts: 9

PostPosted: Fri Dec 18, 2009 12:53 am    Post subject: xenFinal Reply with quote

Hello everyone

Personally, I think, the C++ version xendecrypter was better at speed, and java version was better at platform-independence, and precision, so with one day work (1 hour coding, 23 hours debugging xD) I managed to write the java version in C++, but using input buffers, not streams, so it's fast, and effective, but it's EXE, so it's only good for PC-s. And, it doesn't write keyfile.bin, because I wrote it for decryption only. However, it can be easily modified to write that .bin file. Code is here:

Code:

#include <stdlib>
#include <stdio>
#include <sys>
#include <sys>
#include <string>
#include <math>

#define PC 0
#define XBOX 1

char SwapByteBits(unsigned char cInput);

void KeySearch (unsigned char *cpKey, unsigned char *pBuffer, int nBufferSize, int *KEY_LEN, int Platform, int* nError) {
   int KeyFound = 0;
    int KeyLen = 1;
   /*
     byte[] id =   {70, 83, 66, 52}; //"FSB"
     byte[] numsamples = {1,  0,  0,  0 }; //Num Samples is always 1
     byte[] shdrsize =  {80,  0,  0, 0 }; //Always 80 bytes long.
     byte[] datasize = new byte[4]; //Don't know this yet, the number is the file size - 128 (the size of the headers) laid out in little-endian.
     byte[] version =  {0,  0,  4,  0 }; //Always 0x00000400 for FSB4.
     byte[] mode =       {32,  0,  0,  0 }; //I think this is always 0x20000000 mode 0.
     byte[] zero =   {0,  0,  0,  0,  0,  0,  0,  0 }; //Just 8 bytes of zeroes. Nothing special
   */
   //Look for repeated stuff. 0000's or 1111's.
   //Set datasize byte array
   if (Platform == PC){
      unsigned char datasize [4];
      unsigned char headerPCCheck [] =
      {
            '\x46', '\x53', '\x42', '\x34',    //"FSB4"
            '\x01', '\x00', '\x00', '\x00',    //Num Samples
            '\x50', '\x00', '\x00', '\x00',    //80 bytes long
            '\x00', '\x00', '\x00', '\x00',    //DataSize - still unknown: (filesize -128)
            '\x00', '\x00', '\x04', '\x00',    //Version
            '\x20', '\x00', '\x00', '\x00',    //Mode
            '\x00', '\x00', '\x00', '\x00',    //4 zero
            '\x00', '\x00', '\x00', '\x00',    //4 zero again
      };
      int encryptedDataSize = nBufferSize-128;
      int datacarry = encryptedDataSize;

      //lay out data in little-endian format.
      
      for(int i=3; i>-1; i--)
      {
         datasize[i] = (unsigned char) (datacarry / (pow(16.0, i*2)));
         datacarry -= ((datacarry / (int) (pow(16.0, i*2)))* (int) pow(16.0, i*2));
      }
      for(int i=0; i<3> (swap) 36
         //2A xor 48 = 62 (01100010) -> (swap) 46 (01000110)
         //62 xor 48 = 2A
         //Swap byte bits of headerCheck, then xor with encrypteddata to get key.
         for(int i=0; i<=KeyLen; i++)
         {   
            if (i<KeyLen) cpKey[i] = (unsigned char) (SwapByteBits(headerPCCheck[i])^pBuffer[i]);
            else cpKey[i]=(unsigned char) 0;
         }
         //Now we can procede and examine if this key is valid.
         int checkMax;
         if (KeyLen < (32 - KeyLen))
         {
            checkMax = KeyLen;
         }
         else
            checkMax = (32-KeyLen);
         for(int i=0; i<checkMax; i++)
         {
            if (headerPCCheck[i+KeyLen] != SwapByteBits((unsigned char) (pBuffer[i+KeyLen] ^ cpKey[i%KeyLen])))
            {
               KeyLen++;
               break;
            }
            if (i == (checkMax-1))
            {
               KeyFound = 1;
               *KEY_LEN=KeyLen+1;
               *nError = 0;
               return;
            }
         }
         //if it gets through the error checking routine, we have a working key!
      }
   }
   else //platform == XBOX
   {
      unsigned char datasize[4];
      unsigned char headerXBCheck1[] =
      {
            '\x46', '\x53', '\x42', '\x34',    //"FSB4"
            '\x01', '\x00', '\x00', '\x00',    //Num Samples
            '\x00', '\x00', '\x00', '\x00',    //Still don't know this part at all
            '\x00', '\x00', '\x00', '\x00',    //This is filesize-lastpart
            '\x00', '\x00', '\x04', '\x00',    //Version
            '\x20', '\x00', '\x00', '\x00',    //Mode
            '\x00', '\x00', '\x00', '\x00',    //Zeros
            '\x00', '\x00', '\x00', '\x00',    //Again, zeros...
      };
        unsigned char headerXBCheck2[] =
      {
               '\x6d', '\x75',
               '\x6c', '\x74', '\x69',  '\x63',
               '\x68', '\x61', '\x6e',  '\x6e',
               '\x65', '\x6c', '\x20',  '\x73',
               '\x6f', '\x75', '\x6e',  '\x64',
               '\x00', '\x00', '\x00',  '\x00',
               '\x00', '\x00', '\x00',  '\x00',
               '\x00', '\x00', '\x00',  '\x00',
      };
      //set encryptedDataSize...
      while(!KeyFound)
      { 
         if (KeyLen == 32)
         {
            *nError = 9;
            return;
         }
                  //Copy missing bytes into headerCheck...
         //Indexes 50-79...
         int header2index = ((50/KeyLen)*KeyLen + 8);
         if (header2index < 50)
         {
            header2index += KeyLen;
         }
         for(int i=8; i<12; i++)
         {
            headerXBCheck1[i] = (unsigned char) SwapByteBits((unsigned char) ((SwapByteBits(headerXBCheck2[header2index-50])^(pBuffer[header2index+i-8]))^(pBuffer[i])));
         }
         //swap((swap(plain) xor cipher) xor cipher) = plain.
              unsigned char dataOffset [4];
              for(int i=0; i<4>-1; i--)
         {
                 int getByte = dataOffset[i];
                 if (getByte <0>-1; i--)
         {
                 int cursub = (datacarry / (int) (pow(16.0, i*2)));
                 datasize[i] = (unsigned char) cursub;
                 datacarry -= (cursub* (int) pow(16.0, i*2));
              }
              for(int i=0; i<4; i++)
         {
            headerXBCheck1[i+12] = datasize[i];
         }
         for(int i=0; i<KeyLen; i++)
         {
                 cpKey[i] = (unsigned char) (SwapByteBits(headerXBCheck1[i])^pBuffer[i]);
              }

              //Now we can procede and examine if this key is valid.
              int checkMax;
              if (KeyLen < (32 - KeyLen))
         {
                 checkMax = KeyLen;
              }
              else checkMax = (32-KeyLen);
              for(int i=0; i<checkMax; i++)
         {
            if (headerXBCheck1[i+KeyLen] != SwapByteBits((unsigned char) (pBuffer[i+KeyLen] ^ cpKey[i%KeyLen])))
            {
               KeyLen++;
               break;
            }
            if (i == (checkMax-1))
            {
               KeyFound = 1;
               *KEY_LEN=KeyLen+1;
               *nError = 0;
               return;
            }
         }
              //if it gets through the error checking routine, we have a working key!
      }
      *nError = 9;
      return;
   }
}
   
char SwapByteBits(unsigned char cInput)
{
   unsigned char nResult=0;

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

   return (nResult);
}

int main(int argc, char* argv[])
{
   int KEY_LEN;
   int nError = 0;
   int nLoopIdx = 0;
   int i = 0;
   int nBufferSize = 0;
   int Platform;
   struct _stat fileStat;
   FILE* inFile = NULL;
   FILE* outFile = NULL;
   unsigned char* pBuffer;
   unsigned char* pInput;
   unsigned char cpKey[34];
     
   printf ("Guitar Hero Series XEN Drcryptor)\n");
   printf ("--------------------------------\n");
   printf ("\n");

   // Check params
   if ((argc != 4)||((argv[1][1]!='x')&&(argv[1][1]!='p')))
   {
      printf ("Usage: %s <Option> <Input> <Output>\n", argv[0]);
      printf ("\n\nWhere option is:\n\n-p   for PC\n\n-x   for Xbox\n\n");
      printf ("Watch out, option is case sensitive!!\n");
      return (1);
   }

   // Set Platform
   
   if(argv[1][1]=='x') Platform=XBOX;
   else Platform=PC;
   
   // Get the file size
   nError = _stat(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);
   if (pBuffer == NULL)
   {
      printf ("Failed to allocate input 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);
   }
   printf ("Reading file (%d Bytes)... ", nBufferSize);
   fread(pBuffer, 1, nBufferSize, inFile);
   fclose(inFile);
   printf ("Done!\n");

   // Search for key

   printf("Searching for key...    \n\n");

   KeySearch(cpKey, pBuffer, nBufferSize, &KEY_LEN, Platform, &nError);

   if (nError != 0)
   {
      printf("Failed to get the key!! File cannot be decrypted now...\n");
      return -1;
   }
   else printf("Key found!\n");

   // Decrypt
   
   printf ("Decrypting...   ");
   pInput = pBuffer;
   for (nLoopIdx=0; nLoopIdx<nBufferSize; nLoopIdx++)
   {
      *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);
   free(pBuffer);
}


EXE is here: http://www.mediafire.com/file/mtwnfmzeyn3/XENFinal.exe
Back to top
View user's profile Send private message
Gyuszi999  





Joined: 06 Aug 2009
Posts: 9

PostPosted: Fri Dec 18, 2009 1:08 am    Post subject: correction Reply with quote

LOL... the forum doesn't show correctly my code:

#include <sys>
#include <sys>

that's the correct, I don't know why isn't it showing the same...

Meanwhile, I found a XEN (rockshow_1.fsb.xen) that none of the XEN decryptors work with :S:S
Back to top
View user's profile Send private message
Enet4  





Joined: 10 Sep 2009
Posts: 29

PostPosted: Wed Dec 23, 2009 12:27 pm    Post subject: Reply with quote

Now that GHWT PC was cancelled for a North American release, do you think there's still a chance to have a fully functional custom song system? We'll barely have any help from them.
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
az.ajay  





Joined: 04 Jun 2009
Posts: 26
Location: Mandvi-Kutch, India

PostPosted: Sat Dec 26, 2009 5:32 pm    Post subject: Reply with quote

Hello everyone. Please excuse for my poor English.
I have Band hero's songs, and every song has 4 tracks and 1 midi file. Means drums, guitar, rhythm and vocals, 4 separate tracks for 1 song and 1 midi file. But I don't know how to add them in game.
I'm success in adding 1 song file, but here are 4 tracks.
Please help me how did I add these files in game?
Back to top
View user's profile Send private message Yahoo Messenger MSN Messenger
danman2626  





Joined: 19 Dec 2009
Posts: 51

PostPosted: Fri Mar 12, 2010 1:03 am    Post subject: Reply with quote

customs for GH WT? fuckin sweet*thumbs up*complicated as all hell procces tho :O
_________________
ta hell with the warranty
Back to top
View user's profile Send private message Send e-mail MSN Messenger
TheKaleb0228  





Joined: 21 Mar 2010
Posts: 13

PostPosted: Sat May 08, 2010 1:28 pm    Post subject: Reply with quote

Could you use RB1 midis with RawkTour?
Back to top
View user's profile Send private message
HunterXyron1134  





Joined: 06 Dec 2008
Posts: 326
Location: Hiding in a taco.

PostPosted: Sun May 30, 2010 1:46 am    Post subject: Reply with quote

Enet4 wrote:
Now that GHWT PC was cancelled for a North American release, do you think there's still a chance to have a fully functional custom song system? We'll barely have any help from them.


???? Amazon says its In stock and shipping for PC version. If I didnt import my copy like a year ago, I would buy it from here.
_________________

My Youtube | iPhone RockBand Customs Research | My Twitter, with my GH/RB updates!
SThorpe wrote:

so did anyone get to touch Matt's Banstick? O_o

EviLize wrote:

Yeah, while he was playing pop'n I was playing around with it for a little bit.
Back to top
View user's profile Send private message Visit poster's website XBL Gamertag: TehMinja1134
ddavid007  





Joined: 31 Aug 2008
Posts: 26

PostPosted: Mon May 31, 2010 12:37 am    Post subject: Reply with quote

So, I can convert any DLC RockBand 2 song into GH:WT for PC?
If yes, then it's great. I would play any DLC I like without J-Tag my Xbox360
Back to top
View user's profile Send private message
adstermoore  





Joined: 11 Oct 2009
Posts: 117
Location: Isle of Wight, UK

PostPosted: Thu Jun 03, 2010 12:29 pm    Post subject: Reply with quote

Edit: not to worry I've worked it out now

Last edited by adstermoore on Thu Sep 02, 2010 8:55 am; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail MSN Messenger XBL Gamertag: GingerBraFace
sab999  





Joined: 29 Nov 2009
Posts: 3

PostPosted: Wed Jul 28, 2010 9:58 am    Post subject: Reply with quote

I've got a problem:

How to fix it??
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 ... , 12, 13, 14  Next
Page 13 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