美文网首页
Android逆向面试可能问的问题

Android逆向面试可能问的问题

作者: 颓废中二少年 | 来源:发表于2019-07-08 15:34 被阅读0次

1.Android的生命周期

答:onCreate - onStart - onResume-onPause-onStop-onDestory-onRestart

2.Android的入口函数

答:继承了application类中的attachContext,onCreate

3.Xposed框架的原理及常用的函数

答:
替换system/bin/app_process文件,app_process就是zygote进程文件,所以xposed通过替换zygote进程实现了控制手机上所有app进程
常用函数

(1)findAndHookMethod

参数:实现该方法的类的名称,用于解析目标和参数类的类加载器, 目标方法名称,目标方法的参数以及回调

(2)findAndHookConstructor hook构造函数

参数:实现该方法的类的名称,用于解析目标和参数类的类加载器,目标方法的参数以及回调

(3)findClass:使用指定的类加载器查找类

类名的语法

java.lang.String

java.lang.String[]

android.app.ActivityThread.ResourcesKey

android.app.ActivityThread$ResourcesKey

参数:上面格式的类名,类加载器

(4)findField : 在类中查找自动并将其设置为可访问

参数:变量所在的class,变量名String

(5)CallMethod 调用给定对象的实例或静态方法

参数:对象实例,方法名称,方法调用的参数

(6)newInstance 创建给定类的新实例

参数: 类引用,构造函数调用的参数

4.Hook和注入有哪些

Hook:

反射

在程序动态运行的时候,对于任意一个类,都可以获取其所有的方法和变量

Java的动态代理

注入:

Smali注入

5.反调试

Tracerpid不等于0
Ptrace自身
IsDebuggerConnect

6.网络协议

Http tcp ip
http是一个使用TCP的应用层协议,网络层使用IP协议
传输层协议:TCP/UDP
TCP(传输控制协议) 面向连接的协议
UDP (用户数据报协议) 无连接协议

7.加密算法

DES 3DES AES
MD5 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脚本Dump

9.动态调试的步骤

开着Android monitor
IDA动态调试
运行Android_server
端口转发adb forward tcp:23946 tcp:23946
调试启动程序am start -D n 包名/.活动名
IDA附加
F9
在linker关键位置下断
jdb -connect com.sun.jdi.SocketAttach:port=8700,hostname=localhost

10.Apk使用apktool打包

1.apktool d test.apk 解包test.apk
2.apktool b test.apk 重打包test.apk

相关文章

网友评论

      本文标题:Android逆向面试可能问的问题

      本文链接:https://www.haomeiwen.com/subject/ukzohctx.html