[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. 剑指offer——49

    丑数 因子只含2,3,5的数称为丑数. 怎么求第K大的丑数呢.K可以为10^7 最简单的做法是,对每个数判断是否为丑数. 复杂度为O( n * log(n) ),理论上是不行的. uglys[i] 来 ...

  2. 监控redis服务器执行的命令--类似于tomcat的local-access.log

    一.问题由来 一般程序启动时会去拉必要的缓存存进去redis. 由于我们这边开发可直连开发和测试环境,有时候会发生,开发同学本地直连了测试环境,本地ide一启动,可能会导致重新覆盖了测试环境上的缓存. ...

  3. nose测试中修改nose_html_reporting插件,使生成的html报告加入显示截图功能

    使用nose框架在测试WEB UI自动化时,使用了第三方插件nose-html-reporting,来生成HTML报告,nose-html-reporting具体使用参见管网https://pypi. ...

  4. Spring加载xsd文件报错:because 1) could not find the document; 2) the document could not be read...

    Spring启动时加载xml文件的过程: spring在加载xsd文件时总是先试图在本地查找xsd文件(spring的jar包中已经包含了所有版本的xsd文件),如果没有找到,才会转向去URL指定的路 ...

  5. node中非常重要的process对象,Child Process模块

    node中非常重要的process对象,Child Process模块Child Process模块http://javascript.ruanyifeng.com/nodejs/child-proc ...

  6. iOS - 开源框架、项目和学习资料汇总(动画篇)

    动画 1. Core Animation笔记,基本的使用方法 – Core Animation笔记,基本的使用方法:1.基本动画,2.多步动画,3.沿路径的动画,4.时间函数,5.动画组.2. awe ...

  7. backBone.js初识

    一.单页面应用 1.单页面应用(single-page application :SPA),是指在浏览器中运行的应用,在使用期间不会重新加载页面. 2.它所有的活动局限于一个Web页面,仅在初始化加载 ...

  8. jsp页面获取参数的方法(url解析、el表达式赋值、session取值)【原创】

    最近使用myEclispse做网站,使用jsp+js+css做页面,网站中常用到从列表进入详情页面的跳转,下面对详情页面的值填充方式做一个简单总结: 1.url中使用request获取参数 jsp上方 ...

  9. mysql count(*) 和count(列) 的区别

    count(*) 是统计包含null的记录,而count(列)不含null; 在不带where的情况下count(*)与count(列)相比,并非统计所有列,而是忽略所有列而直接统计行数; 当coun ...

  10. ActiveMQ延迟消息配置

    ActiveMQ使用延迟消息,需要在activemq.xml配置文件中添加这项: schedulerSupport="true" <broker xmlns="ht ...