ddctf 2018 android writeup
空余时间刷了下ddctf,ak 了 android,不难,整理发一下 writeup。
空余时间刷了下ddctf,ak 了 android,不难,整理发一下 writeup。
HITB-CTF 2018 有2个安卓题《multicheck》、《kivy_simple》,抽空稍微做了一下,挺简单的。
ripples 大佬出的安卓逆向,做起来好坑,瞎搞八搞终于做出来了。时间过去有点久,忘了这题在干嘛了。。。
QQ 出了表情骂人的 bug 后,随手逆了一下,过程中发现有些调用过程颠覆了我的三观,出现了同名同参数、返回值不一样的两个方法,这样代码编译都不过,为什么会正常运行呢?
今天看到一个testcase,很常见很普通的用法,JEB翻译出来的是错的,于是想通过阅读字节码来手动写一段Java模拟一下,却发现怎么都写不出来。所以本文讲以下Java在编译过程中对匿名类和内部类的处理,应该属于小tips。
其实我们最初的目的已经实现了,本文讲如何实现对callback的精准标记Source,最后讲一下对整个FlowDroid代码的理解和评价。
接上篇,上篇主要遇到问题是Source无法对Parameter进行标记,本文两部分,第一部分讲如何加上标记并且完成整个CFG(隔的时间太长了,不大记得这个操作了),第二部分讲通过加入Callback的方式让JSInterface的代码变得可达,并且成功实现预期。
有学弟问我这个怎么操作,专门开个文档稍微讲一下吧,科普向,挺简单的。
接上篇,上篇末尾提到FlowDroid本身是扫不到webview的js远程调用的,因为原理上讲带有JavascriptInterface注解的代码是不可达的,本文讲一下为如何从零开始,通过修改源码的方式,对FlowDroid进行修改和拓展。
最近在看一些静态代码分析相关的技术,主要用于自动化漏洞挖掘,看了大量文章和代码,从最开始的晕头转向到现在的略知一二,学到了不少东西,但了解不深,本文只能从科普的角度讲一下这些工具的用途和使用方法。
前些天有朋友问我怎么安装xposed,于是开动了一下思路,想到三种不同的方式去安装xposed框架,写篇文章分享一下。
上篇讲到动态调试部分经久失修,本文介绍如何修好这部分代码。
以前全局搜字符串时候经常搜到support-v4/7/13的字符串,逆向时候烦的不行,写了一个轮子,专门删除dex里面的这部分代码。
MobSF框架是一个开源的自动app检测的框架,国内相关的技术也有,BAT三家都有。开源项目里MobSF做的应该是很好的了,链接是https://github.com/MobSF/Mobile-Security-Framework-MobSF。本文记录一下学习和改进的过程,大概用了一下午一晚上,毕竟代码不是很多。
由于特殊的需求,必须要用C来实现一个轮子,通过解析文件结构来获得一个ELF文件的依赖库的名字,IDA可以做到,那么我们也一定可以做到。造了一个简单的轮子,感谢小花椒和母鸡的科普。
17年10月仔细分析和利用了一个CVE,结果拖到现在才有空写出来,主要是讲一下android里的一个很常见的结构 "Vector",如何使用堆溢出来尽可能做多的事情。网上没有查到过详细介绍Vector实现的文章,本文,算是先河么?
本文非技术文章,这段时间在准备表演,经常没法用电脑搬砖,出于兴趣和老朋友的推荐,读了这本书,让我这种死宅稍微添加了一点文艺的气息,整个过程不自主让我想起了无数个游戏的设计,分享一下感受,感觉还是很有意思的。
上篇介绍的是攻击者的思路,本文讲介绍如何从开发者的角度来防止自己的公开组件被攻击,分享一下自己平时见到的比较值得学习架构和自己开脑洞想出来的一些架构。
接触安卓应用层代码审计已经一年多了,期间分析过大量的APP,无论是厂商的还是企业的,保护程度参差不齐,本文从攻击者的角度,讲一些常见的组件攻击方式和思路。 下篇将从开发者的角度,如何保护自己的组件不被第三方APP进行调用,即使是出于业务需求必须要开放的,也可以保证安全性,同样也讲一些常见防御设计。