4/26/2019
Posted by 
Archived
  1. Nhk 2038 Bcas Rarity
  2. Nhk 2038 Bcas Rar

フォーマット は以下の通り。ひとつの放送局は1行で記述 項目と項目の間はスペースを.

Nhk

The b-cas system has been compromised = Free wow wow for those of you with no morals

So there isn't much info in English out there yet, but the BS card system has been hacked. 2ch is where you can find all the details, but any idiot with a card reader and a windows machine can get free BS channels (wow wow, starz etc) with minimal effort. Looks like the B-CAS card company was bloated Ama-kudari, and didn't do anything to harden security for the past 10 years or so. The more you read, the crazier it gets. Sounds like the whole system might just have to be scrapped.

more links: http://toro.2ch.net/test/read.cgi/avi/1340051257/http://www.marumo.ne.jp/http://zirai123.blog.fc2.com/blog-entry-136.html

69% Upvoted
Permalink

Join GitHub today

GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.

Sign up

Nhk 2038 Bcas Rarity

Find file Copy path
Cannot retrieve contributors at this time
#include<Windows.h>
#include<stdio.h>
#include<conio.h>
#include'Global.h'
#include'Generator.h'
#include'Decoder.h'
#include'Keyset.h'
#include'Keys.h'
#include'Crypto.h'
#include'Manager.h'
staticint DateState;
staticconstchar * const ExpiryDate[7] = {
'+7 days',
'+15 days',
'+30 days',
'+90 days',
'+180 days',
'+365 days',
'2038',
};
static u8 CardType;
static u16 ConvertDateToMJD(u16 Year, u8 Month, u8 Day)
{
u32 l = 0;
u32 md, yd;
if ((Month 1) (Month 2))
l = 1;
md = (u32)(((double)Month + 1 + l * 12) * 30.6001);
yd = (u32)(((double)(Year - 1900) - l) * 365.25);
return (14956 + Day + md + yd);
}
staticvoidConvertMJDToDate(u16 MJD, SYSTEMTIME *Time)
{
u32 y1 = static_cast<u32>((static_cast<double>(MJD) - 15078.2) / 365.25);
u32 y1r = static_cast<u32>(365.25 * static_cast<double>(y1));
u32 m1 = static_cast<u32>((static_cast<double>(MJD) - 14956.1 - y1r) / 30.6001);
u32 m1r = static_cast<u32>(30.6001 * static_cast<double>(m1));
Time->wYear = y1 + 1900;
Time->wMonth = m1 - 1;
Time->wDay = MJD - 14956 - y1r - m1r;
if ((m1 14) (m1 15)) {
Time->wMonth -= 12;
++Time->wYear;
}
}
staticvoidPrintMenu(void)
{
printf('%s%sF4 Expiry in %sn', CardType != kType_C ? 'F1 Dump card ' : '', CardType <= kType_B ? 'F2 Print tiers F3 Print email ' : '', ExpiryDate[DateState]);
printf('n');
printf(' W S N A n');
printf(' O H E - H l n');
printf(' W V 2 T K l n');
printf('-------------*---*---*---*---*---*---*n');
if (CardType != kType_C) {
printf('Update 1 2 3 4 5 n');
printf('Invalidate q w e r t n');
printf('Delete email a s d f g h n');
}
printf('Activate z x c v b n');
printf('n');
}
intmain(int argc, char *argv[])
{
int Index = 0;
int Arg = 1;
char *VirtualCard = NULL;
BCAS::Manager::Abstract *Card;
argc--;
while (argc > 0) {
if (strcmp(argv[Arg], '-virtual') 0) {
if (argc 1) {
printf('Missing file parameter.n');
return1;
}
VirtualCard = _strdup(argv[++Arg]);
argc--;
} elseif (strcmp(argv[Arg], '-reader') 0) {
if (argc 1) {
printf('Missing file parameter.n');
return1;
}
Index = atoi(argv[++Arg]);
argc--;
} elseif (strcmp(argv[Arg], '-list') 0) {
Index = -1;
} else {
printf('Invalid parameter: %sn', argv[Arg]);
return1;
}
Arg++;
argc--;
}
if (VirtualCard NULL) {
SCARDCONTEXT Ctx;
LONG Result;
char *Reader = NULL;
Result = SCardEstablishContext(SCARD_SCOPE_USER, NULL, NULL, &Ctx);
if (Result != SCARD_S_SUCCESS) {
printf('Failed to establish context, error: %08xn', Result);
return1;
}
DWORD Count = SCARD_AUTOALLOCATE;
LPTSTR Readers = NULL;
Result = SCardListReaders(Ctx, NULL, (LPTSTR)&Readers, &Count);
if (Result != SCARD_S_SUCCESS) {
if (Result SCARD_E_NO_READERS_AVAILABLE)
printf('No card readers available.n');
else
printf('Failed to list card readers, error: %08xn', Result);
SCardReleaseContext(Ctx);
return1;
}
LPTSTR R = Readers;
Count = 0;
while (*R != 0) {
if (Index Count) {
Reader = _strdup(R);
break;
} elseif (Index -1) {
printf('Reader %d: %sn', Count, R);
}
R += strlen(R) + 1;
Count++;
}
SCardFreeMemory(Ctx, Readers);
if (Reader NULL) {
if (Index != -1)
printf('Cannot find a reader at index %dn', Index);
SCardReleaseContext(Ctx);
return1;
}
BCAS::Manager::Card *RealCard = new BCAS::Manager::Card;
RealCard->SetReader(Reader);
Card = RealCard;
} else {
BCAS::Manager::Virtual *Dump = new BCAS::Manager::Virtual;
Dump->SetReader(VirtualCard);
Card = Dump;
}
BCAS::Keys::RegisterAll();
Card->Init();
BCAS::Manager::Ops *Ops = new BCAS::Manager::Ops;
Ops->SetCard(Card);
BCAS::Manager::Manager *Mgr = newBCAS::Manager::Manager(Ops);
bool Quit = false;
u16 Date;
SYSTEMTIME Time;
GetSystemTime(&Time);
Date = ConvertDateToMJD(Time.wYear, Time.wMonth & 0xff, Time.wDay & 0xff) + 7;
while (!Quit) {
bool NewCard = false;
bool HasCard;
u16 Expiry;
HasCard = Card->WaitForEvent(NewCard);
if (NewCard true) {
Mgr->PrintCardInformation(CardType);
if (CardType kType_INVALID)
break;
PrintMenu();
continue;
}
if (HasCard false) {
if (_kbhit()) {
int Selection = _getch();
if (Selection 27) {
break;
}
if (Selection 0)
_getch();
}
continue;
}
int Key = _getch();
switch (Key) {
case27:
Quit = true;
break;
case0:
Key = _getch();
switch (Key) {
case59:
Mgr->DumpMode();
break;
case60:
Mgr->PrintEntitlements();
break;
case61:
Mgr->PrintEmail();
break;
case62:
DateState = (DateState + 1) % 7;
switch (DateState) {
case0:
Expiry = 7;
break;
case1:
Expiry = 15;
break;
case2:
Expiry = 30;
break;
case3:
Expiry = 90;
break;
case4:
Expiry = 180;
break;
case5:
Expiry = 365 * 2;
break;
case6:
break;
}
if (DateState != 6) {
GetSystemTime(&Time);
Date = ConvertDateToMJD(Time.wYear, Time.wMonth & 0xff, Time.wDay & 0xff) + Expiry;
} else {
Date = 0xffff;
}
break;
default:
printf('%dn', Key);
break;
}
break;
// UpdateTiers
case49:
Mgr->AddEntitlement(BCAS::Keys::KEYSET_WOWOW, Date);
break;
case50:
Mgr->AddEntitlement(BCAS::Keys::KEYSET_STARCHANNELHD, Date);
break;
case51:
Mgr->AddEntitlement(BCAS::Keys::KEYSET_E2_110CS, Date);
break;
case52:
Mgr->AddEntitlement(BCAS::Keys::KEYSET_SAFETYNET, Date);
break;
case53:
Mgr->AddEntitlement(BCAS::Keys::KEYSET_NHK, Date);
break;
// InvalidateTiers
case113:
Mgr->InvalidateEntitlement(BCAS::Keys::KEYSET_WOWOW);
break;
case119:
Mgr->InvalidateEntitlement(BCAS::Keys::KEYSET_STARCHANNELHD);
break;
case101:
Mgr->InvalidateEntitlement(BCAS::Keys::KEYSET_E2_110CS);
break;
case114:
Mgr->InvalidateEntitlement(BCAS::Keys::KEYSET_SAFETYNET);
break;
case116:
Mgr->InvalidateEntitlement(BCAS::Keys::KEYSET_NHK);
break;
// DeleteEmail
case97:
Mgr->DeleteEmail(BCAS::Keys::KEYSET_WOWOW);
break;
case115:
Mgr->DeleteEmail(BCAS::Keys::KEYSET_STARCHANNELHD);
break;
case100:
Mgr->DeleteEmail(BCAS::Keys::KEYSET_E2_110CS);
break;
case102:
Mgr->DeleteEmail(BCAS::Keys::KEYSET_SAFETYNET);
break;
case103:
Mgr->DeleteEmail(BCAS::Keys::KEYSET_NHK);
break;
case104:
Mgr->DeleteEmail(BCAS::Keys::KEYSET_EMAIL);
break;
// ActivateTrial
case122:
Mgr->ActivateTrial(BCAS::Keys::KEYSET_WOWOW, false, Date);
Mgr->ActivateTrial(BCAS::Keys::KEYSET_WOWOW, true, Date);
break;
case120:
Mgr->ActivateTrial(BCAS::Keys::KEYSET_STARCHANNELHD, false, Date);
Mgr->ActivateTrial(BCAS::Keys::KEYSET_STARCHANNELHD, true, Date);
break;
case99:
Mgr->ActivateTrial(BCAS::Keys::KEYSET_E2_110CS, false, Date);
Mgr->ActivateTrial(BCAS::Keys::KEYSET_E2_110CS, true, Date);
break;
case118:
Mgr->ActivateTrial(BCAS::Keys::KEYSET_SAFETYNET, false, Date);
Mgr->ActivateTrial(BCAS::Keys::KEYSET_SAFETYNET, true, Date);
break;
case98:
Mgr->ActivateTrial(BCAS::Keys::KEYSET_NHK, false, Date);
Mgr->ActivateTrial(BCAS::Keys::KEYSET_NHK, true, Date);
break;
default:
printf('%dn', Key);
break;
}
if (!Quit)
PrintMenu();
}
return0;
}

Nhk 2038 Bcas Rar

  • Copy lines
  • Copy permalink