滴水逆向P15-20150123(C语言完整版)

学习c/c++语言,已经在学校学过了,语言部分略过

重点来看vscode里面怎么把cpp编译成exe,最后再反汇编成asm

前置芝士:GNUGNU 是一个广泛的项目,旨在提供完全自由的操作系统和软件。GDB 和 objdump 是 GNU 项目提供的工具,分别用于程序调试和二进制文件分析。

  1. 主要用途

    • GDB 主要用于调试。它允许开发者实时地跟踪和控制程序执行,如设置断点、单步执行代码、查看和修改变量的值等。
    • objdump 主要用于分析二进制文件,如反汇编可执行文件或库,查看它们的节信息、符号表等。它是一个静态分析工具,不涉及程序的实际执行。
  2. 交互方式

    • GDB 提供了交互式命令行界面,甚至可以通过前端扩展(如 GDB 的图形界面或集成在 IDE 中)来使用,支持交互式调试会话。
    • objdump 主要通过命令行参数来使用,输出程序文件的详细信息,不支持交互式操作。
  3. 功能集中点

    • GDB 的功能集中在帮助开发者理解程序在运行时的行为,如通过查看栈帧、寄存器状态等来分析程序的运行时错误。
    • objdump 的功能集中在对编译后的程序文件(如 ELF 格式的文件)进行静态分析,包括但不限于反汇编、显示二进制文件的各种头信息。
  4. 使用场景

    • 当需要动态调试程序,了解程序的运行时行为或查找运行时错误时,GDB 是更合适的选择。
    • 当需要查看程序的编译后结构,或在没有源代码的情况下理解程序的行为时,objdump 是更合适的工具。

前置芝士:vscode调试一路窜到底,个人查过网上各种方法,包括不限于更改json文件,安装c/c++其它版本,最后是关闭360才能正常使用

下面提供两种方法,其一是使用gdb在终端显示反汇编代码,其二是使用objdump反汇编生成asm文件,最终都能看到反汇编出来的代码。gdb的动态调试不在此说明,gdb借助图形界面的拓展或集成在IDE中暂时未尝试,以后需要会进行尝试并补充。

方法一:使用objdump反汇编成asm文件

貌似也可以生成ARM架构的汇编语言,但是Intel架构基本上跟它只是左右互反,浅试以下没成功,就直接用Intel架构看

方法二:使用gdb生成:(转自己文章:滴水逆向黄皮书P1~50_滴水黄皮书-CSDN博客

看P3顺带学的:

1-转载自:vscode搭建汇编环境_vscodemips-CSDN博客

已配置好同步至我的github仓库:GitHub - DeMaDDemo/MASM-Repo1: 汇编vscode配置仓库,放搞好的配置

2-转载自:使用VS Code把C代码反汇编 - 哔哩哔哩

已会使用,总结在:https://github.com/DeMaDDemo/dishui-reverse/blob/main/2015-01-05/Hello_World.cpp

3-转载自:https://www.cnblogs.com/linear345/p/16116493.html

在终端反汇编(GNU Debugger的命令)

已会使用,总结在:https://github.com/DeMaDDemo/dishui-reverse/blob/main/2015-01-05/Hello_World.cpp

4-不过我们一般反汇编的话用的还是OllyDebug,X64debug,IDA pro会更多一些,也方便一些,(补)图形化工具动态x64debug,静态IDA pro;vscodeGNU工具动态dbg,静态objdump

方法三:或者我们打开调试,直接在堆栈视图处看,动态调试直接跟踪反汇编(那不就成了x64debug?不会啊,在vscode里编好代码直接调试还是方便的,不然难道先编译一遍拿着exe文件丢到x64debug再用也太麻烦了)

  • 45
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值