逆向与逆向工程
逆向并非起源于软件
软件逆向
开源VS闭源
- 开源
- Telegram、ss、ssr、病毒框架等等
- 闭源
- 僵木蠕、某些FQ软件等
- 软件逆向角度
- java-Like
- C
逆向基础
计算机硬件
- CPU寄存器/内存
- CPU指令集32位与64位
- Intel
- Arm
语言
- 汇编语言
- C/C++
- java、C#
- Swift/Objective-C
- Go
- PHP
壳保护技术与对抗
防止程序代码被分析
-
壳
-
UPX(开源,主要功能是压缩程序大小)、ASPack(抗调试)、Armadillo -> 抗调试技术
-
VMProtect、Themide(TMD)、EXECryptor vs 杀软 -> 虚拟机保护技术,简单代码膨胀,增加分析难度,容易被杀毒软件判定为毒
-
FLEXLM -> 注册保护
-
加密狗
-
脱壳
-
带壳调试
- 比低
密码学
- 编码
- 散列算法
- 对称算法
- 非对称算法
操作系统API/库
- 常用
- OpenSSL、Crypto(Python)等
网络协议
- TCP/IP、DNS、HTTP、SSL/TLS、SMB
- 私有协议
工具库
- 静态分析
- Win32dasm、 IDApro、Ghodra、dnSpy、jadx、Hopper(IOS系统)
- 动态调试
- SoftIce、OllyDdg、Immunity Debugger、x64Dbg、Windbg、GDB
- 其他工具
- ExeinfoPe、PEiD、010Editor、WinHex、PETools
- Process Explorer、Process Montor
- Wireshark、Commview、科来网络分析系统
书籍
- 加密与解密、逆向工程核心原理、C++反汇编与逆向分析技术揭秘、IDA Pro权威指南
- Android软件安全与逆向分析
- IOS应用逆向工程
- 恶意代码分析与实战
- 漏洞战争
站点
- 看雪学院
- 52Pojie
- Youtube
- Blog
协议分析
通信协议
通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。
漏洞挖掘
- 同
- 异
重点关注信息是如何一步步生成
私有VS非私有
密码学
- XOR
- 编码
- Base64
- Cknife
- REST API
- Base58
- 比特币
- Base64
- 散列 -> 不论数据长度多少,结果长度固定
- MD5、SHA1
- SHA256、SHA512、RIPEMD-160(比特币)、SM3(国密算法)、HAVAL系列
- CRC32
- 对称加密算法
- 流加密算法
- RC4 -> 缺陷(弱密钥)
- ChaCha20
- 块加密算法
- DES -> 缺陷(位数太短)
- AES、Blowfish、3-DES、RC5/RC6、TEA、Camellia、Serpent、SM4(国密算法)
- 模式
-
ECB、CBC、OFB、CFB
-
- 非对称加密算法
- DH、DSA、RSA、EIGamal
- ECDH、ECDSA
- X25519
- SM2
- 流加密算法