2015 alictf apk第一题解题思路

阿里第一题挺简单的,和之前的第一题差不多,就是在check函数中对输入的字符进行check。
把apk拖到apk killer 反编译看看
所以我们跟到check函数看看主要逻辑

从getkey中获取将要处理的字符,这也是密码的来源
上面的字符经过一系列的处理,进行比对

但是代码的逻辑貌似有点乱,所以还是得读smali,看看真真的代码逻辑
很不幸,看到这段我就放弃了去跟代码逻辑了。。
所以尝试别的方式,在比对之前把比对的寄存器的值打印出来看看
在cond_1处计数器加一,跳转到goto_2继续刚才对比
所以在if-eq  v3,v4,:cond_1前打印出v3,v4的值

记得在函数开头添加寄存器数量
然后......大概就是人工输入字符去比对了。。。
其实这里可以不用人工去对比,写个小的爆破程序就ok大概要比人工快很多
最后密码自己试去吧。。。

附段代码:
    const-string v9, "-----v3-------"

    invoke-static {v3}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;

    move-result-object v10

    invoke-static {v9, v10}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
   
    const-string v9, "-----v4-------"

    invoke-static {v4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;

    move-result-object v10

    invoke-static {v9, v10}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值