la0s / la0s.github.io Goto Github PK
View Code? Open in Web Editor NEWThis project forked from simpleyyt/jekyll-theme-next
Mine Mine,你雨伞雨伞赶快打开~
This project forked from simpleyyt/jekyll-theme-next
Mine Mine,你雨伞雨伞赶快打开~
https://la0s.github.io/2019/03/07/anti_ptrace/
在iOS平台上只要有了一个越狱机基本就可以想干啥干啥了,利用lldb+debugserver可以随便动态调试,所以最常用的保护手段就是反调试了,这里针对某新闻APP(v6.0.4)为例 当我们利用debugserver进行attach的时候,会报错Segmentation fault: 11
https://la0s.github.io/2018/06/21/frida/
这次继续上次的案例,同样是hook方法的参数和返回值,只不过这次我们换个更牛逼的框架————frida
https://la0s.github.io/2018/11/02/iOS_SSL/
这里介绍一下使用frida和objection绕过某单车APP(v8.4.0)iOS端证书固定,感谢小贺同学提供的样本@Ccccccandyhe,起因是要抓取附近车辆信息的包,但是上来发送验证码的地方就遇到了问题,用Charles抓包也是红叉,猜测是用了SSL pinning。
https://la0s.github.io/2018/04/24/SmaliInject/
工具转自 Android应用逆向——分析反编译代码之大神器
https://la0s.github.io/2018/06/24/CTF100/
这里的例子是以前比赛的一道mobile题目,正好综合一下前面几篇文章讲的工具和方法,这比赛是两年前的当时并不会做,读研以后这一年开始接触了Android安全方向,逐渐掌握了这方面的东西,就把这题目重新拿来做了做。 题目链接
https://la0s.github.io/2018/04/23/IDA/
对某APP进行抓包并IDA调试签名生成过程。顺便安利一下四哥的博客,学习Android逆向很好的资料。Android逆向之旅之IDA调试so源码
https://la0s.github.io/2018/04/24/shengsai/
第一题: 题目拖进IDA提示已经加壳,PEID查壳,upx的壳,熟悉这种壳的可以用OD手动转到OEP,原理就是利用ESP平衡,在pushad指令后下硬件断点,然后运行就会暂停在popad指令后。再后面的就是JMP OEP指令了,最好使用LoadPE+ImportREC进行脱壳修复,这里因为是upx这种最简单的壳,直接使用ollydump脱掉壳就好了
https://la0s.github.io/2018/12/15/First_iOS/
感谢牛轧糖大佬我涛哥带我走向车联网生涯,为我的研究生生涯积累了大量的样本。某美系车APP在更新之后登录数据变成了加密传输,而且最关键的是我的CC_hook.js竟然hook 不到,这就引起了我的兴趣了。
https://la0s.github.io/2018/04/26/smali/
针对某投资APP的协议逆向过程,smali动态调试步骤参考 Android Studio动态调试安卓app教程,但是一开始没用他那个繁琐的baksmali.jar,直接用的apktool最新版反编译apk然后将项目导入Android studio即可(命令java -jar apktool_2.3.2.jar d myapp.apk -o ./projects/myapp/src),手机最好用开发版或者安装xposed插件BDopener就不用反编译加debug=true再重打包了。
https://la0s.github.io/2018/05/02/Crypto2/
以下Hash算法经常被用在数据的签名中,这里整理了一下Java版sha-x和md5算法
https://la0s.github.io/2018/04/29/FQ/
一般来说现在通用的翻墙姿势有两种,一种是在windows上使用XX-NET,这个工具最好在有ipv6的网络中使用,需要申请自己的一个GAE AppID,然后设置服务端
https://la0s.github.io/2018/07/07/frida2/
这篇文章其实是前面的Traceview+frida这对绝配的组合的一个案例,不了解的可以去可以去看我直接写的几篇文章,这次以之前的一个搞的投资APP为例,这个应用数据是加密的,而且apk本身是360加固的 当时一看麻烦又要脱壳又要逆向就没弄,这次正好拿它来开整
https://la0s.github.io/2018/05/15/Tools/
今天从博士那弄了个新的nexus4,但是系统是CyanogenMod的,开机老是报错,所以一怒之下想刷个原生系统(四哥小黄书推荐的Android4.4),找了一下午中文教程没个靠谱的,所以直接Google搜 英文的
https://la0s.github.io/2018/06/28/Toos2/
最近这两天把Android几个主流的跟踪函数和方法的工具进行了下简单测评
https://la0s.github.io/2019/05/13/chunzhao/
2.28——5.13,我的两个多月的找实习征程终于结束了,拿到了第一个也是最后一个offer,而我也终于有时间和精力记录一下这段痛并快乐着(?)的过程,不过结果最终还是好的。感谢Tencent security
https://la0s.github.io/2018/08/06/AndroidRoad/
不知不觉研一的生活已经结束了,想当初进实验室的时候被安排到了APP分析(移动安全)这个组,当时基本没接触过这方面的东西,大学都是打CTF,Web渗透&Windows逆向等,进来以后便开始了我的Android逆向之路。因为组里的主要的工作是协议分析和样本检测,前期积累了下来大量的样本,这里说的样本是具有比如说抓包失败,检测代理, 某壳加固,反调试反hook等特征,这是一个从量变到质变的前提。 前面的文章已经谈了很多技术方面的东西,这里主要分享一下我的一些学习方法和经验。 1.善于使用搜索引擎Google,这个是最基本也可能是最重要的,尤其是需要懂得一些搜索语法,当报错一堆error的时候就很重要了。 2.没事可以去weibo(你可以把微博这种东西当做成一种社交方式,也可以理解成为一种学习的方法),尤其是里面的那些比如安全客,freebuf的日常推送和各种博主(非虫,riusksk,瘦蛟舞等)分享的技术文章。
https://la0s.github.io/2018/12/07/iOS_Crypto/
毕业第一步,先把项目需求实现了。其实这篇文章和之前Android上frida破解加密数据思路是一致的,因为iOS作为一种闭源系统,没有Android那么多的packers和so库,iOS官方封装了自己统一的Crypto库: CommonCryptor.h/CommonDigest.h/CommonHMAC.h,所以我们hook起来也很方便。
https://la0s.github.io/2018/12/23/lldb+debugserver/
本来又想来搞某个字母车的,结果那个iOS端有反sysctl调试,所以换了样本某个投资APP 首先注册发送验证码抓包
https://la0s.github.io/2018/10/14/Capture/
前几天高博交给我几个VPN样本让我抓一下包,其中有一个样本某个ip地址用Charles抓不到,关闭代理依然能正常使用,这个就像我很早之前测过一个某APP也是这样的情况————用代理软件抓包无法抓到某个ip或域名,开启或者关闭代理都不影响APP本身的刷新,因为APP没有加壳,直接拿来逆了逆源码看看到底是怎么回事
https://la0s.github.io/2018/06/20/xposed/
xposed创建教程参考 Android Studio Xposed模块编写
https://la0s.github.io/2019/01/14/Needle_jailbreak/
这篇文章虽然叫这题目。但是不只是用到了这Needle一个工具,首先介绍一下Needle这个工具,和Android上的Drozer一样也是iOS安全测试框架,旨在简化对iOS应用程序进行安全评估的整个过程,Needle所涵盖的测试领域的一些示例包括:数据存储,进程间通信,网络通信,静态代码分析,挂钩和二进制保护。里面有很多集成了很多模块能方便的帮我们完成测试工作。好了介绍到这,今天主要是针对三款有越狱检测的iOS应用,难度由低到高
https://la0s.github.io/2019/05/23/Mac_fast/
掌握一个工具或者快捷键有时候能让你的效率提升百倍,像我这么喜欢折腾的人当然也不例外(其实我是工具的暗黑模式控),Mac有很多提升工作效率的工具,这篇文章主要讲terminal方面的配置,毕竟程序员 大部分时间是在和终端打交道的,这里写篇杂文记录一下我的配置过程。 Mac就不用说了iTerm2 + oh-my-zsh是王道,主要说一下重要的地方。我的主题也是用的是agnoster,所以必须要安装powerline字体,但是这个字体我觉得都很丑,由于我一直习惯了iTerm2的monaco字体,所以单独 下载这个字体Monaco for Powerline并安装即可。 我是工具的颜值党,所以调色也很重要,这个需要通过iTerm2配置 然后有一些关于agnoster theme的配置,这个去修改~/.oh-my-zsh/themes/agnoster.zsh-theme,里面的配置改改就明白是什么意思了。 我的zsh一些比较重要的插件,autojump这个插件很有用,会记录你访问过的所有路径,对于深目录可以直接j 跳转,zsh-syntax-highlighting命令语法高亮 当然vim主题也被我修改了
https://la0s.github.io/2018/05/02/Crypto/
在APP的网络协议中,这些对称加密和非对称加密算法常会用在APP和服务器的交互数据中request和response(部分可能会用在数据的签名),识别这些算法是非常重要的,这里给出整理好的Java版(smali层)加密算法,C/C++(so层)也类似,主要就是识别这两行 Cipher.getInstance("AES/CBC/PKCS5Padding") cipher.init(Cipher.DECRYPT_MODE, keySpec, iv)
https://la0s.github.io/2018/07/17/Inspeckage/
Inspeckage是一个用来动态分析安卓app的xposed模块。Inspeckage对动态分析很多常用的功能进行了汇总并且内建一个webserver。整个分析操作可以在友好的界面环境中进行 安装和使用笔记Inspeckage使用笔记 安卓分析工具Inspeckage介绍
https://la0s.github.io/2019/03/21/iOS_Resign/
还是上篇文章里那个有反调试的APP,我们这里来试一下静态patch的方法,也就是重打包的方法。一般来说iOS重打包有两种方法: 第一种方法:直接使用Cydia Impactor使用开发者签名安装即可,这种情况下不会修改APP的BundleID(推荐) 第二种方法:先使用iOS App Signer手动签名 然后使用mobiledevice install_app ~/Downloads/*.ipa 命令安装 但是这种情况下会把自己的签名覆盖APP的BundleID,有可能会导致异常 针对于这个APP的ptrace反调试,直接使用Keypatch插件Nop掉sub_10004FF4C函数即可,然后Edit -> Patch program -> Apply patches to input file替换掉二进制文件即可 重新压缩成IPA文件,使用Cydia Impactor安装,但是应用闪退了,这说明应用做了签名校验,一般来说iOS开发会用exit函数退出应用,直接找到_exit的调用者 一个很明显的OC函数[XYAppIdentifierManager appIdentifierWithOrganizationId:],查看此函数 修改指向退出流程的跳转指令CBNZ -> CBZ,再重新打包应用就不会闪退了
https://la0s.github.io/2018/06/20/xposed/
xposed创建教程参考 Android Studio Xposed模块编写
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.