首页
社区
课程
招聘
[ReverseMe挑战赛]有没有2等级??
发表于: 2014-10-1 15:57 10257

[ReverseMe挑战赛]有没有2等级??

2014-10-1 15:57
10257
#include <intrin.h>
DWORD fn(char* pbuf, int len)
{
	DWORD result = 0;
	if(len >= 8)
	{
		for(int i = 0; i < len; i++)
		{
			result = _lrotl(((((~(_lrotl(result, 3) + pbuf[i])) ^ 0x20141001) + 0x20141007) * 0xCEBEA6DA), 7);
		}
		result = ~result;

		result = ~_lrotl(result, 5);
		result ^= 0x15;
		result ^= 0x41;
		result += 0x83;
		result = ~result;
		result += 0x31;

		result = ~_lrotl(result, 5);
		result ^= 0x30;
		result ^= 0x42;
		result += 0x97;
		result = ~result;
		result += 0x32;

		result = ~_lrotl(result, 5);
		result ^= 0x26;
		result ^= 0x43;
		result += 0xA9;
		result = ~result;
		result += 0x33;

		result = ~_lrotl(result, 5);
		result ^= 0x25;
		result ^= 0x44;
		result += 0x99;
		result = ~result;
		result += 0x34;

		result = ~_lrotl(result, 5);
		result ^= 0x21;
		result ^= 0x45;
		result += 0xA7;
		result = ~result;
		result += 0x35;

		result = ~_lrotl(result, 5);
		result ^= 0x15;
		result ^= 0x46;
		result += 0xA9;
		result = ~result;
		result += 0x36;

		result = ~_lrotl(result, 5);
		result ^= 0x33;
		result ^= 0x47;
		result += 0x9C;
		result = ~result;
		result += 0x37;

		result = ~_lrotl(result, 5);
		result ^= 0x27;
		result ^= 0x48;
		result += 0x85;
		result = ~result;
		result += 0x38;

		result = ~_lrotl(result, 5);
		result ^= 0x27;
		result ^= 0x49;
		result += 0x9e;
		result = ~result;
		result += 0x39;

		result = ~_lrotl(result, 5);
		result ^= 0x2f;
		result ^= 0x4a;
		result += 0x5b;
		result = ~result;
		result += 0x3a;

		result ^= 0x19810304;
	}
	return result;
}


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 3
支持
分享
最新回复 (23)
雪    币: 7325
活跃值: (3803)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
2
标题打错了
有木有2等奖?
2014-10-1 16:00
0
雪    币: 7325
活跃值: (3803)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
3
第二版
DWORD __fastcall fn(char* pbuf, int len)
{
	DWORD result = 0;
	if(len >= 8)
	{
		for(int i = 0; i < len; i++)
		{
			result = _lrotl(((((~(_lrotl(result, 3) + pbuf[i])) ^ 0x20141001) + 0x20141007) * 0xCEBEA6DA), 7);
		}
		result = ~result;
		{
			BYTE a[10] = {0x15, 0x30, 0x26, 0x25, 0x21, 0x15, 0x33, 0x27, 0x27, 0x2F};
			BYTE b[10] = {0x83, 0x97, 0xA9, 0x99, 0xA7, 0xA9, 0x9C, 0x85, 0x9E, 0x5B};

			for(int i = 0; i < 10; i ++)
			{
				result = (~(((~_lrotl(result, 5)) ^ a[i] ^ (0x41 + i)) + b[i])) + (0x31 + i);
			}
		}
		result ^= 0x19810304;
	}
	return result;
}

2014-10-1 16:47
0
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
4
海风兄牛人 虽不中亦不远矣 其实大概意思都到位了 如果非要较真的话 通过构造某些输入还是有不同的输出 稍有些细节欠精确
2014-10-1 17:08
0
雪    币: 7325
活跃值: (3803)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
5
你的程序,BYTE和char是一样的,超过0x7F是无法输入的

DWORD __fastcall fn(BYTE* pbuf, int len)
{
  DWORD result = 0;
  if(len >= 8)
  {
    for(int i = 0; i < len; i++)
    {
      result = _lrotl(((((~(_lrotl(result, 3) + pbuf[i])) ^ 0x20141001) + 0x20141007) * 0xCEBEA6DA), 7);
    }
    result = ~result;
    {
      BYTE a[10] = {0x15, 0x30, 0x26, 0x25, 0x21, 0x15, 0x33, 0x27, 0x27, 0x2F};
      BYTE b[10] = {0x83, 0x97, 0xA9, 0x99, 0xA7, 0xA9, 0x9C, 0x85, 0x9E, 0x5B};

      for(int i = 0; i < 10; i ++)
      {
        result = (~(((~_lrotl(result, 5)) ^ a[i] ^ (0x41 + i)) + b[i])) + (0x31 + i);
      }
    }
    result ^= 0x19810304;
  }
  return result;
}
2014-10-1 17:24
0
雪    币: 7325
活跃值: (3803)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
6
5楼的应该没问题了,好累。。

TreadStone这个引擎果然强大,实现了一种更复杂的加密手段,强度大大超过了VMProtect,杜绝了VMProtect一些脆弱性的地方,值得推荐
2014-10-1 17:27
0
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
7
如果不吹毛求疵的话 其实是可以算做成功了的 不过你的代码和我手头的有差异 如果随机输入比对的话 确实有不同的结果出现 我再Check一下吧
2014-10-1 17:41
0
雪    币: 7325
活跃值: (3803)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
8
5楼的是没问题的
你直接编译出来比,立刻就能看出来了吧
2014-10-1 18:00
0
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
9
嗯 测了下 5楼的应该没问题了
2014-10-1 18:03
0
雪    币: 47147
活跃值: (20490)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
10
TreadStone保护是颇具特色的一款优秀的国产保护软件.
2014-10-1 18:20
0
雪    币: 47147
活跃值: (20490)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
11
活动结束,答案移出来了。
具体参考活动发起帖:http://bbs.pediy.com/showthread.php?t=192742
2014-10-8 10:12
0
雪    币: 103
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
恭喜海风月影!国庆快乐~
2014-10-8 10:15
0
雪    币: 42
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
恭喜海风牛,别忘了直播开箱哦。
2014-10-8 10:18
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
特来祝贺海风大神拿了第二名.
2014-10-8 13:15
0
雪    币: 67
活跃值: (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
前来围观
2014-10-8 14:58
0
雪    币: 16
活跃值: (108)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
趴着围观
2014-10-8 16:27
0
雪    币: 4
活跃值: (214)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
大牛啊,10月1号就弄出来了
2014-10-8 17:03
0
雪    币: 690
活跃值: (1826)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
18
恭喜海风兄
2014-10-8 17:47
0
雪    币: 51
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
1天就搞出来了,牛啊。
2014-10-8 17:57
0
雪    币: 2242
活跃值: (488)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
20
膜拜,一天就搞定了。
2014-10-9 23:51
0
雪    币: 94
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
完全没有思路啊
2014-10-20 00:37
0
雪    币: 97697
活跃值: (200859)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
22
海风月影
論壇 我只關心 工具版
剛看帖
你都獲獎的說 AND 最佳答案
沒說錯吧
2014-10-20 00:45
0
雪    币: 428
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
请问,TreadStone 在哪下载?
2014-11-12 12:15
0
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
24
暂时还不提供下载 如果有需要 可以联系我
2014-11-13 08:51
0
游客
登录 | 注册 方可回帖
返回
//