首页
社区
课程
招聘
[原创]看雪CTF2019参赛题目
发表于: 2019-5-29 11:53 3560

[原创]看雪CTF2019参赛题目

2019-5-29 11:53
3560

参赛的题目是一个安卓的程序,由于安卓webview在4.4后开始使用chrome的内核,所以经过测试,安卓8.1及以上的webview版本是可以成功的执行webassembly的。(低版本没有测,该题目不能保证在低版本下成功运行)。
故使用webassembly作为出题的依据,由于无法像桌面版的chrome那样直接动态调试webassembly,解题者需要讲安卓程序上的html网页转移至桌面版即可动态调试。但由于webassembly的字节码不同于x86,需要解题者对webassembly的字节码进行研究才能解题。

首先html网页如下(安卓程序中将main.wasm直接作为二进制的字符串放在了html中,但是解题流程不变化):

html中调用了wasm中的check_flag函数进行验证。
wasm的源码如下:

最根本的算法就是一个32*32的线性方程组,函数为xxx(),而o,oo等八个函数只是简单的做了一个异或运算,迷惑解题者。

线性方程组的A和b为:

b

解题者需要利用脚本文件去读取这些参数并求解。解为S0m3time_l1tt1e_c0de_1s_us3ful33

而由于o,oo,等八个函数只是做异或运算,可以得到flag为K9nXu3_2o1q2_w3bassembly_r3vers3

只有一个activiy,其中最主要的是一个webview,通过loadurl(127.0.0.1:8000)来解析html。但是程序中还写了一个textview,一个button和一个edittext来迷惑解题者。
主要代码:


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-6-24 18:25 被kanxue编辑 ,原因:
上传的附件:
收藏
免费 3
支持
分享
最新回复 (2)
雪    币: 50161
活跃值: (20625)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
请问正确的序列号在哪?
2019-6-8 10:21
0
雪    币: 2247
活跃值: (424)
能力值: ( LV13,RANK:275 )
在线值:
发帖
回帖
粉丝
3
K9nXu3_2o1q2_w3bassembly_r3vers3
2019-6-8 10:45
0
游客
登录 | 注册 方可回帖
返回
//