[MISC]


EN-US

This challenge provides a jpg file and a pklg file. The jpg is shown a part of string on LEGO EV3 device. Length of the string, I guess, might be 58. EV3 is supported USB or Bluetooth connection. Bluetooth connection is hinted in the pklg file opened with Wireshark. Transmission is wored between two RFCOMM protocol entities. There are two types in all RFCOMM packages. Much attention should be focused on "Sent", while the "Rcvd" packages are botrh same like each other.

There are three different length of packages: 32, 33, 34. After analysising, I notice three key position, shown below (I called them in turn as: Order in group, Group number, Data):

if length == 32:

      Order in group        0x81  Group number  0x84  Data

if length == 33:

0x81  Order in group        0x81  Group number  0x84  Data

if length == 34:

0x82  Order in group  0x00  0x81  Group number  0x84  Data

Sort them by Group number at first. If equal, sorted by Order in group

h,b0017 2711 0a 28 68
i,b0017 2711 14 28 69
t,b0017 2711 1e 28 74
c,c0018 2912 28 28 63
o,c0018 2912 32 28 6f
n,c0018 2912 3c 28 6e
{,c0018 2912 46 28 7b
m,c0018 2912 50 28 6d
1,c0018 2912 5a 28 31
n,c0018 2912 64 28 6e
d,c0018 2912 6e 28 64
5,c0018 2912 78 28 35
t,d0019 2b13 82 28 74
0,d0019 2b13 8c 28 30
r,d0019 2b13 96 28 72
m,d0019 2b13 a0 28 6d _,b0017 2711 0a 36 5f
c,b0017 2711 14 36 63
o,b0017 2711 1e 36 6f
m,c0018 2912 28 36 6d
m,c0018 2912 32 36 6d
u,c0018 2912 3c 36 75
n,c0018 2912 46 36 6e
i,c0018 2912 50 36 69
c,c0018 2912 5a 36 63
a,c0018 2912 64 36 61
t,c0018 2912 6e 36 74
i,c0018 2912 78 36 69
o,d0019 2b13 82 36 6f
n,d0019 2b13 8c 36 6e
_,d0019 2b13 96 36 5f
a,d0019 2b13 a0 36 61 n,b0017 2711 0a 44 6e
d,b0017 2711 14 44 64
_,b0017 2711 1e 44 5f
f,c0018 2912 28 44 66
i,c0018 2912 32 44 69
r,c0018 2912 3c 44 72
m,c0018 2912 46 44 6d
w,c0018 2912 50 44 77
a,c0018 2912 5a 44 61
r,c0018 2912 64 44 72
e,c0018 2912 6e 44 65
_,c0018 2912 78 44 5f
d,d0019 2b13 82 44 64
e,d0019 2b13 8c 44 65
v,d0019 2b13 96 44 76
e,d0019 2b13 a0 44 65 l,b0017 2711 0a 52 6c
o,b0017 2711 14 52 6f
p,b0017 2711 1e 52 70
e,c0018 2912 28 52 65
r,c0018 2912 32 52 72
_,c0018 2912 3c 52 5f
k,c0018 2912 46 52 6b
i,c0018 2912 50 52 69
t,c0018 2912 5a 52 74
},c0018 2912 64 52 7d

ZH-CN

题目给了一个图片和一个流量包。

图片给了一个乐高LEGO EV3设备。屏幕上有"hitcon{"开头的字样,中间有单独字符和间隔,看来是关键是要找字符了。顺带根据间隔的位置,大致数出来每行可能有16个字符,最后一行是10个字符,一共是58个。查了一下这个设备,支持USB、蓝牙等方式连接,然后再流量包里也看到被wireshark识别出来的HCI和RFCOMM。数量最多的那种包可能只是一个调试器日志。其他信息,可以看到出题人是用mac下的python连接的,不过这没什么用。

简单介绍一下这几个协议的关系。

所以基本确定了数据在RFCOMM协议中。基本为两种包,一种是发送,另一个是接受确认。接受确认基本都一样,很短,辨识度很高,所以不会有信息。就剩下sent发送包。然后就找到了"{"和"}",信息在send里,基本就坐实了。

send分为三种长度,分别是32,33,34。

三种数据包的如下

圈出来三者的含义我姑且定义为分别表示了组内序号,组号,字符:

变化的部分有价值的主要是组内序号的部分

32的:直接是组内讯号

33的:组内序号前加了0x81

34的:组内序号前加了0x82,序号后加了0x00

摘出来数据后排序即可。至此解出。下附结果

h,b0017 2711 0a 28 68
i,b0017 2711 14 28 69
t,b0017 2711 1e 28 74
c,c0018 2912 28 28 63
o,c0018 2912 32 28 6f
n,c0018 2912 3c 28 6e
{,c0018 2912 46 28 7b
m,c0018 2912 50 28 6d
1,c0018 2912 5a 28 31
n,c0018 2912 64 28 6e
d,c0018 2912 6e 28 64
5,c0018 2912 78 28 35
t,d0019 2b13 82 28 74
0,d0019 2b13 8c 28 30
r,d0019 2b13 96 28 72
m,d0019 2b13 a0 28 6d _,b0017 2711 0a 36 5f
c,b0017 2711 14 36 63
o,b0017 2711 1e 36 6f
m,c0018 2912 28 36 6d
m,c0018 2912 32 36 6d
u,c0018 2912 3c 36 75
n,c0018 2912 46 36 6e
i,c0018 2912 50 36 69
c,c0018 2912 5a 36 63
a,c0018 2912 64 36 61
t,c0018 2912 6e 36 74
i,c0018 2912 78 36 69
o,d0019 2b13 82 36 6f
n,d0019 2b13 8c 36 6e
_,d0019 2b13 96 36 5f
a,d0019 2b13 a0 36 61 n,b0017 2711 0a 44 6e
d,b0017 2711 14 44 64
_,b0017 2711 1e 44 5f
f,c0018 2912 28 44 66
i,c0018 2912 32 44 69
r,c0018 2912 3c 44 72
m,c0018 2912 46 44 6d
w,c0018 2912 50 44 77
a,c0018 2912 5a 44 61
r,c0018 2912 64 44 72
e,c0018 2912 6e 44 65
_,c0018 2912 78 44 5f
d,d0019 2b13 82 44 64
e,d0019 2b13 8c 44 65
v,d0019 2b13 96 44 76
e,d0019 2b13 a0 44 65 l,b0017 2711 0a 52 6c
o,b0017 2711 14 52 6f
p,b0017 2711 1e 52 70
e,c0018 2912 28 52 65
r,c0018 2912 32 52 72
_,c0018 2912 3c 52 5f
k,c0018 2912 46 52 6b
i,c0018 2912 50 52 69
t,c0018 2912 5a 52 74
},c0018 2912 64 52 7d

ev3_basic——HITCON CTF 2018的更多相关文章

  1. X-MAS CTF 2018 - Crypto - Hanukkah

    参考链接 https://ctftime.org/task/7321 https://github.com/VoidHack/write-ups/tree/master/X-MAS%20CTF%202 ...

  2. Hitcon 2016 Pwn赛题学习

    PS:这是我很久以前写的,大概是去年刚结束Hitcon2016时写的.写完之后就丢在硬盘里没管了,最近翻出来才想起来写过这个,索性发出来 0x0 前言 Hitcon个人感觉是高质量的比赛,相比国内的C ...

  3. CTF各种资源:题目、工具、资料

    目录 题目汇总 Reverse 签到题 Web Web中等难度 Crypto 基础网站 各类工具 综合 Web Payloads 逆向 Pwn 取证 题目汇总 这里收集了我做过的CTF题目 Rever ...

  4. 萌新带你开车上p站(番外篇)

    本文由“合天智汇”公众号首发,作者:萌新 前言 这道题目应该是pwnable.kr上Toddler's Bottle最难的题目了,涉及到相对比较难的堆利用的问题,所以拿出来分析. 登录 看看源程序 程 ...

  5. ctf-HITCON-2016-houseoforange学习

    目录 堆溢出点 利用步骤 创建第一个house,修改top_chunk的size 创建第二个house,触发sysmalloc中的_int_free 创建第三个house,泄露libc和heap的地址 ...

  6. 【攻防世界】open-source

    难度系数: 3.0 题目来源: Pediy CTF 2018 题目描述:菜鸡发现Flag似乎并不一定是明文比较的 先用:PE查壳,发现没有

  7. 攻防世界 reverse 新手练习区

    1.re1 DUTCTF IDA shift+F12 查看字符串 DUTCTF{We1c0met0DUTCTF} 2.game ZSCTF zsctf{T9is_tOpic_1s_v5ry_int7r ...

  8. CTF 湖湘杯 2018 WriteUp (部分)

    湖湘杯 2018 WriteUp (部分),欢迎转载,转载请注明出处! 1.  CodeCheck(WEB) 测试admin ‘ or ‘1’=’1’# ,php报错.点击登录框下面的滚动通知,URL ...

  9. 2018 巅峰极客CTF misc writeup

    flows 拿到一个pcap包,用wireshark打开,发现是USB协议,尝试在kali下使用tshark提取,提取失败,发现异常.回到wireshark分析数据.在其中一个数据包中发现了tip 把 ...

随机推荐

  1. 今日Java——Cay Horstmann访谈

    这是本人在InfoQ中文站审校的文章,原文链接是:http://www.infoq.com/cn/articles/java_cay_horstmann,感觉内容很不错,分享给大家看看. 近日Info ...

  2. c++多线程——锁技巧

    [转自]here 编写程序不容易,编写多线程的程序更不容易.相信编写过多线程的程序都应该有这样的一个痛苦过程,什么样的情况呢?朋友们应该看一下代码就明白了, void data_process() { ...

  3. linux 文件编码问题

    iconv -f UTF- -t gb18030 file_input -o file_output 上述命令不一定有用. 大概了解下文件编码,和vim里面的编码情况. 1 字符编码基础知识 字符编码 ...

  4. 成员函数指针与高效C++委托 (delegate)

    下载实例源代码 - 18.5 Kb 下载开发包库文件 - 18.6 Kb 概要 很遗憾, C++ 标准中没能提供面向对象的函数指针. 面向对象的函数指针也被称为闭包(closures) 或委托(del ...

  5. 【BZOJ3328】PYXFIB 数论+矩阵乘法

    [BZOJ3328]PYXFIB Description Input 第一行一个正整数,表示数据组数据 ,接下来T行每行三个正整数N,K,P Output T行,每行输出一个整数,表示结果 Sampl ...

  6. 复杂度O(n)计算

    https://blog.csdn.net/daijin888888/article/details/66970902 一.算法的时间复杂度定义 在进行算法分析时,语句总的执行次数T(n)是关于问题规 ...

  7. TFS二次开发11——标签(Label)

    下图是在VS2010里创建Label的界面 可以看出创建Label 需要如下参数:Name.Comment.Path.Version .下面是代码实现: using Microsoft.TeamFou ...

  8. Oracle体系结构之密码文件管理

    oracle密码文件主要用来控制sysdba和sysoper用户用于远程登录.通常,oracle用户登录database有两种方式,一种是通过本地操作系统验证登录,一种是通过密码文件验证登录. 操作系 ...

  9. (object) array

    <?php $current_language = (object)array ( 'name' => '火星文', 'timezone' => 'Asia/Tokyo', 'aut ...

  10. Python爬虫框架Scrapy实例(四)下载中间件设置

    还是豆瓣top250爬虫的例子,添加下载中间件,主要是设置动态Uesr-Agent和代理IP Scrapy代理IP.Uesr-Agent的切换都是通过DOWNLOADER_MIDDLEWARES进行控 ...