EveryDay.DevUp

[Unity] 프레임워크 개발 - 7. 암호화 변수 본문

FrameWork

[Unity] 프레임워크 개발 - 7. 암호화 변수

EveryDay.DevUp 2020. 5. 5. 15:43

게임 내부에서 중요한 데이터는 메모리 해킹이 되지 않도록 암호화하여 사용할 수 있도록 함

: 암복호화 시에 오버헤드가 있기 때문에 중요한 곳에서만 사용해야함

: 암복호화 되는 데이터와, 즉시 저장되는 변수를 나누어 상황에 따라 사용할 수 있도록 함

using System;

public class CryptoValue<T>
{
	string encryptData = string.Empty;
	T data;

	public void Set(T value)
	{
		CryptoComponent cryptoComponent = Game.Instance.crypto;
		encryptData = Crypto.EncryptAESbyBase64Key( value.ToString(), cryptoComponent.aesBase64Key, cryptoComponent.aesBase64IV );
		data = value;
	}

	public T GetUnSafeData()
	{
		return (T)Convert.ChangeType( data, typeof( T ) );
	}

	public T Get()
	{
		CryptoComponent cryptoComponent = Game.Instance.crypto;
		return (T)Convert.ChangeType( Crypto.DecryptAESByBase64Key( encryptData, cryptoComponent.aesBase64Key, cryptoComponent.aesBase64IV ), typeof( T ));
	}
}
CryptoValue<int> attack = new CryptoValue<int>();

private void Start()
{
	attack.Set( 10 );

	Debug.LogWarning( " data : " + attack.Get() + " unsafeData : " + attack.GetUnSafeData() );
}

▶ 게임암호화에 대한 기본 지식

https://everyday-devup.tistory.com/24

 

[Unity] 게임 암호화

게임의 암호화는 유저의 데이터를 지키고, 게임을 서비스 하면서 안정적인 운영을 할 수 있도록 도와주는 것 ▶ 메모리 핵, 앱 변조, 스피드 핵, 데미지 핵과 같은 많은 핵들이 존재하고 방어하는 입장 보다는 공..

everyday-devup.tistory.com

▶ 암호화 변수에 사용한 AES 암호화

https://everyday-devup.tistory.com/27

 

[Unity] 프레임워크 개발 - 5. 암호화 ( 대칭형 암호화 AES )

게임에서 사용하는 암호화를 실제 코드로 구현하여 프레임워크에 추가 자세한 이론은 하단의 링크를 참고 https://everyday-devup.tistory.com/24 [Unity] 게임 암호화 게임의 암호화는 유저의 데이터를 지키고,..

everyday-devup.tistory.com