2026/4/16 1:29:25
网站建设
项目流程
西安商城网站开发制作,wordpress积分墙,汕头站,河南省住房城乡建设主管部门网站LoopAndLoop(阿里CTF)
首先是通用步骤
解压附件后发现是APK文件#xff0c;打开jeb进行反编译#xff0c;反编译结果如下#xff1a;可以看到程序自定了几个check函数#xff0c;并且调用了自定义库“lhm”。其中chec函数是native层的原生函数#xff08;函数名前面的声明…LoopAndLoop(阿里CTF)首先是通用步骤解压附件后发现是APK文件打开jeb进行反编译反编译结果如下可以看到程序自定了几个check函数并且调用了自定义库“lhm”。其中chec函数是native层的原生函数函数名前面的声明中有native所以接下来需要分析库文件lhm.so。分析动态链接库文件用IDA打开lhm.so文件(在/lib/armeabi目录下)打开字符串窗口(shiftf12),找到MainActivity文件点进去之后再点击蓝色向上的箭头进入目标函数。目标函数的内容如下GetMethodID()获取java方法的IDCallIntMethod()调用 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