软件安全 ---- 应知应会 之 一个逆向通法
逆向并不是从程序第一条指令逐行阅读,而是“侦察 → 找关键区域或者说是入口程序 → 分析数据流和函数内部外部控制流 → 依据你的理解不断重命名变量和函数为有意义的并添加注释 → 重建程序逻辑→ 可选恢复等价源码”。
例如通过识别函数调用约定来识别参数和局部变量,通过 函数API 调用推断变量含义,然后逐步把 local1 之类的未知变量还原成 loop_counter 等有语义的信息。
大型程序绝大部分代码与你的目标无关,优秀逆向工程师的重要能力是过滤噪声、快速定位关键代码。
免责声明
本文档所有内容仅供安全研究、学术交流与技术学习使用,严禁用于任何未经授权的逆向破解、网络攻击、隐私窃取、恶意软件开发及其他违反《中华人民共和国网络安全法》《数据安全法》等法律法规的行为,使用者应确保已获得目标软件权利人的合法授权并自行承担因使用本文档内容所产生的一切法律责任与后果,作者不对任何直接或间接损害承担任何责任,继续阅读即视为您已知悉并同意上述全部条款。
浙公网安备 33010602011771号