今天科恩面试当晚就拒了...
还是水平太低, 有一点点小委屈...
华为阿里字节都表示不要24届实习生..., 说到底还是水平不够的婉拒吧.. 废话就到这儿
看着题目名字和文件感觉应该蛮有意思, 给了个流量包, 一个ELF和一个so, 先从流量包看看
清一色的DNS流量, 感觉值得关注的一个是域名的nonce, 域名的棋子名字, 一个是IP, 还有一个是Transcation ID. 这个ID不知道是协议默认还是自定义的包, 查一下
DNS协议
看了一下就是为了对应请求和应答的, 那应该没什么用, 主要还是关注nonce和IP
这是ELF, 感觉没啥用, 函数都在so里, 除了3AB0
看出来用了很多libgtk, 看看是啥, 查了一下应该是一个GUI库, 安一个
emm, 我感觉应该是我们得搞个有图形界面的来, 换vm吧.. 但是感觉基本就是按pcap里的这个移动棋子模拟一下, 另外pawn是卒, bishop是象, rook是车(原谅我的没文化)
so里感觉这个比较有用, 回到UI去看看哪儿用的
这两个结合看可以猜测出来NextMove里肯定是不能走return2的,不然直接destroy了., 如果是0应该是继续走下一步, 1应该是胜利之类的
D120能判断出来应该是个循环变量, 游戏步数之类的, v3, v2和ptr+8虽然是匿名的, 但是感觉应该是起始位置-目标位置-移动棋子名字中的一个, 不知道顺序, 去so里看看怎么用的
注意到这了吧, 基本可以确定a2是名字, a3起始, a4目标
DNS结果要有, 第一节是0x7F, 第四节要是偶数, 第三节和0xF与之后要正好等于步数, 返回值是第四节的最高位
这个a5存了ip相关的两个东西, 还有一句跟step相关的骚话
一共十四句, 推测14步, 看看ip相关返回来干嘛了,
4AE0和4B60的参数, 暂时不关心, 我们还是考虑考虑怎么win, err, 回到ip的第四位的最高位, 需要是1
解析一下pcap, 把符合要求的都拿出来, 我个人喜欢导出成json然后直接操作json
直接筛选一下回复的包, python解析
import json
data = json.load(open("out.json", "r", encoding="utf-8"))
cnt = 0
for i in data :
block = i['_source']['layers']['dns']['Answers']
key = list(block.keys())[0]
name = block[key]["dns.resp.name"]
ip = block[key]["dns.a"]
ip = ip.split('.')
if ip[0] != '127' or int(ip[3]) & 1 == 1 :
continue
print(cnt, name, int(ip[2])&0xF, int(ip[3]) >> 7)
cnt += 1
0 knight-g1-f3.game-of-thrones.flare-on.com 4 0
1 pawn-c2-c4.game-of-thrones.flare-on.com 1 0
2 bishop-f1-e2.game-of-thrones.flare-on.com 6 0
3 bishop-c1-f4.game-of-thrones.flare-on.com 5 0
4 bishop-c6-a8.game-of-thrones.flare-on.com 11 0
5 pawn-e2-e4.game-of-thrones.flare-on.com 3 0
6 pawn-e5-e6.game-of-thrones.flare-on.com 12 0
7 queen-d1-h5.game-of-thrones.flare-on.com 13 0
8 bishop-f3-c6.game-of-thrones.flare-on.com 10 0
9 bishop-f4-g3.game-of-thrones.flare-on.com 8 0
10 pawn-e4-e5.game-of-thrones.flare-on.com 9 0
11 queen-h5-f7.game-of-thrones.flare-on.com 14 1
12 bishop-e2-f3.game-of-thrones.flare-on.com 7 0
13 knight-b1-c3.game-of-thrones.flare-on.com 2 0
14 pawn-d2-d4.game-of-thrones.flare-on.com 0 0
这个结果...过于完美, 直接把答案展示在了我眼前, 我感觉到这儿就结束了, 按它的顺序走一趟, 走到第15就win了
dns是通过改host的方式改的, 毕竟这也找不到真的dns对应去
flag:LooksLikeYouLockedUpTheLookupZ@flare-on.com
蛮有意思的题