小虾米资讯
AD1android:安卓逆向工程师面试指南,干货整理分享
2020-12-15 17:22:00 / 我要吐槽安卓逆向工程师的任职要求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
- 上一篇: 用Android studio写一个wei聊天页面,求大神指点
- 下一篇:兽王就是个辣鸡职业
Powered By © 小虾米资讯 2015
(本站部分文章来源于网络或网友爆料,不代表本站观点,如有侵权请联系及时删除 )