LoopAndLoop【安卓逆向】

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。

  • 代码逆向

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

    python 复制代码
    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:

相关推荐
酿情师3 天前
2026平航杯倩倩手机逆向包逆向全过程(逆向鸿蒙系统app包)
华为·智能手机·harmonyos·逆向·ctf·re·取证
其实防守也摸鱼3 天前
ctfshow--Crypto(crypto1-14)解题步骤
java·开发语言·网络·安全·密码学·ctf·ctfshow
Chen--Xing4 天前
NSSCTF -- [tangcuxiaojkuai] -- easy_factor
ctf·writeup·nssctf·crypto
Chen--Xing5 天前
NSSCTF -- [tangcuxiaojkuai] -- easy_mod
ctf·writeup·crypto
其实防守也摸鱼5 天前
CTF密码学综合教学指南--第九章
开发语言·网络·python·安全·网络安全·密码学·ctf
蒲公英eric7 天前
攻防世界 misc题GFSJ0963-【pcap1】
ctf·misc·流量分析·攻防世界
其实防守也摸鱼9 天前
CTF密码学综合教学指南--第四章
网络·笔记·安全·网络安全·密码学·ctf
其实防守也摸鱼10 天前
CTF密码学综合教学指南--第一章
网络·安全·网络安全·密码学·ctf·法律
其实防守也摸鱼10 天前
CTF密码学综合教学指南--第二章
开发语言·网络·python·安全·网络安全·密码学·ctf
其实防守也摸鱼15 天前
ctfshow--VIP题目限免2(后10个) 原理和知识拓展
网络·ctf·讲解·原理·知识·ctfshow·解题