小虾米资讯

AD1
当前位置:网站首页 / android / 正文

android:安卓逆向工程师面试指南,干货整理分享

2020-12-15 17:22:00 / 我要吐槽 查看是否已被百度收录 查看是否已被谷歌收录 查看是否已被搜狗收录 查看是否已被360收录
AD2
面试中对应的具体要求:1、加解密:一般都是遇到后再折腾解密,而且解密代码和秘钥一般都在代码里面。2、了解apk的具体含义,结合安卓开发进行反编译。3、Andorid本地提权获得root权限,一般真机是用recovery刷机包,但是病毒提权是怎么样的,目前掌握的一种提权的是像输入命令行一样输入su并且用pm提权,还有一种是修改init.rc文件。4、主要掌握ida动态调式和代码跟踪5、打包,编译和破解的流程是什么样的?5,so破解:一般就是破壳。如360等。补充:加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作。大多数病毒就是基于此原理。加壳的程序经常想尽办法阻止外部程序或软件对加壳程序的反汇编分析或者动态分析,以达到它不可告人的目的。这种技术也常用来保护软件版权,防止被软件破解。6,了解反破解的技术举例如:1.反模拟器2.反静态代码分析器如:反jeb应该也是有很多反ida的,也就是加壳。

安卓逆向工程师的任职要求1、具有丰富的Android开发分析经验,熟悉Android系统架构,熟悉android安全机制;2、精通汇编语言、Java、C/C++语言,熟悉Smali语言,对逆向工程有浓厚兴趣;3、熟练掌握ida、gdb逆向分析工具;4、熟练掌握软件逆向静态分析、动态调试、代码跟踪等;5、熟悉so和java层hook;6、熟悉Android开发,了解打包、反编译、破解流程;7、深入理解arm linux和Android底层运行机制;8、熟练掌握各种调试工具:Smali、Dedexer、Dexdump、Apktool、Dex2jar、jd-gui。

1.Android的生命周期答:onCreate - onStart - onResume-onPause-onStop-onDestory-onRestart2.Android的入口函数答:继承了application类中的attachContext,onCreate3.Xposed框架的原理及常用的函数答:替换system/bin/app_process文件,app_process就是zygote进程文件,所以xposed通过替换zygote进程实现了控制手机上所有app进程常用函数(1)findAndHookMethod参数:实现该方法的类的名称,用于解析目标和参数类的类加载器, 目标方法名称,目标方法的参数以及回调(2)findAndHookConstructor hook构造函数参数:实现该方法的类的名称,用于解析目标和参数类的类加载器,目标方法的参数以及回调(3)findClass:使用指定的类加载器查找类类名的语法java.lang.Stringjava.lang.String[]android.app.ActivityThread.ResourcesKeyandroid.app.ActivityThread$ResourcesKey参数:上面格式的类名,类加载器(4)findField : 在类中查找自动并将其设置为可访问参数:变量所在的class,变量名String(5)CallMethod 调用给定对象的实例或静态方法参数:对象实例,方法名称,方法调用的参数

(6)newInstance 创建给定类的新实例参数: 类引用,构造函数调用的参数

4.Hook和注入有哪些Hook:反射在程序动态运行的时候,对于任意一个类,都可以获取其所有的方法和变量Java的动态代理注入:Smali注入5.反调试Tracerpid不等于0Ptrace自身IsDebuggerConnect6.网络协议Http tcp iphttp是一个使用TCP的应用层协议,网络层使用IP协议传输层协议:TCP/UDPTCP(传输控制协议) 面向连接的协议UDP (用户数据报协议) 无连接协议

7.加密算法DES 3DES AESMD5 SHA1对称加密算法:DES(数据加密标准)算法:DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位(实际用到了56位,第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1)3DES(即Triple DES)是DES向AES过渡的加密算法,它使用3条56位的密钥对数据进行三次加密。是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法。比起最初的DES,3DES更为安全该方法使用两个密钥,执行三次DES算法,加密的过程是加密-解密-加密,解密的过程是解密-加密-解密。3DES加密过程为:C=Ek3(Dk2(Ek1(P)))3DES解密过程为:P=Dk1(EK2(Dk3(C)))采用两个密钥进行三重加密的好处有:①两个密钥合起来有效密钥长度有112bit,可以满足商业应用的需要,若采用总长为168bit的三个密钥,会产生不必要的开销。②加密时采用加密-解密-加密,而不是加密-加密-加密的形式,这样有效的实现了与现有DES系统的向后兼容问题。因为当K1=K2时,三重DES的效果就和原来的DES一样,有助于逐渐推广三重DES。③三重DES具有足够的安全性,目前还没有关于攻破3DES的报道。AES(高级加密标准)AES加密算法采用分组密码体制,每个分组数据的长度为128位16个字节,密钥长度可以是128位16个字节、192位或256位,一共有四种加密模式,我们通常采用需要初始向量IV的CBC模式,初始向量的长度也是128位16个字节。非对称加密算法RSA算法原理:两个大质数相乘

8.阿里壳脱壳的步骤动态调试在dvmDexOpenFile下段用IDA脚本Dump9.动态调试的步骤开着Android monitorIDA动态调试运行Android_server端口转发adb forward tcp:23946 tcp:23946调试启动程序am start -D n 包名/.活动名IDA附加F9在linker关键位置下断jdb -connect com.sun.jdi.SocketAttach:port=8700,hostname=localhost10.Apk使用apktool打包1.apktool d test.apk 解包test.apk2.apktool b test.apk 重打包test.apk

Powered By © 小虾米资讯 2015

(本站部分文章来源于网络或网友爆料,不代表本站观点,如有侵权请联系及时删除 )