-
-
[原创]看雪 2018CTF 第7题 wp
-
发表于: 2018-6-30 17:33 3329
-
先看整体结构
这道题的整体结构很简单,输入16字节,转成数字,以此数据计算下一轮数据,得到结果再进行下一轮
每轮取3个数字组成 A * 40H * 40H + B*40H + C ,用这个数据查很大的表
输入--->第一轮结果---->第二轮结果---->....... 最终结果
这类题显然方法是两种
1.正向循环 (因为表很大,这种计算要很多时间)
2.反向逐一计算(选用这种计算速度快)
使用方法2,就一定要保证数据表是有规律的,单位内无重复
首先看个位 0x00 - 0x40
第1个40H是无重复的,写工具查看,验证后面每个40H都是无重复的
即在单位范围内,0-3F内,没有相同的值
同理再看十位,百位,都是无重复的,这样逆向表法就是可能的了
------------------------
先看他的计算规则吧,输入bcdefghijklmnopq
这样转换完之后会是 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10,方便看每次取了哪些数据计算了
第一轮:
第一个字节处理后
第二个字节
第三个字节
...一共16个字节都记录下来
----------
先当自己是最后一次计算吧,有如下关系
记录下来的 最终结果
01 02 03 14
04 05 01 22
06 07 01 1E
06 08 02 10
05 07 02 38
09 03 04 30
0A 03 05 18
08 0B 04 10
09 0D 06 04
0C 0E 07 1A
0D 0E 08 24
0C 0F 0A 08
0F 09 0B 02
10 0A 0B 26
10 0C 0D 38
10 0E 0F 2A
01 02 03 14
04 05 01 22
06 07 01 1E
06 08 02 10
05 07 02 38
09 03 04 30
0A 03 05 18
08 0B 04 10
09 0D 06 04
0C 0E 07 1A
0D 0E 08 24
0C 0F 0A 08
0F 09 0B 02
10 0A 0B 26
10 0C 0D 38
10 0E 0F 2A
T[0x1000 * a1 +
0x40 * a2 + a3] = b1 //a1表示第1个输入,b1表示第1个输出
T[0x1000 * a4 + 0x40 * a5 + a1 ] = b2
T[0x1000 * a4 + 0x40 * a5 + a1 ] = b2
T[0x1000 * a6 +
0x40 * a6 + a1 ] = b3
...
T[0x1000 * a10 +
0x40 * ae + af ] = b0
这里有16个未知数要求 a1-a10,
已知
b1-b10
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2018-6-30 17:38
被瞧红尘编辑
,原因:
赞赏
他的文章
- [原创] 2018国庆题叹息之墙WP 3853
- [原创]看雪 2018CTF 第7题 wp 3330
- [原创] ctf2018 第四题wp 2624
- [原创] 第二题wp 3988
谁下载
看原图
赞赏
雪币:
留言: