Android安全与逆向分析进阶.docx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android逆向 常见加密算法: 古典密码学(以字符为基本加密单元) 移位密码/错位密码 替代密码/置换密码 现代密码学(以信息块为基本加密单元) 哈希算法 非对称加密与解密 椭圆曲线 数字签名 数据分组与校验 散列函数 用于数据完整性校验 MD 消息摘要算法 SHA 安全散列算法 MAC 消息认证算法 CRC 循环冗余校验算法 对称加密算法 加密密钥==解密密钥 流密码:指加密时每次加密一位或一个字节的明文。 同步流密码 同步性 无错误传递性 主动攻击性 音频/视频数据提供版权保护 自同步流密码 自同步性 错误传递有限性 主动攻击性 明文统计扩散性 RC4/SEAL 分组密码(/tools/):指加密时将明文分 成固定长度的组,用同一密钥和算法对每一块加密,输出也是固 定长度的密文。 常用于网络加密 安全性=>扩散/混乱原则 实现性=>软件/硬件 ECB 电子密码本模式 CBC 密文链接模式 CFB 密文反馈模式 OFB 输出反馈模式 CTR 计数器模式 DES DESede/3DES/Triple DES AES TEA/XTEA/XXTEA DEA PBE 非对称加密算法 加密密钥!=解密密钥 公钥==>对外公开 私钥==>对外保密 私钥加密==>公钥解密 公钥加密==>私钥解密 DH 密钥交换算法 基于因子分解 RSA 数据加密/解密 数字签名 基于离散对数 ElGameal 数据加密/解密 数字签名 DSS数据签名标准=>DSA 数字签名 ECC 椭圆曲线加密算法 使用对称加密算法对数据进行加密与解密,使用非对称加密算法 对对称加密算法所使用的密钥进行加密与解密。 数字签名 私钥==>签名 公钥==>验证 单向认证 双向认证 RSA DSA ECC+DSA==>ECDSA 椭圆曲线数字签名算法 认证/鉴别服务 数据完整性服务 抗否认性服务 数字证书 消息摘要算法 对称加密算法 非对称加密算法 数字签名 鉴别/认证 数据保密性 数据完整性 抗否认性 证书管理 KeyTool 构建自签名证书 构建CA签发证书 OpenSSL 根证书 服务器证书 客户端证书 密钥库==>管理私钥 数字证书==>管理公钥 加密/解密 签名/验证 X.509 服务器数字证书 协议加解密分析: 协议与安全协议(分析协议关键是先抓包,再解密) 概念:协议就是服务器与客户端交互信息的一种规则 客户端和服务器连接:实质都是连接服务器的IP地址和开放端口 POST:客户端提交数据给服务器 GET:客户端获取服务器数据 http,ftp,smtp:应用层 tcp,udp:传输层 IP:网络层 帧相关协议:数据链路层 HTTP/HTTP2 HTTPS协议=>https是基于sll/tls的http协议 ssl协议=>安全套接字层 tls协议=>传输层安全 socket=>tcp/udp=>http/ftp 抓包工具: http/https fiddler/charels socket/tcp 抓网卡 wireshark/sniffer 防止代理 小米wifi+wpe 抓不到包原因: 1、如网游副本,有的就是没有包。 2.、iddler只能抓HTTP/HTTPS,如果是socket抓不到的。 3、在动态调试时,没有走到发包的地方。 tcpdump+Wireshark: adb shell tcpdump -p -vv -s 0 -w /sdcard/capture.pcap 开始抓包 ctrl+c 结束抓包 adb pull /sdcard/capture.pcap 导出文件 在实际应用中,利用他人的第三方对我们大有裨益,可以很大程度降低我们的业务成本,很明显的几个例子: 1、制作自动登录工具,协议加密算法在so中,我们可以调用它的加密函数,来发送我们自己的协议。 2.、相对他人so中某个函数情况进行深入分析,如果在别人软件中分析,不但信息繁杂,而且要受制于人。我们可以调用它的某个函数,放在自己开发的软件中进行分析。 3、感觉他人so的功能非常不错,想加在自己项目中。 可见,能够调用第三方so会帮助我们很快解决利用重写看似麻烦的问题,一般来说,调用第三方so加进自己项目,有两种典型需求,第一个就是拥有别人原工程,意图深入了解,并二次开发,这是开发性需求;第二个就是没有别人原工程,甚至只有1个so,意图利用这个so的部分函数帮助我们完成某个目地,这是逆向性需求。 Dex文件结构: 1.dex文件中的数据结构 u1/uint8_t=>表示1字节的无符号数 u2/uint16_t=>表示2字节的无符号数 u4/uint32_t=>表示4字节

文档评论(0)

fydoc118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档