攻防世界-mobile-高手进阶区WP(一)

基础Android

题目链接:https://adworld.xctf.org.cn/task/answer?type=mobile&number=6&grade=1&id=5489&page=1

解法1:

该解法为捷径解法

查看包结构,没有lib,说明逻辑全在java层,但是有一个assets,assets里面的东西一般会比较值钱

assets里面有一个名为timg_2.zip的文件,但并不是zip,查看文件二进制,发现是一个jpg

修改后缀,打开图片,图片中就有flag,为flag{08067-wlecome}

解法2:

该解法为正规解法

在主活动中存在一个密码校验,输入正确后可以进入下一个活动

编写frida脚本hook掉该函数,使其直接跳转(逻辑很简单,直接接出来也行,密码是kjihgfedcba` )

Java.perform(function(){
    var Check = Java.use(com.example.test.ctf02.Check);
    Check.checkPassword.overload(java.lang.String).implementation = function (str) {

        return true;
    }
});

跳转后同样是一个校验页面,下面有一张图片。代码逻辑中会把输入的内容以广播的形式发送

程序中注册有一个广播接收器,接收器接收的动作为android.is.very.fun

在程序中输入动作,即可出现带有flag的图片

APK逆向

题目链接:https://adworld.xctf.org.cn/task/answer?type=mobile&number=6&grade=1&id=4875&page=1

解法:

该题目很简单,在程序初始化时定义了字符串Tenshine,并在检查函数中获取了其md5,每隔一位取一个字符,最终组成为flag,flag为flag{bc72f242a6af3857}

Android 2.0

题目地址:https://adworld.xctf.org.cn/task/answer?type=mobile&number=6&grade=1&id=5491&page=1

解法:

flag检查逻辑为so中得getResult函数


定义了三个变量分别用于获取输入,1、4、7、10、13位赋给v5,2、5、8、11、14赋给v6,3、6、8、12、15位附给v7

遍历并修改v5的前四位,进行(2 * a1[i]) ^ 0x80 运算后于LN^dl比较


v6前4位与v5做亦或并修改,v7前4位与v6(修改后的)做亦或并修改,分别于内存中给定的数据作比较


组合三个变量值即为flag,flag{sosorryla}

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇