zoukankan      html  css  js  c++  java
  • 2016 alictf Timer writeup

    Timer-smali逆向

    参考文档:http://blog.csdn.net/qq_29343201/article/details/51649962

    题目链接:

    https://pan.baidu.com/s/1jINx7Fo   (在里面找相应的名字就行) 

    题目描述:

    每秒触发一次计算,共有200000秒,答案参与计算,不可能等待下去。

    使用工具:

    Android Killer,jadx-gui

    解题方法有多种,我参照网上的一种方法。通过对native层,代码的还原,计算出200000秒后的关键变量k,传入主调用,得到答案

    解题过程:

    System.currentTimeMillis()相当于是毫秒为单位,获取当前时间

     

    先是把单位变成秒,然后加上200000秒

    第二块逻辑,用于筛选秒数的自定义函数,可以忽略,之后按代码逻辑就行

     

    第三块逻辑,主程序段,包含最后打印flag值的代码段

     

    分成三段来看:

    第一段:super继承,调用页面设计框架,实例化handler函数

    第二段:t的作用在于将时间一点一点减少,beg的值在前面,代表一开始时间,now代表现在的时间

    第三段:当差值为0或小于打印flag,否则调用is2函数判断,true,k+100,false,k-1

    所以有了下面的解密程序

    def is2(n):
        if (n <= 3):
            if (n > 1):
                return True
            return False
        elif (n % 2 == 0 or n % 3 == 0):
            return False
        else:
            i = 5
            while (i * i <= n):
                if (n % i == 0 or n % (i + 2) == 0):
                    return False
                i += 6;
            return True;
    
    def main():
        time = 200000
        k = 0
        while time > 0:
            if is2(time):
                k += 100
            else:
                k -= 1
            time -= 1
        print(k)
    
    
    if __name__ == '__main__':
        main()

    将得到的k值传给native代码,此时的k是经过200000运算的k,传进去直接返回结果

    在传入native的时候要注意,首先要确定run函数的位置,这一块方法结束了,没找到逻辑,

     

    通过字符串搜索找到run函数的位置,在MainActivity$1.smali中

     

    直接将k传入不用运行200000次,需要更改"The flag is:"之前的关键跳转

    if-gtz v0, :cond_0 改为 if-ltz v0, :cond_0

    根据分析,k的值是v3的值,所以要在获取v3之后,修改v3的值

     

    重打包,得到flag

     

  • 相关阅读:
    Python 模块 itertools
    Python 字符串的encode与decode
    python 模块 hashlib(提供多个不同的加密算法)
    暴力尝试安卓gesture.key
    hdu 1300 Pearls(DP)
    hdu 1232 畅通工程(并查集)
    hdu 1856 More is better(并查集)
    hdu 1198 Farm Irrigation(并查集)
    hdu 3635 Dragon Balls(并查集)
    hdu 3038 How Many Answers Are Wrong(并查集)
  • 原文地址:https://www.cnblogs.com/zhaijiahui/p/7103776.html
Copyright © 2011-2022 走看看