本帖最后由 七少月 于 2016-8-18 23:38 编辑
2016年最新大型公开课《安卓逆向从新手到高手》系列基础课程:
我是七少月,因为继dawn的2014年度经典14课《安卓逆向基础》之后,网上的东西过于零碎,尤其让想往移动安全学习的朋友难以入手,看大神们的帖子,往往由于基础不足,无法看懂。加之时过境迁,对于安卓逆向安全的基础定义也早已改变,所以我决定出这一套简单,系统又不失内容的公开课。至于我的培训班,其实无所谓,我一向主张,有条件的、感兴趣的、相信我的可以来,我也依然会把一些研究资料无条件分享。相信大家在学完这套简单公开课后,一定会有所收货。
新年之际,我会连续把一些研究文档:dex自解析重构、微信红包自动屏幕点击、半自动化重构修复脱壳等等,无条件发布。希望可以喜欢。
首先,我要非常感谢吾爱,看雪,逆向未来,龙天,E4A等各大论坛及他们的站长先生,是他们给予我学习和发展的平台。其次,我也感谢一批好友:鬼哥,Rover,低调,淡然,Eriky,繁华,sherry,小白,法总,dawn,magic,鲨鱼,无痕等等,是他们无私帮助着我;感谢我的第一批安卓开发吧的学生:付伟,蓝天等等。
最后感谢所有支持我的朋友:谢谢!新年快乐!
第一课:
一般安卓:
1.JDK(环境变量),最好有整套安卓开发环境,如sdk,ndk。
2.Anroid killer1.3.1
3.海马玩模拟器,夜神安卓模拟器,geny模拟器如果可以掌握更好
4.安卓逆向助手2.2
5.辅助:IDA6.8,Winhex18.0,Beyond compare等等,
Unity3d安卓:
1..netframework4.0
2.reflector9.0
3.disunity3.4
4.DE4DOT3.2与DOT4ID
5.VS2015
第二课:
1.没有编程基础怎么办
2.JAVA语言基础
3.Dalvik虚拟机与smali语言
4.smali基础语法
4.1 摘要
4.2 最重要的三个关键词 const if invoke
4.3 smali对应的十六进制opcode及用途简介
注意:NOP指令与指令清空区别
5.分析第1个Hello.smali与Hello,apk
第三课:
先查壳,再反编译看验证
去除他人:
1.去安装盒子
2.去除toast字符串
3.去除背景图片
当遇到多种思路时,如何判断:(经验,能力,利益权衡)
如去除背景图片:
1.清空initlanchview()或不让其被调用
2.清空getassetfromimage函数()
3.去掉initlanchview()中调用getassetfromimage函数()的代码
添加自己:
1.软件名称
2.添加toast
第四课:
局部分析与全局分析
样本1:
修改隐藏jar包字符串
样本2:
1.去xml广告
2.利用清空彻底去广告(上次是从上层去除对于该函数的调用)
样本3:
去全屏广告:多思路,灵活,不单是删,还可以让它快速消失或隐藏
资源ID,组件(控件)
去更新几种办法:
1.修改xml
2.修改跳转
3.另类去更新(找组件)
去更新(稍难):
1.样本1:加密字符串在version.txt文档,上传服务器
2.样本2:在so里,然后上传服务器
总结,字符串等关键信息搜索不到:
1.在so
2.被加密
3.结合了服务器,服务器返回,本地只显示
第五课:
内购都是一些死点
内购办法两种:
1.确定购买,出现支付窗体后取消即成功
2.取消购买,路径转向别的支付,成功且可以购买窗体直接消失
抓住三个点:
1.listener类 :paylistener,IAPlistener等
2.关键判断函数 :onbillingfinish,payresult等
3.具体的成功、失败、取消函数 :paysuccess,onsuccess等
注意的问题:
几个paysuccess,函数名相同,但参数不同,我们旨在改中间一层或两层的函数
原因:太上层接触不到核心,太底层又无法修改
三层架构或四层架构
技巧:
关键函数往往在类似于a$1$1.smali这样的偏下层的smali中
第六课:
服务器与post(VIP)
1.隐藏图标,入口点,界面与服务
入口点抹去与动态声明
插件与service
2.简单动态加载加固实现
proxyapplication
DexClassload
微加固平台:http://skeym.com/
3.IDA静态分析修改函数
重要偏移地址:2048
4.IDA静态分析修改跳转
重要偏移地址:2FD170
5.脱壳修复案例
永久百度网盘下载链接:https://pan.baidu.com/s/1c5I7me
|