当前位置: 首页 > 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࿱
http://www.xdnf.cn/news/628291.html

相关文章:

  • 1、初识YOLO:目标检测的闪电战
  • 地下综合管廊 3D 可视化平台
  • CSS定位详解:掌握布局的核心技术
  • C语言数据结构-链式栈
  • 为什么尺规无法三等分任意角?
  • Eclipse中设置Java程序运行时的JVM参数
  • 聊一聊手动测试与探索性测试的区别
  • 嵌入式培训之系统编程(四)进程
  • 试验台铁地板:颠覆传统的创新之举
  • 【RocketMQ 生产者和消费者】- 生产者启动源码 - MQClientInstance 定时任务(4)
  • ✨ PLSQL卡顿优化
  • 嵌入式开发之STM32学习笔记day10
  • Linux系统之pwd命令的基本使用
  • 分布式锁总结
  • 危化品经营单位安全生产管理人员考试主要内容
  • SQL进阶之旅 Day 2:高效的表设计与规范:从基础到实战
  • CMake指令:add_library()
  • 主从复制启动
  • 二叉树层序遍历6
  • C++--auto详解
  • 2025家政预约小程序开发:功能模块解析与行业解决方案
  • Cookie 与 Session
  • Adminer 连接mssql sqlserver
  • SEO长尾词优化精准布局
  • 构建Harbor私有镜像库(详细版)
  • 《BI 展示:从核心目标到未来趋势》
  • 『uniapp』uni-share 分享功能 使用例子(保姆级图文)
  • STM32上配置图像处理库时常见错误总结
  • 【IEEE 2025】低光增强KANT(使用KAN代替MLP)----论文详解与代码解析
  • Java——设计模式(Design Pattern)