5年资深Android开发,转行逆向开发该如何学习?

news2024/12/24 22:06:53

Android逆向是什么?

简单地来说,安卓逆向是对已经打包好的APP进行反编译、源码分析了解APP实现逻辑的一门技术。我们可以把安卓安装时用到的APK文件看作一个加密后的压缩包,逆向就是要最大程序地还原出APK打包之前的源码。

逆向需要用到解密、反编译、解压缩等技术,想要100%还原APK的源码几乎是不可能的,所以在实际进行逆向分析的时候,一般都是根据想实现的目的,分析出APK的部分源码和实现逻辑,然后对这一部分源码进行修改后与原始的APK打包在一起,这样就获得了一个实现自己特定目的的APP。

Android逆向技术可以做哪些?

  • 软件防护 : 根据逆向的方法针对性的开发防护策略。
  • 算法研究 : 在没有源码的前提下 , 通过反编译 , 反汇编 , 拿到 Smali 代码 , 研究其产品的算法 , 实现途径 。
  • 接口分析 : 接入一个没有源码的第三方库 , 无法进行调试 , 出现问题后 , 可以使用逆向的方法 , 查找问题原因 , 解决相关问题 ; 找到问题后 , 修改汇编代码 , 然后重新打包。
  • 数据采集 : 分析应用的数据 , 获取该应用的更新内容 , 运营信息 , 在 APP 中可以拿到一些非公开的数据 。
  • 应用破解 : 单机游戏玩家需求 , 游戏修改器 , 或者应用停止运营 , 没有付费渠道 , 可以进行破解使用。
  • 调试分析 : 应用打包 , 混淆 , 加固 后上传到应用市场 , 如果某个分发渠道版本出现问题 , 可能就需要调试分析具体的这个 APK 包的问题 ; 结合源码与渠道包进行逆向分析, 查找问题原因。

Android逆向需要学习那些才能够拿高薪?

根据一线大厂的逆向大牛,从中获取到的一手学习笔记。可以总结出如下学习路线图:资料笔记参考《Android逆向大厂笔记》

分为8个大类目,如下展示:

  1. Smali指令详解
  2. 加壳和脱壳入门
  3. NDK与逆向
  4. Xposed框架
  5. Frida
  6. 抓包
  7. 加壳和脱壳高级
  8. 加密与解密算法与逆向

结尾

大概逆向的学习需要这八大板块,但是学习逆向开发要一定的Android开发经验。 Android逆向要学习的东西过于冗杂而且涵盖面很广,零基础是极难上手的。零基础的小伙伴建议先入门编程和开发,最起码要先看得懂汇编语言,学会基础的编程开发。

学习安卓逆向,是为了好就业,那么在学习上,最好是偏向于工作实用性。 大致可以总结为汇编语言、Android开发、逆向分析工具、调试工具、SO和java层hook、Linux、Android底层运行机制、脱壳等。

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

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

相关文章

[Web程序设计]实验: Web基础

一、实验目的 (1)掌握开发工具的安装和配置 (2)熟悉程序的编写,运行和访问方法; 二、实验内容 (1)请编写出一个HTML页面,令其输出“hello world!~~”,使用…

略施小计,拥有自己的GPT

ChatGPT一经发布就在AI圈引起轰动,GPT-4和chagpt-plugin让OpenAI和其他同行拉开了更大的差距。由于某些原因,我们可能无法亲身体验ChatGPT的神奇之处。但现在,如果你还没有体验过ChatGPT,就像10年前没有购买比特币一样&#xff08…

SuperMap GIS基础产品WebGIS FAQ集锦(3)

SuperMap GIS基础产品WebGIS FAQ集锦(3) 【iClient】iClient for Leaflet,如何修改map的默认渲染方式? 【解决办法】map的默认渲染方式取决于浏览器支持,可通过renderer属性设置,设置为L.SVG或L.Canvas 【iClient】le…

k8s 学习九,pod 知识点 上

在 K8S 中, pod 是一个非常关键的存在,我们一起来看看 pod 具体是个什么? pod 是个啥? pod 是个什么呢?pod 是 K8S中的一个核心概念 每一个 pod 都会有一个特殊的根容器,叫做 pause 容器,paus…

云原生:深入掌握Docker日志管理:高效策略与最佳实践

前言 在docker的整个生命周期中,超过70%的时间,我们都是在用docker进行运维工作, 查看docker的日志,是运维中的必会技能。 docker日志分为: docker引擎日志应用日志 今天我们重点来讨论下docker的日志使用&#xf…

【博客672】prometheus使用数据外推与兼容跳变重置来优化处理窗口函数(rate,irate,increase)

prometheus使用数据外推与兼容跳变重置来优化处理窗口函数(rate,irate,increase) 场景 以下是用于计算计数器增长率的三个函数之间差异的高级概述: rate():这计算每秒的增长率,在整个提供的时间窗口内平均。示例&am…

谷歌推出“能讲会听”的大语言模型AudioPaLM,实现语音理解和生成

出品人:Towhee 技术团队 作者:顾梦佳 近日,谷歌推出了一个能够理解并生成语音理解的大型语言模型——AudioPaLM。这一模型融合了分别基于文本和语音两种语言模型——PaLM-2 和 AudioLM,形成了一个统一的多模态架构。该模型不仅能对…

@monthly /root/.cfg/./dealer病毒清除

登录服务器时,ssh提示密码不对,就去控制台检查,查看到虚拟平台中多台服务器提示虚拟机CPU使用告警,占用过高。远程无法登录。 原因分析:所有中毒的均为linux服务器,密码设置过于简单,防火墙关闭…

【算法题】统计各位数字之和为偶数的整数个数、替换空格、旋转数组的最小数字

算法题之数字处理 一、统计各位数字之和为偶数的整数个数1.1、题目1.2、理解题目1.3、解题思路(暴力枚举)1.4、解题思路2(数学公式)1.5、小结 二、替换空格2.1、题目2.2、解题:遍历原地修改 三、旋转数组的最小数字3.1…

如何判断TongWeb是否支持某种数据库?

起因: 数据库连接池本是一项成熟的技术,但随着数据库厂家、种类的增加,常常被问到TongWeb是否支持XX数据库? 说明: 数据库连接池的基本思路是,平时建立适量的数据库的连接,放在一个集合中&…

举例说明,JS中的【return true】和【return false】的【使用场景】

1.return true和return false都是写在函数里面 2.如果一个函数需要有返回值,则函数中需要写return相关 3.return true和return false是之后调用这个函数判断用: 如果一个函数需要返回值,则需要在函数中添加return 如果函数中添加的是 比如 …

2-css-4

一 标准流 标准流也叫文档流,指的是标签在页面中默认的排布规则,例如:块元素独占一行,行内元素可以一行显示多个。 二 浮动 1 认识 作用:让块元素水平排列。 属性名:float 属性值 left:左…

跳槽过去,刚工作三天就被裁是一种怎样的体验

前言 还有谁?刚上三天班就被公司公司的工作不适合我,叫我先提升一下。 后面我也向公司那边讨要了一个说法,我只能说他们那边的说辞让我有些不服气。 现在之所以把这件事在csdn上记录一下,一是记录一下自己的成长轨迹&#xff0…

2023计算机组成原理【5-7】

第五章 中央处理器 1.指令周期的概念,与时钟周期、机器周期的区别。 指令周期是执行一条指令所需的时间,包括多个子阶段的时间总和时钟周期是计算机系统中的基本时间单位,由时钟信号控制,用于同步处理器和其他组件的操…

Collectors.toMap使用详解

这里写目录标题 一、使用规则二、源码及方法三、代码示例1.将list转成以id为key的map&#xff0c;value是id对应的Dept对象2.假如id存在重复值&#xff0c;则会报错Duplicate key xxx, 解决方案是3.想获得一个id和name对应的Map<Integer, String>4.把Dept集合按照group分…

5年软件测试工作经验,高不成低不就,真的只能转行了吗?

迷茫感&#xff0c;从哪里来&#xff1f; 不知不觉在软件测试行业&#xff0c;野蛮生长了5年之久。这一路上拥有了非常多的感受。有迷茫&#xff0c;有踩过坑&#xff0c;有付出有收获&#xff0c; 有坚持&#xff01; 我一直都在软件测试行业奋战&#xff0c; 毕业时一起入职…

制作自定义pfx证书(数字签名)

目录 生成server.key 生成server.crt 生成server.pfx 结果 exe文件签名 生成server.key openssl genrsa -des3 -out server.key 2048 Generating RSA private key, 2048 bit long modulus (2 p

单独生成 main.exe, pyinstaller × pyecharts 打包报错找不到文件 map_filename.json 一次搞定!

报错&#xff1a; FileNotFoundError: [Errno 2] No such file or directory: ‘C:\Users\xxx\AppData\Local\Temp_MEI3455\pyecharts\datasets\map_filename.json’ pyecharts 打包成 exe 的时候找不到 map_filename.json 文件。先找到这个文件,一般在本机 Python 安装目录下…

一文掌握linux系统管理命令

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

SuperMap GIS基础产品移动GIS FAQ集锦(3)

SuperMap GIS基础产品移动GIS FAQ集锦&#xff08;3&#xff09; 【iMobile】网络分析中设置权值字段&#xff0c;如何添加多个权值字段&#xff1f; 【解决办法】通过权值字段集合类&#xff08;WeightFieldInfos&#xff09;设置&#xff0c;该类是权值字段信息对象&#x…