KGB Messenger的writeup(1)

  • 总结
  • challenges
  • Alerts(Medium)
  • 获得FLAG
  • 最终破解思路

该题的 github地址为https://github.com/tlamb96/kgb_messenger,apk的下载地址为apk,

总结

  1. 清楚由apk到java源码的整个反编译过程:dex2jar+ jd-gui
  2. 绕过或者去除判断语句的思路
  3. 作者使用keytooljarsigner进行的签名,和平时使用的方法不同

challenges

就是说你是国际秘密情报局的逆向工程师。今天早上,你的团队负责人指派你检查一个有问题的APP。据传有个特工斯特林·阿切尔曾与一些克格勃间谍接触并使用了这个APP。你的工作是对这个APP进行逆向,以核实谣言。

Alerts(Medium)

第一个问题就是说当我们打开这个APP时他会弹出一个很恶心的窗口(苏卡不列!!),让我们调查一下。

点击exit直接就退出了。

获得FLAG

过程如下:

  • 此弹窗在主界面中所以先找到intent-filter中的主activity,首先用APKtool解包:

  • 查看AndroidManifest.xml文件,发现com.tlamb96.kgbmessenger.MainActivity的属性如下:

  • 所以将APK后缀改为zip后解压找到其中的dex文件用dex2jar反编译:

  • 使用jd-gui打开查看java代码并找到上面的MainActivity,可以很清楚的看到里面的逻辑:

  • 在onCreate中可以很明显的看到字符串的比较过程,若不满足条件就会弹窗,而且是会有两个弹窗。

  • 第一个字符串若是Russia就可通过条件判断。

  • 而第二个字符串与2131558400的字符串比较(这里是)

  • 转化为16进制为

  • 这里直接用Androidkiller简化后续过程(其他在terminal中查找字符串的方法可以看作者的workthrough video)

  • 在Androidkiller中搜索此字符串,在pulic.xml中发现其name为User

  • 在string.xml文件中找到name='User’的字符串得到具体的值

  • 使用base64解码可以获得FLAG值

  • 或者在linux中输入命令:

echo "RkxBR3s1N0VSTDFOR180UkNIM1J9Cg" | base64 -d

最终破解思路

  • 在判断语句之前将s1和s2赋予这两个值就可以取消弹窗

  • 使用android killer重新安装后打开app已经没有弹窗了至此alert破解完毕:

  • 作者使用的方法是删除中间的所有无关语句从而达到效果。不过最后要注意末尾有一个goto:goto_0的语句要复制下来写到下面,是个return语句。

安卓逆向学习 之 KGB Messenger的writeup(1)相关推荐

  1. 安卓逆向学习笔记(一)

    这些都是通过学长给予,以及网络上的资源来做的个人理解.总结,大牛们不要喷. 零基础小萌新在角落瑟瑟发抖的认真记笔记. 安卓逆向学习笔记(一) 写一个安卓程序(附上原帖链接教我兄弟学Android逆向0 ...

  2. 安卓逆向学习资料推荐

    安卓逆向属于比较难得科目,下面有两点推荐 对于新手: 推荐学习视频 Android逆向线上全日制课程 对于有基础的朋友: 看雪安卓⾼级研修课2万班 看雪安卓⾼级研修课3万班 总体来说就是看雪的两个课程 ...

  3. 安卓逆向学习笔记:native层开发、分析和调试基础

    安卓逆向学习笔记:native层开发.分析和调试基础 本笔记主要是自己看,所以如果有看不懂的地方也请多多包涵,这一篇的笔记主要是<Android应用安全防护和逆向分析>的部分内容. 一 A ...

  4. 安卓逆向学习及APK抓包(二)--Google Pixel一代手机的ROOT刷入面具

    注意:本文仅作参考勿跟操作,root需谨慎,本次测试用的N手Pixel,因参考本文将真机刷成板砖造成的损失与本人无关 1 Google Pixel介绍 1.1手机 google Pixel 在手机选择 ...

  5. 安卓逆向学习第一天笔记

    >课1 安卓逆向学习-android 环境配置与常用工具介绍 1.简单介绍 android应用程序时采用JAVA语言开发的,完成源代码的开发后,首先将JAVA源码转换为字节码,然后通过DX工具, ...

  6. 2021 安卓逆向学习思路

    逆向对于以后的发展基本处于两个方向,建议新手多发展协议分析,脱壳这个东西难度就在于门槛 协议分析 抓包: 推荐小肩膀的抓包系列,因为这里分很多种情况 1.https/http 协议抓包 2.客户端不走 ...

  7. native层 安卓_安卓逆向学习入门之过反调试(一)

    前面有篇文章讲了 smail代码的简单修改,其实它有3个apk可以用来练手,今天来讲第二个apk,也是比较简单,大佬请飘过. 样本地址: https://github.com/wyhuan/owasp ...

  8. 安卓逆向学习——多开原理和实验

    我们都知道Windows下的进程Pid是独一无二的,如果两个进程都有相同的的Pid,那么这两个个进程只有一个可以运行,另一个则不能打开.在Android体系下,包名也类似于这个Pid,所以我们想要在A ...

  9. 什么是Android逆向?如何学习安卓逆向?Android逆向自学笔记入门到实战

    简单地来说,安卓逆向是对已经打包好的APP进行反编译.源码分析了解APP实现逻辑的一门技术.我们可以把安卓安装时用到的APK文件看作一个加密后的压缩包,逆向就是要最大程序地还原出APK打包之前的源码. ...

  10. 爬虫逆向学习进阶路线

    大数据时代下,爬虫技术逐渐成为一套完整的系统性工程技术,涉及的知识面广,平台多,技术越来越多样化,对抗性也日益显著. 大家可以参考一下学习路线,看看自己需要对哪些知识进行补充. 爬虫逆向学习路线 学习 ...

最新文章

  1. 接口测试(postman jmeter)
  2. Tungsten Fabric SDN — Netronome Agilio SmartNIC vRouter
  3. Atitit。DD dragdrop拖拽功能c#.net java swing的对比与实现总结
  4. VMware 7.1.4安装Mac.OS.X.Lion.操作系统 key:安装 系统
  5. 首页列表显示全部问答,完成问答详情页布局
  6. yii2中的rules 自定义验证规则详解
  7. 创建SQL函数计算员工加班时间
  8. JS 数组和 Java 数组的区别
  9. Django- UnicodeDecodeError:‘utf-8‘ codec can‘t decode 问题解决
  10. python-numpy.vectorize()
  11. event mpm php,Ubuntu Apache 切换到php-fpm+mpm_event模式
  12. sublime 添加 ConvertToUTF-8
  13. 【路径规划】基于matalb遗传算法机器人栅格地图路径规划【含Matlab源码 022期】
  14. 黑马程序员全套Java教程_Java基础教程_目录
  15. chrome等浏览器滚动全屏截图方法
  16. html怎么让两个div重叠,如何将一个div与另一个div重叠
  17. (44.1)【APP应用漏洞发现】抓包工具、协议分析、逆向工程
  18. 【论文阅读】BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
  19. 亚马逊索评邮件什么时候发送效果最佳
  20. GitChat·大数据 | 史上最详细的Hadoop环境搭建

热门文章

  1. ​神经结构搜索中的遗传算法
  2. 关于USB鼠标驱动部分及问题解决
  3. Electron如何修改图标
  4. Android 9.0 http无法访问网络问题
  5. UReport2——一款报表引擎,提供基于网页的报表设计器
  6. <a>标签下载excel文件
  7. AngularJS笔记
  8. 达叔机器学习笔记1_逻辑回归建立一般流程
  9. Windbg及Dump文件分析方法
  10. TT 的旅行日记(Dijkstra)