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

[原创]X86C++反汇编01.IDA和提取签名

https://bpsend.net/thread-415-1-1.html

用VC6.0新建一个控制台工程

img

img

编译成 debug 和 Release 2个版本

应ida分别查看2种版本的程序

高版本ida 可能会直接定位到函数入口,正常情况下,我们需要先调试找到关键,找到关键以后点再通过调试设置api断点,读写断点等,找到程序的关键点,我们再来逆向,很少有把函数从main函数开始从头逆向到尾的,通常是卡一处关键点,看一出关键功能,看关键功能怎么处理的, 因此需要先调试在用ida打开

ida 可以通过快捷键 G 输入地址点回车,跳到该地址, 按 ESC 键 可以退回原来的地址

找函数入口

必须是低版本的adi,高版本会自动帮你找到

用vs2019 建一个控制台程序

Release

img

点击第二个jmp 然后往下找,找到 3 个push 在一起,下面是个call 的,说明那个call就是到main函数,双击改call即可找到main函数

img

Debug

右键选择代码视图

img

debug那么是2个call,第二个call就类似与Release 版的jmp

双击过去后往下找

img

找mian 函数主要要卡关键点

一般exit 上面就是main函数

img

exit上2个call 就是main函数

img

还有1种方法就是找分支结构,分支结构结束就是

img

3个push

img

快捷键 n 可以对函数名重新命名

img

IDA的使用


  1. IDA对Debug版本和Release版本可执行文件有所区别,一般Debug可执行可以识别符号,Release版本则识别不了。
  2. .idb文件:IDA生成的文件,里面存储了注释等信息
  3. IDA分析后有自己的一套命名规则,如下:
  • 子程序 sub_地址
  • 标号:loc_标号
  • 局部变量:
    • sub:子程序
    • loc࿱

相关文章:

  • 为什么要使用线程池
  • 使用Python控制Arduino——入门与实战
  • IEC 60034-30-1标准解析:旋转电机能效分级与全球影响
  • LangGraph 及多agent
  • Netty学习专栏(四):如何解决粘包/拆包问题及自定义协议的实现
  • 嵌入大模型与LLM技术全面解析与实战指南
  • Day35打卡 @浙大疏锦行
  • 在Linux上安装Miniconda
  • 测试总结(一)
  • QML学习05MouseArea
  • 【LangChain大模型应用与多智能体开发 ② 接入智谱AI】
  • 【大模型面试每日一题】Day 27:自注意力机制中Q/K/V矩阵的作用与缩放因子原理
  • 搜索二叉树
  • InnoDB引擎底层解析(二)之InnoDB的Buffer Pool(三)
  • Linux驱动:基本环境准备
  • 【免费使用】剪Y专业版 8.1/CapCut 视频编辑处理,素材和滤镜
  • 基于CSP模型实现的游戏排行榜
  • AI大模型核心基础:向量与张量原理及实践应用指南
  • ARM笔记-嵌入式系统基础
  • 基于python的百度迁徙迁入、迁出数据分析(城市版)
  • 中山市有做网站优化的吗/2022年时事政治热点汇总
  • 柳市网站建设/灰色词seo推广
  • 网站建设网络推广加盟/外贸网站都有哪些
  • 服务器搭建网站能ping t/西安百度网站排名优化
  • 太原搜索引擎推广/网络优化seo是什么工作
  • dreamwear做网站步骤/南昌seo实用技巧