当前位置: 首页 > news >正文

逆向工程入门

Day 16: 逆向工程入门

本章介绍逆向工程的基本概念和常用工具,开始进入二进制分析领域。


1. 逆向工程概述

逆向工程:从二进制程序还原设计思路 应用场景: 1. 恶意软件分析 2. 漏洞研究 3. 软件兼容性 4. 学习理解 法律注意: - 仅用于学习和安全研究 - 尊重软件许可协议

2. 常用工具

反汇编器: - IDA Pro (商业,业界标准) - Ghidra (NSA开源,免费) - radare2 (开源) - Binary Ninja 调试器: - x64dbg (Windows) - OllyDbg (Windows 32位) - GDB (Linux) - WinDbg (Windows内核) 辅助工具: - PE-bear (PE分析) - Detect It Easy (查壳) - HxD (十六进制编辑)

3. 识别编译器和优化

; MSVC特征 call __security_check_cookie push ebp mov ebp, esp ; GCC特征 push rbp mov rbp, rsp sub rsp, 0x20 ; 优化特征 lea eax, [ebx + ebx*4] ; 乘5优化 xor eax, eax ; 清零

4. 识别常见结构

4.1 if-else

; if (eax > 10) cmp eax, 10 jle else_branch ; then分支 jmp endif else_branch: ; else分支 endif:

4.2 循环

; for循环 mov ecx, 0 ; i = 0 loop_start: cmp ecx, 10 ; i < 10 jge loop_end ; 循环体 inc ecx ; i++ jmp loop_start loop_end: ; while循环 while_start: cmp eax, 0 je while_end ; 循环体 jmp while_start while_end:

4.3 switch

; 跳转表实现 cmp eax, 4 ja default jmp [jump_table + eax*4]

5. 识别函数

; 函数序言 push ebp mov ebp, esp sub esp, 0x20 ; 函数尾声 mov esp, ebp pop ebp ret ; 或 leave ret ; 参数位置 [ebp+8] - 第一个参数 [ebp+12] - 第二个参数 ; 局部变量 [ebp-4] - 第一个局部变量

6. 字符串分析

1. 查找字符串引用 - IDA: Shift+F12 - strings命令 2. 跟踪字符串使用 - 交叉引用分析 3. 加密字符串 - 观察解密函数 - 动态调试获取

7. 练习

1. 使用Ghidra打开一个简单程序 2. 找到main函数 3. 分析程序逻辑 4. 重命名变量和函数

8. 小结

[工具] 1. IDA/Ghidra反汇编 2. x64dbg/GDB调试 [识别模式] 3. 编译器特征 4. 控制流结构 5. 函数边界 [分析方法] 6. 静态分析 7. 动态调试 8. 字符串追踪

下一篇预告:Day 17 - PE文件格式


http://www.jsqmd.com/news/377677/

相关文章:

  • 【python毕设源码分享】基于Python的见花则喜线上花店管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 新组的电脑却无法开机,您可能漏了这个
  • 【大数据毕设源码分享】django基于机器学习的旅行产品推荐系统设计与实现(程序+文档+代码讲解+一条龙定制)
  • GCC内联汇编
  • 【python毕设源码分享】基于Web的酒店住宿管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 干货合集:10个降AIGC平台测评,专科生降AI率必备神器
  • 【python毕设源码分享】基于python的租房管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 调试技术和技巧
  • 浮点数运算
  • 【python毕设源码分享】基于Python的协同过滤算法的天气穿搭推荐系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 赶deadline必备! 10个AI论文网站深度测评,继续教育毕业论文写作全攻略
  • YOLOv8眼睛状态检测:基于AFPNet-P345的睡意监测系统_1
  • 【python毕设源码分享】基于Flask和Vue的电商管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 打家劫舍问题的动态规划解法与性能优化笔记
  • 基于SpringBoot+协同过滤推荐算法+智能AI问答的水果线上交易平台开题报告
  • go mapstructure使用例子
  • 硬币找零问题的动态规划解法与实现思考笔记
  • TPJ系列机械式螺旋圆弹簧疲劳试验机
  • 2026年市场评价好的包装袋定制厂家选哪家,四边封包装袋/自立袋/聚酯尼龙袋/三边封拉链袋,包装袋制造厂家推荐排行 - 品牌推荐师
  • 【Python毕设全套源码+文档】基于python的媒体资源管理系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • 『NAS』设置内网固定 IP
  • 教你如何识别台式电脑电源的好坏
  • 【Python毕设全套源码+文档】基于python的采用人脸识别技术的课堂考勤管理系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • 面试必看:打家劫舍
  • 2026年工业研学公司综合评测:聚焦科创实践与产教融合的新趋势​ - 品牌2025
  • 【Python毕设全套源码+文档】基于python的租房管理系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • 56周作业
  • 2026年工业焊接协作机器人知名品牌商选择指南,推荐上海广为 - 品牌2025
  • comsol多孔介质流燃烧器模型,集层流流动模块,流体传热模块,浓物质传递模块和化学反应模块于...
  • 50.k8s管理-1和 k8s核心概述-2 - 实践