C言語交流フォーラム ~ mixC++ ~


http://dixq.net/forum/blog.php?u=53&sid=84ebcdf0bd3ebadfa072f1bca1e90297

作成者:  Dixq (管理人) [ 2017年5月17日(水) 08:22 ]
日記名:  アメリカに着きました

来ちゃいましたよ、U・S・A!
シリコンバレーとかテレビでしか見たことなかった(?_?;

現地の人がWelcomeで4時間位ずっと話してました!
案外ジョークで笑ったりできて楽しい(笑)

作成者:  Dixq (管理人) [ 2017年5月07日(日) 18:40 ]
日記名:  新車購入しました!

人生で初めての新車です!
20172224.jpg
20172224.jpg (118.84 KB) 表示数: 10 回

自動で車庫入れしてくれるとか、アラウンドモニターとか欲しかった機能が満載!
納車が楽しみです!

作成者:  Dixq (管理人) [ 2017年5月04日(木) 03:16 ]
日記名:  改竄されない変数の作り方

龍神録でお金の金額を改竄されるので
http://dixq.net/g/h_10.html
変数を常に排他的論理和でXOR暗号化していました。
しかしそれだけでは突破されてしまいました。

なので今回はint型の代わりにEncryptedIntで変数を保持するようにしました。
EncryptedIntクラスの中身はこのようになっています。
演算子オーバーロード部は省略していますが、普通のint型と同じように使えます。

ただし変数に値を代入するたびに変数のアドレスが変わりますので改竄を難しくしてあり
リンク先のような「スペシャルねこまんま57号」で値を絞っていくような方法には効果的だと思っています。

コード[C++]: 全て選択
1
2
3
4
5
6
7
8
9
#pragma once
class EncryptedInt
{
    int* value;
public:
    EncryptedInt();
    void set(int value);
    int  get();
};

コード[C++]: 全て選択
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "EncryptedInt.h"
#include <DxLib.h>
 
const static int KEY = 0x0123'4567'89AB'CDEF; //XOR暗号キー'
 
EncryptedInt::EncryptedInt()
{
    value = new int;
    *value = 0 ^ KEY;
}
 
EncryptedInt::~EncryptedInt()
{
    delete value;
}
 
void EncryptedInt::set(int v)
{
    int n = GetRand(3000); //適当にnew繰り返す分
    int** pool = new int*[n];
 
    int tmp = *value;
 
    for (int i = 0; i<n; i++) {
        pool[i] = new int;
    }
 
    delete value;
    value = new int;
    *value = v ^ KEY;
 
    for (int i = 0; i<n; i++) {
        delete pool[i];
    }
    delete[] pool;
}
 
int EncryptedInt::get()
{
    return (*value) ^ KEY;
}


思いつきではこれくらいですが、演算子オーバーロードして普通のint型として使えるようにしておけば
改竄されたくない値は全部これ使えばいいってことになりますね。
で、安全性を高めたいんですが、もっと解析が困難になる方法ありませんかね?

作成者:  Dixq (管理人) [ 2017年4月26日(水) 23:30 ]
日記名:  努力と苦労の厚み

制作中のゲーム、かれこれ制作から1年半。
やっとストーリーが完成し漫画部が出来上がりました。
2017-04-26 22.55.18.jpg
2017-04-26 22.55.18.jpg (2.17 MB) 表示数: 22 回
_003.png
_003.png (680.83 KB) 表示数: 32 回

印刷してみたらかなりの厚さになり今までの苦労の重みを感じます。
ベータテスト開始は5月31日!
頑張るぞ!

#ラスボスもいい感じに仕上がっています
ryubi.png
ryubi.png (150.13 KB) 表示数: 24 回


作成者:  Dixq (管理人) [ 2017年4月17日(月) 22:41 ]
日記名:  コード量66500行突破

現在制作中の四聖龍神録2のコードステップ数をカウントしてみました。
使ったツールは「汎用ラインカウンター」

出力された行数は・・

.png
.png (2.03 KB) 表示数: 694 回


66500行でした!
完成時は8万行位かもしれません。
これは家でプライベートで書いたソフトとしては過去最高。

多分学生の頃のピュアCライクな書き方だと破綻してたでしょう・・オブジェクト指向サマサマです。

All times are UTC + 9 hours

Powered by phpBB © 2002, 2006 phpBB Group
www.phpbb.com

Blogs powered by User Blog Mod © EXreaction
www.lithiumstudios.org