一、网安学习成长路线图
网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、网安视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
三、精品网安学习书籍
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、网络安全源码合集+工具包
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、网络安全面试题
最后就是大家最关心的网络安全面试题板块
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
APK加固的初衷是防止APK被逆向、防篡改、实现数据保护。早期电诈APP中很少有加固的应用,而近期加固的电诈APP明显增多。
APK静态分析思路
APK内部结构
apk本质是个.ZIP格式的的压缩包,直接修改后缀解压就能看到完整的文件结构
常用
AndroidManifest.xml 全局清单文件
classes.dex运行在dalvik虚拟机上的可执行文件
META-INF 签名信息(安装验证)
resources.arsc 二进制资源索引文件
res 资源文件夹
Asssets 资源文件夹
lib 存放so文件
AndroidManifest.xml 全局清单文件
是每个Android程序中必须的文件,它位于整个项目的根目录。该文件配置程序运行所必要的组件、权限、以及一些相关信息。
主要包括:
- 包名:APK安装包名
- 版本信息:APK版本及SDK版本
- 权限:APP运行权限
- 组件:Activity主入口函数、服务Services
- 第三方SDK调用信息
AndroidManifest.xml分析方法
- 使用逆向分析工具查看
- 使用小工具自动读取
SDK
SDK是软件开发工具包(Software Development Kit)的缩写。它是一组开发工具和文档的集合,用于帮助开发者创建特定软件系统、框架、库或应用程序的工具。SDK通常包括各种库、API、示例代码、开发者文档和工具。
通过使用SDK,开发者可以简化软件开发过程,提供了一些常见功能的封装,如网络通信、图形界面、数据存储等。SDK还可以提供开发环境、调试工具和模拟器等,帮助开发者测试和调试应用程序。
SDK通常针对特定的平台或技术,如移动应用程序开发(如Android或iOS)、Web开发、游戏开发等。开发者可以使用SDK来访问平台的特定功能和服务,加快开发速度并提高应用程序的质量。
META-INF(Certificate)签名信息目录
在Android系统中,不同app之间是依靠包名、数字签名共同来进行区分的,签名用来保证apk包的完整性和系统的安全性,里面包含了三个文件,MANIFEST.MF、CERT.SF、CERT.RSA
Certificate证书信息中主要包括:
- APK中的证书公钥
- 有效日期
- 签名及证书的MD5、SHA-1、SHA-256指纹信息
res(Resources)资源目录目录
包括图片、颜色等等,在这个目录中的所有文件,最终会被映射到Android工程中的R文件中,生成对应的int型的ID,在程序中访问这些资源文件的时候,直接使用资源的ID就能进行调用
目录 | 功能 |
res/anim/ | 定义的是预置的动画对象。一般是逐帧动画或补间动画。而实际使用上,都是一些淡入淡出,缩放和移动等的补间动画居多 |
res/color | 定义一些Android view状态变化时,使用的颜色值。这通常是绑定到一个界面元素上的,比如一个button被按下,弹起或disable时的颜色 |
res/drawable res/drawable-hdpi res/drawable-land-hdpi res/drawable/mdpi res/drawable/ldpi res/drawable/port … | 定义要被用到的位图资源文件。这些位图资源可以是 |
bitmap,也可以是用xml描述的bitmap | |
注意:文件后缀为9.png是一种特殊的位图,一般是通 | |
过draw9patch生成的,是一种可自动伸缩的位图资源 | |
Drawable的其他目录形式,land是横屏的,port是竖屏 | |
的;hdpi是高分辨率的,ldpi是低分辨率的。这里可以放置为特定情况下的界面优化资源 | |
res/layout/ | 定义的UI layout,被aapt parser后,可由Android直接render成view界面。 这里也有横竖屏和dpi之分 |
lib(Libraries)so文件目录
这个目录中存放着应用依赖的native文件,这些以.so结尾的文件是用C或C++语言编写的,一个简单的Android应用可能不需要这些库,但功能全面而又追求性能,单纯依靠JAVA会很吃力,这时就依赖C/C++。在涉案的APK文件中,一些数据因需要加密也会使用SO文件进行封装处理。
根据手机CPU的架构,lib库大体上可分为四种:ARM、ARM-V7、MIPS和x86,对应目录分别是:armeabi、armeabi-v7a、mips和x86
给大家的福利
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
网络安全面试题
绿盟护网行动
还有大家最喜欢的黑客技术
网络安全源码合集+工具包
所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!