Más contenido relacionado La actualidad más candente (20) Similar a 【Unity道場スペシャル 2017京都】スマホゲーム開発者なら知っておくべきチートのリスク&対策 (6) Más de Unity Technologies Japan K.K. (20) 【Unity道場スペシャル 2017京都】スマホゲーム開発者なら知っておくべきチートのリスク&対策24. IL2CPP:Intermediate Language to C Plus Plus
IL2CPP は Unity が開発したスクリプティングバックエンドで、ある種のプラットフォーム
のプロジェクトを作成するときに、Mono の代わりに使用できます。IL2CPP を使ってプロ
ジェクトを作成することを選択すると、Unity は選択したプラットフォームのネイティブ
バイナリファイル (.exe, apk, .xap など) を作成する前に、スクリプトからの IL コード
(CIL、Common Intermediate Language、共通中間言語) を変換し C++ コードに組み立て
ます。(Unityマニュアルより)
IL2CPPを使ってネイティブファイルで出力するって?
→C#(中間言語コード)をC++(ネイティブコード)に変換する仕組み
記述したコードは libil2cpp.so(SOファイル)に変換される。
53. VRアーケードゲームにおけるセキュリティリスク
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Form1->Height = 167;
if ( RasCtrl1->UseSpValue == -1 ) // True
CheckBox1->Checked = true;
else
RasCtrl1->UseSpValue = false;
Edit5->Text = RasCtrl1->UserName;
Edit6->Text = RasCtrl1->Password;
Edit2->Text = RasCtrl1->SpTelephoneNumber;
Edit3->Text = RasCtrl1->SpDomainName;
Edit4->Text = RasCtrl1->SpCallBackNumber;
RasCtrl1->ReDialTimes = 1;
RasCtrl1->ReDialInterval = 10;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BtnOptionClick(TObject *Sender)
{
if ( BtnOption->Caption == "korenya >&>" )
BtnOption->Caption = "&<<mikketa";
BtnOption->Caption = "dongle_ninshiki >&>";
}
ListBox1->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BtnConnectClick(TObject *Sender)
{
//nyannyanya
ButtonMode( false );
//NTRasmon.exetatiate
// On Error Resume Next
// If m_Rasmon = 0 Then
// m_Rasmon = Shell("rasmon.exe", vbNormalFocus)
// End If
// On Error GoTo 0
Form2->Caption = RasCtrl1->EntryName;
RasCtrl1->UserName = Edit5->Text;
RasCtrl1->Password = Edit6->Text;
if ( CheckBox1->Checked == false )
{
RasCtrl1->UseSpValue = -1;
RasCtrl1->SpTelephoneNumber = Edit2->Text;
認証APIを複数箇所で
呼び出していても…
54. VRアーケードゲームにおけるセキュリティリスク
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Form1->Height = 167;
if ( RasCtrl1->UseSpValue == -1 ) // True
CheckBox1->Checked = true;
else
RasCtrl1->UseSpValue = false;
Edit5->Text = RasCtrl1->UserName;
Edit6->Text = RasCtrl1->Password;
Edit2->Text = RasCtrl1->SpTelephoneNumber;
Edit3->Text = RasCtrl1->SpDomainName;
Edit4->Text = RasCtrl1->SpCallBackNumber;
RasCtrl1->ReDialTimes = 1;
RasCtrl1->ReDialInterval = 10;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BtnOptionClick(TObject *Sender)
{
if ( BtnOption->Caption == "korenya >&>" )
BtnOption->Caption = "&<<mikketa";
BtnOption->Caption = "dongle_ninshiki >&>";
}
ListBox1->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BtnConnectClick(TObject *Sender)
{
//nyannyanya
ButtonMode( false );
//NTRasmon.exetatiate
// On Error Resume Next
// If m_Rasmon = 0 Then
// m_Rasmon = Shell("rasmon.exe", vbNormalFocus)
// End If
// On Error GoTo 0
Form2->Caption = RasCtrl1->EntryName;
RasCtrl1->UserName = Edit5->Text;
RasCtrl1->Password = Edit6->Text;
if ( CheckBox1->Checked == false )
{
RasCtrl1->UseSpValue = -1;
RasCtrl1->SpTelephoneNumber = Edit2->Text;
クラッキングツールや
熟練のクラッカーによって
呼び出し自体を無効にされる
認証APIを複数箇所で
呼び出していても…