2016年最新大型公开课《安卓逆向从新手到高手》系列基础课程
2016年最新大型公开课《安卓逆向从新手到高手》系列基础课程:第一课:
一般安卓:
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.脱壳修复案例
下载地址:
**** Hidden Message *****
谢谢分享谢谢分享 谢谢分享~~讚唷~正好需要辛苦囉 好东西必须顶,看看菜鸟能看懂不
新手学习一下 感谢楼主分享这么好的学习资料
感谢楼主分享 学习了
录多少课了
这个看上去很赞,谢谢分享。