查看反汇编主要的思路在于将 流程,处理,算法 区分开来。
1 函数调用:
原C代码:

int sum(int, int);int main(){int c = sum(1, 2);    printf("c=%d", c);return 0;}

int sum(int a, int b){int c = a + b;return c;}

反汇编的函数调用主要使用bp-frame式(不懂自己去查去)的调用方式:

mmm

然后是被调用的sum:

ss

2  for循环:
基本的for循环是这样的:

int sum(int b){int c, i=0;    c = 0;for(i=0; i<4; i++){        c += b;    }return c;}

然后反汇编后,for循环一般是以下的形式的:

下面看看上面的c代码反汇编后变成了什么:

3 do-while循环
例子代码为:

int sum(int b){int c, i=0;    c = 0;do{        c += b;        i++;    }while(i < 4);return c;}

do-while循环的基本结构:


然后我例子代码的反汇编为:

4 while循环|
例子代码为:

int sum(int b){int c, i=0;    c = 0;while(i < 4){        c += b;    }return c;}

while反汇编的基本结构为:


上述代码反汇编的结果为:

5 if-else分支判断:
例子代码的c语言为:

int sum(int b){int c, i=0;    c = 0;if(i<0){        c = -1;    }else if(i<1){        c = 1;    }else if(i<3){        c = 3;    }

return c;}

if-else分支的基本结构:


然后上述代码的反汇编结果为:

6 switch-case 判断分支:

int sum(int b){int c, i=0;    c = 0;switch(i){case 1:        c = -1;break;case 2:         c = 0;break;case 3:        c = 1;break;default:        c = 2;    }return c;}

反汇编结果很直接:

7 使用结构体:
结构体的例子代码:

int sum(int b){

    jack j;    pjack pj = &j;

    j.one = 1;    j.two = 2;    pj->one = 3;    pj->two = 4;return pj->two;}

结构体反汇编代码:

如何快速查看将C反汇编的代码相关推荐

  1. 怎样使用Debussy+ModelSim快速查看前仿真波形

    引子:ModelSim是HDL仿真软件,Debussy是波形查看软件:搭配使用,相当爽.此处所谓快速查看前仿真波形仅为抛砖引玉,大家不要拘泥于此.两款软件的功能都很强大,请自行研究. 注:本篇博文的软 ...

  2. 在上司面前硬不起来?教你如何快速将字符串转换为可执行代码

       老是因为活不好被上司欺凌?     在上司面前很没面子?     在上司面前硬不起来?     是时候分享一个可以快速将字符串转换为可执行代码的项目给你了 - YACEP !     不过,这不 ...

  3. rust中使用cargo expand查看被宏隐藏的代码

    一.cargo expand简介 cargo expand目前这个需要安装nightly的toolchain,rustup toolchain install nightly-x86_64-unkno ...

  4. 局域网怎么查看单位摄像头_一行代码,实现多平台文件查看传输!

    几个不错的通过网站传输文件的工具,其实了解python的朋友可能都知道,借助它,只需要输入一行代码,就可以将电脑变成一台服务器,局域网内的任何能上网的工具都能够查看和下载电脑中的文件. 方法很简单,可 ...

  5. 怎么快速搜索linux的日志,如何快速查看Linux日志?

    因为在生产环境会遇到很多问题,那么最快的定位方式莫过于去看日志,我们都知道服务器每天会产生大量的日志,那么如何快速的定位也就是最关键的. 本文介绍六种查看日志的命令:tail.head.cat.mor ...

  6. Python实战案例,PyQt5模块,实现疫情信息快速查看工具(附源码)

    前言 今天给大家介绍的是Python疫情信息快速查看工具,在这里给需要的小伙伴们代码,并且给出一点小心得. PyQt概述 PyQt5是Qt框架的Python语言实现,由Riverbank Comput ...

  7. 【Linux高效小trick】快速查看Linux进程的开始和运行时间

    写在前面 前面介绍了,怎么杀死Linux的僵尸进程,为GPU释放更多的内存,做想做的事,文章链接如下: [Linux高效小trick]Linux下杀死僵尸进程,释放GPU内存,让代码全速运行~ 今天再 ...

  8. Github每日精选(第40期):为 Windows 带来 macOS “快速查看”功能QuickLook

    QuickLook QucikLook 像macOS 中的Quick Look 快速查看功能,它允许用户通过按键Space以闪电般的速度查看文件内容. 这个功能是非常有用的,特别是对于查找文件的时候, ...

  9. 快速查看图片中某点的像素 X、Y 坐标

    如何快速查看图片中某点的像素 X.Y 坐标? 这里有笔者整理的三种方式可以帮助我们实现! 三种方法: 1 通过" 画图 "软件查看 2 利用 Matlab 查看 3 通过 PS 查 ...

最新文章

  1. Centos7-Mysql 5.6 多主一从 解决方案详细配置
  2. python网页编程测试_李亚涛:python编写友情链接检测工具
  3. Hibernate中常见的异常
  4. 单像素骨架提取算法c语言实现,【图像】骨架提取与分水岭算法
  5. Page directive: illegal to have multiple occurrences of contentType with different values
  6. 小米MIX4要来了?真机图曝光:四边等宽曲面屏 120Hz刷新率
  7. 硬盘主引导扇区汇编代码
  8. 【Java8】Stream 由函数生成流:创建无限流 - 实现斐波纳契数列
  9. NumPy用户指南(2)——安装NumPy
  10. windows下采用批处理命令实现 FTP文件夹下载 包含子文件夹下载 Bat
  11. FTP上传和下载文件名称中文乱码问题
  12. WTS 2.1.18124.1 彻底抛弃了 15063(Win 10 创意者更新)
  13. 克服J2SE 1.3-1.4 的不兼容性
  14. 异常 illegal character 200B
  15. 固态硬盘:NVME 2.0 新技术 ZNS 自动分区:减少延迟,提高寿命
  16. Java并发相关知识(多线程、锁、容器、工具)
  17. 电脑鼠标右键失效linux,鼠标右键失灵,教你win7电脑鼠标右键失灵的应对办法
  18. 浙江工商大学20机试(oj复试)月利率
  19. 小明加密通道进入_德州人行通道闸哪个牌子好
  20. create-react-app配置总结

热门文章

  1. 操作系统——内存管理の选择题整理
  2. CVPR 2022上人脸识别相关的论文分类整理
  3. 鐘明系列十:『32阶3次幻方』
  4. 【数据库取证篇】阿里云RDS MySQL数据库在线取证教程
  5. access vba代码大全_Access 与 Excel 之对比 (翻译)
  6. 易云智能养殖监控系统,您身边的物联网智能管家
  7. 蓝牙技术|蓝牙智能笔方案简介
  8. html设置文本的下划线效果,CSS3 自定义文本下划线样式
  9. C++中的各种“虚“-- 虚函数、纯虚函数、虚继承、虚基类、虚析构、纯虚析构、抽象类讲解
  10. Dictionary入门