逆向工程的未来在哪里?掌握逆向技能,开创新的职业道路!

news2025/1/25 9:08:56

前言

随着移动互联网的兴起,“APP”成了99%的互联网企业主要运营的产品,知名的例如“支付宝”、“美团”、“滴滴”、“抖音”等。用户基数的不断变大,安全性也经历着巨大的挑战。

app越来越多,也离不开我们的生活,而安卓逆向也是近几年才兴起的一个行业,市场饱和度不高,发展前景广阔。

随着app的增加安全是一个很大问题,想要解决安全问题就得用到逆向知识,由此逆向岗位会随着app得的增加会越来越多。

如何学习Android逆向

从上面了解到Android的逆向不管是前景还是岗位需求,还是最为关心的薪资问题都有着非常好的表现。那么我们怎么学习逆向呢?

作为入坑Android逆向两年,我个人的话建议一开始先从AOSP入手, 结合Android系 统的具体行为和源码,穿插着写一些普通的app和简单的xposed插件,先对Android系统有一个大致的了解。

在这过程中需要逐步的了解Java和生成的smali之间的对应关系,比如Enum、Lambda等在编译后是什么样的。然后就可以拿一些普通的app练手 了,遇到不会的就去请教认识的dalao或者 上GitHub看有没有其他项目的实现。

困难的话我感觉最大的是在这个过程中你会遇到很多之前从来没有接触过的东西,包括Android和某些大厂的设计模式等。做逆向就不能像写Python之类的把设备和操作系统都当成是黑箱来调用,而需要深入的去了解很多Android和Java SDK的具体实现。在这个过程中还可能会遇到各种限制,比如部分Android厂商不开放BL解锁,还有SELinux动不动给你扔个Secure Exception之类的。

逆向知识点学习路线

对于Android逆向的学习,可以总结出以下内容;详细内容如以下图所示:

高清逆向技术点路线图获取可以点击《Android核心技术手册》;更多详细逆向知识可以查看详细内容。

第一阶段:基础篇

1.逆向环境搭建

2.了解APK文件

3.APK反编译二次打包

4.逆向必学Java知识点

第二阶段:进阶篇

1.Java层逆向分析

2.Android NDK

3.ARM汇编

so层逆向分析

第三阶段:高级篇

1.反调试与反-反调试

2.APK保护策略

3.xposed框架

4.frida框架

第四阶段:终结篇

1.常见加解密算法

2.协议加解密分析

3.协议实战分析

4.文件结构

5.系统源码分析

6.加固技术

7.脱掉应用外壳

学习总结

android逆向是杂学,考验的是知识广度+深度+经验;因此android逆向的培训,无法像java,php,c#这类常规语言一样被量化 。一定要搞清楚学习的路线,入门学什么,初期学什么,后期学什么。要不然真的会越学越累,最后放弃了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/632007.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

团队管理之性能实施团队日志10

在这一周中基本上遇到了性能实施过程中应该遇得到的复杂的问题。 像堆外内存引发OOM Killer,C coredump,负载该均衡不均衡,主机资源不够用,数据引发TPS抖动,IO引发TPS抖动之类的。 在这个项目中几乎碰到了我之前遇到…

2023Fiddler抓包学习笔记 -- 环境配置及工具栏介绍

一、Fiddler介绍 Fiddler是位于客户端和服务器端的HTTP代理,常用来抓http数据包,可以监控浏览器所有的http和https流量,查看分析请求数据包和响应数据包,伪造请求和响应等功能。 二、下载安装 1、下载地址 https://www.teleri…

企业——缺省路由

缺省路由是目的地址和掩码全为0的特殊路由 如果报文的目的地址无法匹配路由表中的任何一项,路由器将选择依照缺省路由来转发报文。 ip route-static 0.0.0.0 0.0.0.0 实验要求: 1、按照图中的要求配置IP 2、要求使用静态协议缺省实现访问2.0、3.0、…

linux时间同步,ntpd、ntpdate

linux时间同步,ntpd、ntpdate 一.Linux系统时间的设置二.Linux硬件时间的设置三.系统时间和硬件时间的同步四.不同机器之间的时间同步(重点)五.ntpd服务的设置六.ntp服务的启动与观察七.具体实践:7.1 NTP的配置7.1.1 配置/etc/ntp.conf7.1.2配置/etc/ntp…

VHDL语法

VHDL完整的、可综合的程序结构,必须包含实体和结构体两个最基本的语言结构。 具体取名由设计者自定,由于实体名实际上表达的是该设计电路的器件名,所以最好根据相应电路的功能来确定, 标识符命名规则: (1)标识符主要由字母、数字…

2023年中职组“网络安全”赛项南昌市竞赛任务书

2023年中职组“网络安全”赛项 南昌市竞赛任务书 网络空间安全赛项规程 一、赛项名称 赛项名称:网络空间安全 赛项组别:中职组 二、竞赛目的 通过竞赛,检验参赛选手对网络、服务器系统等网络空间中各个信息系统的安全防护能力&#xff0…

重用Playbook

文章目录 重用Playbookinclude语句如何写role默认变量和普通变量的区别tasks/main.yaml 如何使用变量、静态文件和模板使用x/*/main.yaml中的变量使用x/*/other_but_main.yaml中的资源 role的依赖 重用Playbook Ansible支持的两种重用机制是Roles和Includes。 Roles是一种可重…

【RuoYi-Cloud-Plus】学习笔记 06 - Sentinel(一)关于 StatisticSlot 以及 LeapArray

文章目录 前言参考目录学习笔记1、Sentinel 简介2、Sentinel 架构图3、Sentinel 源码学习3.1、包结构3.2、 LeapArray (滑动窗口算法的实现)3.3、StatisticSlot3.3.1、StatisticSlot#entry3.3.2、StatisticSlot#exit3.4、StatisticNode、StatisticSlot、…

Linux——基础网络设置

个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。座右铭:海不辞水,故能成其大;山不辞石,故能成其高。 个人主页:小李会科技的…

几个事件的问题

1.PC端的click是点击事件,移动端的lick会存在300ms延迟 移动端的click是单击事件,单击事件:第一次点击后,监测300ms, 看是否有第二次点击操作,如果有就是单击,如果有就是双击。 如何解决: 单手指事件模型…

Linux 操作系统原理 — tc 流量控制技术解析

目录 文章目录 目录Traffic ControlTraffic Control 的基本实现原理流量处理的三个层面流量处理的关键流程流量队列的类型FIFO 队列PFIFO_FAST 队列SFQ 队列令牌桶队列 Kernel Traffic Control 的工作原理Qdisc(队列描述)Class(分类&#xff…

电子元器件解析之电容(二)——电容分类与应用场景

书接上文:电子元器件解析之电容(一)——定义与性能参数:https://blog.csdn.net/weixin_42837669/article/details/131142286 摘要 本文总结了各种不同介质电容的特性,包括陶瓷电容、电解电容、薄膜电容等;同时对一些特殊场合的电容…

Transformer Block运算量

参考:Swin Transformer论文精读【论文精读】_哔哩哔哩_bilibili 在看朱毅老师讲解Swin Transformer论文时,里面有一个Transformer Block的计算复杂度的推导计算,感觉清晰明了,这里做一下记录,先说一下结果,…

Android:Handler

参考来源 参考来源 参考来源 参考来源 Handler机制(面试版) Binder/Socket用于进程间通信,而Handler消息机制用于同进程的线程间通信 handler机制是android系统运行的基础,它采用生产者,消费者模式进行设计。其中生产…

基于SSM的青少年编程学习系统设计与实现

摘 要:在智能技术飞速发展的今天,各国都努力争取在人工智能时代的发展中占据优势,青 少年编程教育就显得格外重要。不过,相比一些青少年编程教育发展更先进的国家,我国青少 年编程教育仍处在初级阶段,很多青…

服务器(裸机)如何安装Centos 7系统

1. 下载系统镜像(可以选择自己对应的版本) http://mirrors.aliyun.com/centos/7/isos/x86_64/2. 制作linux系统U盘 下载UltraISO制作工具并安装 再准备一个空U盘(注意:这个操作会将U盘内数据全部删除操作之前请将U盘内文件备份&…

Swift学习笔记(一)基础语法

文章目录 前言开发工具变量与常量变量和常量的定义和使用变量和常量的命名规范注释初识基本数据类型浮点型数据布尔型数据两种特殊的基本数据类型元组可选值类型 为类型取别名模拟面试 字符、字符串与集合类型字符串类型字符串的组合字符类型转义字符 字符串类型中的常用方法集…

Redis的大key

什么是 redis 的大 key redis 的大 key 不是指存储在 redis 中的某个 key 的大小超过一定的阈值,而是该 key 所对应的 value 过大对于 string 类型来说,一般情况下超过 10KB 则认为是大 key;对于set、zset、hash 等类型来说,一般…

K8s in Action 阅读笔记——【13】Securing cluster nodes and the network

K8s in Action 阅读笔记——【13】Securing cluster nodes and the network 13.1 Using the host node’s namespaces in a pod Pod中的容器通常在不同的Linux名称空间下运行,这使得它们的进程与其他容器或节点默认名称空间下运行的进程隔离开来。 例如&#xff…

初学Nginx要掌握哪些概念

文章目录 为什么要使用Nginx?什么是Nginx?Nginx的作用?反向代理负载均衡动静分离 为什么要使用Nginx? 小公司项目刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个…