【手游】魔天记 美术资源加密分析

0x00 先用WinHex看看魔天记的资源文件


我们发现有些资源的文件头前面都加了“fangcunzip” 姑且理解为加密的标识


0x01 在IDA中反汇编\lib\armeabi\libgame.so文件,分析一下,搜索一下字符串“fangcunzip”


双击进入“fangcunzip”所对应的地址,按F5看看伪代码


经过上面的分析后,发现其实解密很简单 就是异或+右移运算


0x02 分析完 那就直接上代码解析资源(C# 代码片段)

private void ReadFile(FileInfo f)
{
	FileStream inStream = new FileStream(f.FullName, FileMode.Open, FileAccess.ReadWrite);

	byte[] bytes = new byte[inStream.Length];
	inStream.Read(bytes, 0, bytes.Length);
	inStream.Close();

	if (Encoding.Default.GetString(bytes).Contains("fangcunzip"))
	{
		byte[] resBytes = new byte[bytes.Length - 0xA];
		Array.Copy(bytes, 0xA, resBytes, 0, resBytes.Length);

		byte[] decryptBytes = DecryptData(resBytes);
		OutResFile(decryptBytes, f.FullName);
	}
}

private byte[] DecryptData(Byte[] bytes)
{
	string key = "notabdc@fangcun.com";
	byte[] keyBytes = Encoding.Default.GetBytes(key);
	int shrKey = 0;

	for (int i = 0; i < bytes.Length; i++)
	{
		byte xorKey = keyBytes[i % keyBytes.Length];
		shrKey = 0x343FD * shrKey + 0x269EC3;
		bytes[i] = (byte)(bytes[i] ^ (xorKey ^ ((2 * shrKey) >> 17)));
	}

	return bytes;
}


资源提取源码

链接:http://pan.baidu.com/s/1nuKidHR 密码:6ic3
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值