From 0884e17a8ec24083082be33b82b1ddd2b28db613 Mon Sep 17 00:00:00 2001 From: N1363 Date: Fri, 25 Oct 2013 00:10:37 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=9A=E3=82=A2=E3=83=AC=E3=83=B3=E3=82=BF?= =?UTF-8?q?=E3=83=AB=E3=82=B3=E3=83=B3=E3=83=88=E3=83=AD=E3=83=BC=E3=83=AB?= =?UTF-8?q?=E8=A7=A3=E9=99=A4=E7=94=A8=E3=83=9E=E3=82=B9=E3=82=BF=E3=83=BC?= =?UTF-8?q?=E3=82=AD=E3=83=BC=E7=94=9F=E6=88=90=E3=83=84=E3=83=BC=E3=83=AB?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@755 385bec56-5757-e545-9c3a-d8741f4650f1 --- .../MakeMasterKey/src/MakeMasterKeyForCtr.cpp | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 trunk/MakeMasterKey/src/MakeMasterKeyForCtr.cpp diff --git a/trunk/MakeMasterKey/src/MakeMasterKeyForCtr.cpp b/trunk/MakeMasterKey/src/MakeMasterKeyForCtr.cpp new file mode 100644 index 0000000..6fa4fbb --- /dev/null +++ b/trunk/MakeMasterKey/src/MakeMasterKeyForCtr.cpp @@ -0,0 +1,95 @@ +#include +#include + +#define CODE_LENGTH 8 + +typedef unsigned char u8; +typedef unsigned short int u16; +typedef unsigned long u32; +typedef unsigned long long int u64; + +typedef signed char s8; +typedef signed short int s16; +typedef signed long s32; + +u32 table[0x100]; + + +//========================================================================== +// +//========================================================================== +void _Crc32Init( void ) +{ +u32 poly = 0xedba6320; // DS‚̂Ƃ« 0xedb88320; +u32 crc; + + for( u32 i = 0; i < 0x100; i++ ) + { + crc = i; + for( u32 j = 8; j > 0; j-- ) + { + if( crc & 1 ) + { + crc = (crc>>1)^poly; + } + else + { + crc >>= 1; + } + } + table[i] = crc; + } +} + +//========================================================================== +// +//========================================================================== +u32 _CalcCrc32( const u8 *src, u32 len ) +{ +u32 crc = 0xffffffff; + + while( len ) + { + crc = ((crc>>8)&0xffffffff)^table[(crc^(*src))&0xff]; + src++; + len--; + } + return crc; +} + +//========================================================================== +// +//========================================================================== +u32 _CalcMasterkey( const u8 *src ) +{ +u32 key; + + _Crc32Init(); + + //key = ((_CalcCrc32( src, CODE_LENGTH )^0xaaaa)+5313)%100000; + key = ((_CalcCrc32( src, CODE_LENGTH )^0xaaaa)+5719)%100000; + return key; +} + +//========================================================================== +// +//========================================================================== +int main( int argc, char *argv[] ) +{ +u32 masterKey; + + if ( ( argc != 2 ) || ( argv[1] == NULL ) ) + { + printf( "usage: MakeMasterKeyForCtr [date+code]\n" ); + printf( "\n" ); + printf( "example: date = Sep 8. code = 1234\n" ); + printf( " MakeMasterKeyForCtr 09081234\n" ); + return 1; + } + + masterKey = _CalcMasterkey( (const u8*)argv[1] ); + + printf( "Master Key = %05d\n", masterKey ); + + return 0; +}