赞
踩
上一节课我们装了Android的开发环境,这一节课,我们动手开发一个简陋的app页面。
App逆向到底该怎么学?
从哪一步开始?
Java…???
Android开发…???
加解密…???
NDK…???
C++…???
我认为应该是从lilac 的blog开始,lilac人最好啦,完全是个人才, 讲的细循序渐进,因为本身是搞爬虫的,所以app逆向会针对爬虫工程师的具体需求;因为自己也是Python工程师,所以懂小白没有Java,Android基础,对逆向的先天恐惧,快来关注lilac吧!!!!!!!!!!(软广结束,下面是重点)
注:这只是一个演示,很粗陋,目的不在于讲解过程和思路,而是为了让大家明白逆向所需要的技能树。
目标:LV 官方app的列表页中的x-wsse字段,每次随机变化,我们需要逆向它的生成规则。
这个app没有加壳加固,如果加了壳,我们就需要脱壳,脱壳是app逆向一个进阶操作。
这一块我们日后再说
这儿涉及到的主要知识点是Xposed模块的编写,需要熟悉Java,熟悉加解密。
静态分析是相对于动态调试而言的概念,爬虫工程师对Js调试一定不陌生,下面我们用Js类比
App静态分析==在Chrome开发者工具界面中搜索关键词和关键javascript代码,并分析Javascript代码
App动态调试==打断点进行断点调试
所以我们首先反编译App,再搜索x-wsse关键字段,分析加密逻辑。
我们使用JEB反编译apk
打开JEB拖入apk
反编译出来的smail代码
搜索到关键代码,下图是Post发送请求构造url的地方
x-wsse 的值为v1,v1由bnf类的a方法生成,进入这个方法,进行详细的分析
P1
P2
至此,我们已经搞清楚了x-wsse的加密和生成方式
如果代码比较复杂,需要进行动态调试,涉及到一些adb的操作,这个app的x-wsse加密已经被我们琢磨透了,所以不需要。
为了安全,越来越多的app将关键加密内容从Java层放到了C++层的so库中,所幸我们分析的这个app并没有这么做,所以不需要。so层加密需要IDA工具的使用,C++、arm汇编代码等知识。
初级的逆向所需要的工具和知识
有没有快速的入门方式?
当然有!!!
下面是我凝练十来年的经验,字字血泪给大家写的五分钟入门系列
Java五分钟从入门到精通:https://dwz.cn/mjvte3GV
Android五分钟从入门到精通: https://dwz.cn/RVnulTz4
如果一门技术很容易学会,那么它就称不上是核心竞争力
如果一条美好的路有捷径,那它会很快会被太多的人踩烂
我会循序渐进带大家学习这些知识,慢慢走上这条少人的路。
大家加油,下期再见。
预告:下一期,我们将开始动手写一个demo app,模拟一次真实的加密场景。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。