BugKu逆向之02-Sign-in.apk

BugKu逆向之02-Sign-in.apk

一、文件描述

  1. 正儿八经的apk压缩文件,,
    在这里插入图片描述
  2. 可以运行
    在这里插入图片描述
  3. 1.28MB
    好,,现在开始分析它,,,

二、解题思路

  1. 首先拿到这个文件,,第一反应是动态运行试试看,,
  2. 放到genymotion模拟器中运行,,它提示让你输入密码,,参照上图,,
  3. 随便输入密码试试看,,提示Toast为“try again”。。. 在这里插入图片描述
  4. 这,,,好吧,,
  5. 然后androidkiller打开,,静态反编译看看源码逻辑,,,
    在这里插入图片描述
  6. 提示无法下一步源码反编译。。。这。。。。
  7. 好吧,转战JEB。。。
  8. 下图是JEB打开后的目录结构。。
    在这里插入图片描述
  9. 可以看到MainActivity中有两个敏感的方法,,“checkPassword”和“getFlag”,,然后我们在Disassembly窗口中按【Tab】键来查看源码。。。
    在这里插入图片描述
  10. checkPassword这个方法应该是判断程序入口我们输入的password是否正确,,如红色方框所示,,它里面做了一个equal判断,真正的判断的对象是从getFlag()中获取到的。
  11. 从getFlag中获取到String并且还reverse后再进行解密处理。
  12. getFlag()方法中获取字符串是一串编号“0x7F0B0020”,,,后面有注释,
  13. 就是这样一个字符串。。。
    在这里插入图片描述
  14. 当然如果没有注释,,另一种方法就是根据resourceID来找到对应的字符串,,,,
  15. 由于是转到“Resource”目录下(也就是R目录),,找到id为‘0x7F0B0020’的字符串对应为toString,,
    在这里插入图片描述
  16. 往上翻可以看到toString所在方法为String,,在这里插入图片描述
  17. 从而我们去资源Resource里面找到value目录下得Strings.xml配置文件,,,这个文件存放着Android对字符文字的属性配置,,有疑惑的小伙伴可以去补下功课哦,,
  18. 从而我们在strings.xml文件的最后一行找到了toString对应的value、、、见下图
    在这里插入图片描述
  19. 第10步中说过,,程序对这个字符串先做了一个reverse(),然后做了一个base64解密处理,,也就是说,,,我们得到的这个字符串是先经过加密后再reverse的。。。
  20. 二话不说,开始解密
  21. reverse后的字符串为“ZmxhZ3tIZXIzX2k1X3kwdXJfZjFhZ18zOWZiY199”
  22. base64解密后为“flag{Her3_i5_y0ur_f1ag_39fbc_}”
    在这里插入图片描述
  23. 结束,,,FLAG——flag{Her3_i5_y0ur_f1ag_39fbc_}
  24. 注:上图用的解密工具为cyberchef,,,具体用法不介绍啦,反正很强大。。。
  25. 愉快的周末,,明天又是新的一周哇!!!
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值