首页 > 编程知识 正文

安卓逆向算法,安卓逆向怎么学

时间:2023-05-06 08:21:41 阅读:158362 作者:873

俗话说:“反而深深地像大海,今后头发是行人。”

安卓作为目前热门行业“网络安全”的关键技术之一,受到越来越多人的青睐。 但是,很多刚入门的初学者伙伴还在犹豫如何学习。 本文将分享android逆向学习途径供您参考。

现在,学习Android逆向发展的人大致分为两类:

第一个是完全没有基本计算机的纯电话

二是开发原本就懂编程的IT界人士。

试着对这两个不同的小组进行Android的反向学习途径分析吧。

一.无基础的高雅电话想入门

作为没有任何基础想入门的计算机的纯粹高雅的电话,学习建议参考以下步骤。

(一)基本功:读码、写码

1 .语言

既然要做IT行业,首先最基础的就是理解专用语言。 计算机行业的基本语言是汇编语言、c语言、c语言等,必须至少学习一门低级语言和高级语言。

汇编语言:

1 )了解处理器的基本体系结构和运行环境

2 )了解处理器获取、解释、执行指令的流程,以及与之相关的其他流程

3 )熟悉一般汇编指令与高级语言的关系

C语言:

1 )掌握基本语法

2 )熟悉编译、链接、程序转载执行的流程

3 )了解基本数据类型、结构、内存通用的表达形式

4 )熟悉使用IDE环境开发、调试程序

5 )了解数据集的寻址方式

6 )精通c语言

C语言:

1 )了解c对c扩展的原因

2 )熟悉面向对象编程

3 )了解底层对象、继承对象在内存中的表示形式

4 )了解c中多态性编程的技术原理。

2 .数据结构

一旦你能读代码,下一步就是学会写代码。 编写代码所需掌握的基本技能是熟悉数据结构。

数据结构这一领域,着重于两点。 第一,了解复杂性的概念,面对日常任务,选择最合适的; 二是利用通用编程手工实现链表、栈、堆、数组等常用数据结构库。

(二)开发技能

首先,学习反向的前提是理解开发。 至少要学习安卓的发展方向,就要了解安卓开发的各个方面的原理、运行机制、保护机制等。

! 在此插入图像描述(3359 img-blog.csdn img.cn/2020092115362693.png )? x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text _ a hr0 CHM6ly9ibg9nlmnzzg4u bmv0l0hyyypdgk

接下来,您需要了解JAVA框架(至少一个框架)。

在Java框架中需要学习的是:

1 ) Java的类和对象

2 ) Java软件包

3 )在Java中继承

4 ) Java多态性

其他技能:

1 )编程语言开发

2 )数学基础,英语基础

3 )数学结构和算法

4 )操作系统

5 )编译原理

6 )软件分析

7 )常用反向技巧工具

(三)人形机器人反向基础知识

这个部分包含安卓相关和逆相关。 到了这一步,应该也做了基本的工作。 接下来是安卓逆向入门。 包括环境构建、apk理解、APP开发运行机制、APP防护机制等。

(四)实践

(五)学习途径

1 .自学:

对于刚进入计算机行业的同学,很多班都不想收。 因为补习基础需要很多时间,会影响教育的效率。 如果真的感兴趣还想学习的话,前期多关注各种论坛、社区、论坛,各种入门教程和经验分享都很丰富。

2 .培训班学习:

大多数班级不会接到平静的电话,但好的班级也会专门开设基础班。 如果自学能力不强,不能继续下去,建议综合各方面因素找一个真正好、适合自己的班级学习。 虽然也有实行师徒制的班级,但实际上也适合初学者。 如果初学者不知道的话,还是需要别人的解答。

(七)通过高雅的电话学习容易遇到机器人反向的误区和建议

误植:

1 .缺乏详细系统的学习计划,越学越迷茫,不知道该向哪里学习,容易放弃。

2 .不知道学习的方向。 学习的技术不是现在企业需要的,跟不上时代,没有职业竞争力。

3 .学习效率非常低,遇到小问题需要时间解决,有时会卡几个小时,导致自信受挫,怀疑自己是否适合。

4 .由于没有掌握安卓逆向学习的方法和技巧,绕道太多,无法进入程序的死胡同。

建议:

1 .初学者不可能自己解决所有的问题。 紧咬不放只会浪费很多时间,消耗耐心。 前期最好由了解这项工作的人带路。 可以随时提问,随时交流,有很好的学习效果,效率也很高。

2 .技术更新很快,别指望把论坛里的旧教程都啃掉。 既然选择学习Android的反向,就必须以现在企业需要的技术水平作为学习的依据。

3 .根据自己知道的情况,找大师找一个可靠的老师教你比较好。 当然,前提是可靠。

二、有想跳槽的基层员工

对于原本长期从事编程和开发的人,为了学习Android的发展方向而想要跳槽的、相对没有任何基础的高雅电话来说,这变得相当简单。

p>

既然都隶属于IT范畴,那么无论如何,都是有各种内部外部联系的,学习起来的话很多知识是相通相融的,会省去很多坑。

对于这类有基础的人员来说,学习安卓逆向可以参考这些步骤:
(一)安卓逆向基础
1.环境搭建:进行环境安装,把所有需要的东西都准备好,正式进入安卓逆向学习。
2.分析apk文件:了解apk的开发机制、生成打包机制、运行机制等等。
3.掌握apk反编译及回编译
(二)进阶逆向学习
1.Java层逆向
1)掌握Java语法基础,认识并能使用
2)了解smali语法,能看懂smali代码
3)掌握逆向分析apk中常用的方法和技巧

2.native层逆向
1)了解安卓操作系统和四大组件
2)了解NDK开发流程
3)ARM汇编指令学习
4)ARM处理器八大寻址方式
5)了解ida工具,熟练使用

3.apk保护机制
1)了解Java代码混淆以及资源混淆等混淆方式
2)掌握签名验证、文件校验、模拟器检测
3)本地验证和网络云验证等验证方式

4.掌握安卓调试与反调试

5.hook框架学习
1)hook插件开发
2)了解常用框架,Fridad等

6.常见加密算法
1)编码算法
2)对称与非对称算法
3)Java加密与解密
4)数字签名算法

7.协议加密与解密分析
1)了解客户端与服务器的交互机制
2)了解常用的抓包方式及环境配置,HTTP协议等

8.文件结构
1)了解常用文件结构如:DEX、ELF、XML、ARSC等

9.系统源码
1)常用虚拟机、So加载流程
2)安卓系统启动流程

10.安卓系统常用加固与脱壳
1)DEX文件整体加解密
2)DEX代码抽取
3)So文件整体加密
4)常用加壳方式
5)常用混淆方式
6)常用加壳方式

(三)实践
学习途径参考上文,不再赘述。
总结:
不管是新手还是欲转行有基础有经验的,要学习好安卓逆向,最重要的就是打好基础,基础打好了,剩下的去深入研究,不管是自学还是跟班培训,才能真正学好,不会浪费时间金钱。
加油吧!小伙伴

笔者也给大家整理了一些安卓逆向方面的学习参考资料,包括电子书、课件、教程等,需要的小伙伴可以自取。

如有雷同纯属巧合

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。