安卓逆向学习 之 KGB Messenger的writeup(1)
KGB Messenger的writeup(1)
- 总结
- challenges
- Alerts(Medium)
- 获得FLAG
- 最终破解思路
该题的 github地址为https://github.com/tlamb96/kgb_messenger,apk的下载地址为apk,
总结
- 清楚由apk到java源码的整个反编译过程:dex2jar+ jd-gui
- 绕过或者去除判断语句的思路
- 作者使用keytool和jarsigner进行的签名,和平时使用的方法不同
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)相关推荐
- 安卓逆向学习笔记(一)
这些都是通过学长给予,以及网络上的资源来做的个人理解.总结,大牛们不要喷. 零基础小萌新在角落瑟瑟发抖的认真记笔记. 安卓逆向学习笔记(一) 写一个安卓程序(附上原帖链接教我兄弟学Android逆向0 ...
- 安卓逆向学习资料推荐
安卓逆向属于比较难得科目,下面有两点推荐 对于新手: 推荐学习视频 Android逆向线上全日制课程 对于有基础的朋友: 看雪安卓⾼级研修课2万班 看雪安卓⾼级研修课3万班 总体来说就是看雪的两个课程 ...
- 安卓逆向学习笔记:native层开发、分析和调试基础
安卓逆向学习笔记:native层开发.分析和调试基础 本笔记主要是自己看,所以如果有看不懂的地方也请多多包涵,这一篇的笔记主要是<Android应用安全防护和逆向分析>的部分内容. 一 A ...
- 安卓逆向学习及APK抓包(二)--Google Pixel一代手机的ROOT刷入面具
注意:本文仅作参考勿跟操作,root需谨慎,本次测试用的N手Pixel,因参考本文将真机刷成板砖造成的损失与本人无关 1 Google Pixel介绍 1.1手机 google Pixel 在手机选择 ...
- 安卓逆向学习第一天笔记
>课1 安卓逆向学习-android 环境配置与常用工具介绍 1.简单介绍 android应用程序时采用JAVA语言开发的,完成源代码的开发后,首先将JAVA源码转换为字节码,然后通过DX工具, ...
- 2021 安卓逆向学习思路
逆向对于以后的发展基本处于两个方向,建议新手多发展协议分析,脱壳这个东西难度就在于门槛 协议分析 抓包: 推荐小肩膀的抓包系列,因为这里分很多种情况 1.https/http 协议抓包 2.客户端不走 ...
- native层 安卓_安卓逆向学习入门之过反调试(一)
前面有篇文章讲了 smail代码的简单修改,其实它有3个apk可以用来练手,今天来讲第二个apk,也是比较简单,大佬请飘过. 样本地址: https://github.com/wyhuan/owasp ...
- 安卓逆向学习——多开原理和实验
我们都知道Windows下的进程Pid是独一无二的,如果两个进程都有相同的的Pid,那么这两个个进程只有一个可以运行,另一个则不能打开.在Android体系下,包名也类似于这个Pid,所以我们想要在A ...
- 什么是Android逆向?如何学习安卓逆向?Android逆向自学笔记入门到实战
简单地来说,安卓逆向是对已经打包好的APP进行反编译.源码分析了解APP实现逻辑的一门技术.我们可以把安卓安装时用到的APK文件看作一个加密后的压缩包,逆向就是要最大程序地还原出APK打包之前的源码. ...
- 爬虫逆向学习进阶路线
大数据时代下,爬虫技术逐渐成为一套完整的系统性工程技术,涉及的知识面广,平台多,技术越来越多样化,对抗性也日益显著. 大家可以参考一下学习路线,看看自己需要对哪些知识进行补充. 爬虫逆向学习路线 学习 ...
最新文章
- 接口测试(postman jmeter)
- Tungsten Fabric SDN — Netronome Agilio SmartNIC vRouter
- Atitit。DD dragdrop拖拽功能c#.net java swing的对比与实现总结
- VMware 7.1.4安装Mac.OS.X.Lion.操作系统 key:安装 系统
- 首页列表显示全部问答,完成问答详情页布局
- yii2中的rules 自定义验证规则详解
- 创建SQL函数计算员工加班时间
- JS 数组和 Java 数组的区别
- Django- UnicodeDecodeError:‘utf-8‘ codec can‘t decode 问题解决
- python-numpy.vectorize()
- event mpm php,Ubuntu Apache 切换到php-fpm+mpm_event模式
- sublime 添加 ConvertToUTF-8
- 【路径规划】基于matalb遗传算法机器人栅格地图路径规划【含Matlab源码 022期】
- 黑马程序员全套Java教程_Java基础教程_目录
- chrome等浏览器滚动全屏截图方法
- html怎么让两个div重叠,如何将一个div与另一个div重叠
- (44.1)【APP应用漏洞发现】抓包工具、协议分析、逆向工程
- 【论文阅读】BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
- 亚马逊索评邮件什么时候发送效果最佳
- GitChat·大数据 | 史上最详细的Hadoop环境搭建