-
-
[原创]看雪CTF2019参赛题目
-
发表于:
2019-5-29 11:53
3548
-
参赛的题目是一个安卓的程序,由于安卓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编辑
,原因: