BugkuCTF-Reverse题Timer(阿里CTF)

该博客详细介绍了如何通过JEB反编译APK,理解Java与smali代码,寻找关键函数onCreate和stringFromJNI2,分析变量beg和now的关系,计算k的值,并通过修改smali代码来触发flag显示。过程中涉及动态分析、源码审计及使用Androidkiller进行代码修改和重打包。

知识点

JEB相当于Windows平台上的IDA
smali代码:双击Bytecode,出现smali代码;相较于C之汇编,那么smali之于Java
onCreate:
一个activity启动回调的第一个函数就是onCreate,这个函数主要做这个activity启动的一些需要的初始操作的工作。

onCreate之后调用了还有onRestart()和onStart()等。

解题流程

下载apk包
apk安装之后出现一个读秒的,20万秒,大于3600,所以大于一个小时,所以太慢了,不等了。
在这里插入图片描述
jeb反编译,主要JEB反编译得到的java代码看起来比较清晰
MainActivity代码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

源码审计

MainActivity
在这里插入图片描述
对程序进行分析
初始操作了一些变量,其beg为(((int)(System.currentTimeMillis()/1000)+200000;
this.beg = (((int)(System.currentTimeMillis() / 1000))) + 200000;beg为一个定值,在上面代码的run()函数里,k是可以变化的

MainActivity.this.t = System.currentTimeMillis();
MainActivity.this.now = ((int)(MainActivity.this.t / 1000));
给出了now的赋值,从程序的运行来看,beg在now初始赋值后应该比now大了200000

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值