首页 > 其他分享 >LoopAndLoop【安卓逆向】

LoopAndLoop【安卓逆向】

时间:2024-01-30 20:34:52浏览次数:20  
标签:逆向 return 函数 arg1 安卓 range num LoopAndLoop input

LoopAndLoop(阿里CTF)

  • 首先是通用步骤

    解压附件后发现是APK文件,打开jeb进行反编译,反编译结果如下:

    可以看到程序自定了几个check函数,并且调用了自定义库“lhm”。其中chec函数是native层的原生函数(函数名前面的声明中有native),所以接下来需要分析库文件lhm.so。

  • 分析动态链接库文件

    用IDA打开lhm.so文件(在/lib/armeabi目录下),打开字符串窗口(shift+f12),找到MainActivity文件,点进去之后再点击蓝色向上的箭头,进入目标函数。

    目标函数的内容如下:

    GetMethodID():获取java方法的ID

    CallIntMethod():调用 Java 对象的返回值为 int的方法

    可以看到,该函数的功能就是根据a4(参数4)的值调用checkx函数对输入数字进行处理。每次调用checkx函数,a4的值都要减1。

  • 代码逆向

    根据上述分析,可以得到逆向代码如下:

    def check1(arg1,arg2):
        t = arg1
        for i in range(1, 100):
            t -= i
        return t
    
    def check2(arg1,arg2):
        t = arg1
        if arg2%2 == 0:
            for i in range(1, 1000):
                t -= i
            return t
        else:
            for i in range(1, 1000):
                t += i
            return t
    
    def check3(arg1,arg2):
        t = arg1
        for i in range(1,10000):
            t -= i
        return t
    
    input_num = 0x6D6F1462
    
    for i in range(2, 100):
        if 2*i%3 == 0:
            input_num = check1(input_num, i-1)
        elif 2*i%3 == 1:
            input_num = check2(input_num, i-1)
        else:
            input_num = check3(input_num, i-1)
    print(input_num)
    

    运行后,得到密码:236492408,在app中输入密码即可得到flag:

标签:逆向,return,函数,arg1,安卓,range,num,LoopAndLoop,input
From: https://www.cnblogs.com/yuanyy/p/17997885

相关文章

  • 苹果安卓或实现 WiFi 消息传递 ;马斯克宣布首例人类接受脑机接口植入丨 RTE 开发者日报
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑......
  • 安卓之测试框架优劣分析
    一、引言安卓测试是确保移动应用质量的重要环节,它涉及多种测试类型和技术。有效的测试可以帮助开发者发现潜在问题,改善用户体验,并提高应用的稳定性和性能。本文将深入探讨安卓测试的分类、主要测试框架以及它们的优劣分析。二、测试的分类2.1、功能测试这是最基本的测试类型,旨在验......
  • 【APP自动化基础】安卓UI自动化
    环境搭建【自动化基础】搭建APP的UI自动化环境获取app的Activity和Package的五种方式方式一:通过dumpsyswindow获取#获取当前页面的Package和Activityadbshelldumpsyswindoww|findstr\/|findstrname=#或者:adbshelldumpsyswindow|findstrmCurrentFocusadb......
  • BUUCTF逆向 不一样的flag
    1.用PEID打开文件,看是否有壳。 可以看出,这个文件没有加壳。2.接下来用IDA打开(32位),按F5获得伪代码。 3.  红线标注的部分,选中按R键,可以得到ASCII码表示的字符是‘1’和‘#’。4.往上看 这里就是选择上下左右,类似于走迷宫。5. 选中黄色区域 可以看到_data_s......
  • 安卓手机日程不响铃或弹窗提醒怎么设置?
    在庞大的安卓手机用户群体中,诸多手机品牌如小米、OPPO、vivo、荣耀等都为用户提供了丰富的功能和便捷的体验。然而,有时候我们在手机日历中设置了提醒时间,却发现安卓手机的日程提醒并没有如期响铃或弹窗,这着实令人头疼。那么安卓手机日程不响铃或弹窗提醒怎么设置?当遇到安卓手机日......
  • 大厂的营销逆向域DDD实践
    0商家的痛点订单退款后优惠券没被回收、退款过程中商家对营销资产没有直观感知、黑产党尝试薅商家资产羊毛等,给商家造成不好体验。为此构建营销逆向域,如资产冻结、解冻、回收等能力。1业务形态商家设置一种满10元送优惠券的活动,而后消费者下笔20元订单得到一张优惠券,然后......
  • 大厂的营销逆向域DDD实践
    0商家的痛点订单退款后优惠券没被回收、退款过程中商家对营销资产没有直观感知、黑产党尝试薅商家资产羊毛等,给商家造成不好体验。为此构建营销逆向域,如资产冻结、解冻、回收等能力。1业务形态商家设置一种满10元送优惠券的活动,而后消费者下笔20元订单得到一张优惠券,然后......
  • 安卓反编译机制,应用场景以及工具解析
    一、引言随着移动应用的普及,安卓系统成为了市场上的主流操作系统之一。然而,安卓应用的源代码往往受到版权保护,开发者需要对其安全性进行维护。此时,反编译技术应运而生,成为保障应用安全的重要手段。本文将详细介绍安卓反编译的机制、应用场景、相关工具及技术,并对其优劣进行分析。二......
  • 天玑9300大战骁龙8 Gen3:十余项数据实测 到底谁才是安卓之王?
    一、前言:全大核天玑9300正面硬钢骁龙8Gen3究竟谁才是安卓芯片之王?今年,两家移动芯片厂商都开始放大招了,骁龙首发Cortex-X4超大核,联发科也不甘示弱,初次将“全大核”的概念引入到移动终端里,并且二者在CPU、GPU性能双双提升的同时,进一步控制了功耗。那么,这两家备受瞩目的旗舰芯片,......
  • 安卓开发(二):Android基础知识
    摘录自Android官方文档Intent和Intent过滤器:https://developer.android.google.cn/guide/components/intents-filters?hl=zh-cn安卓按钮:https://developer.android.com/guide/topics/ui/controls/button?hl=zh-cn安卓Bitmap:https://developer.android.com/reference/......