反汇编基础-数组和指针的反汇编代码分析
程序源码如下:
#include <stdio.h>int main(){const char c = 'A';char str[] = "Hello World!";str[0] = c;str[1] = 'B';str[2] = 'C';str[3] = 'D';str[4] = 'E';char *p_str = new char[5];*(p_str) = 'A';*(p_str + 1) = 'B';*(p_str + 2) = 'C';return 0;
}
其中对应的汇编代码如下:
从上面的汇编代码可以看到如下几点:
1.const char c='A';
其实就是把一个byte放入了ptr指针指向c地址,然后一个[]表名是里面的值,把A的ASCII放进去了。
2.char str[]="Hello World!";
这里面做的工作其实只是把这个"Hello World"这个字符串,就是4字节,4字节的操作,先把他放到某一寄存器,再把这寄存器里面的数据放到str指向的地址中。
3.下面几个要先说明几点第一个imul这是有符号乘,shl是左移,和C/C++里面的一样。
所有根据对str[0]、str[1]、str[2]等这些操作可以发现如下结论,当为2的倍数时,就是左移,但不是2的倍数就是乘(这样的设计方式真实太巧妙了!)
4,然而对*(p_str+某一个数值),这个其实是把p_str指向的地址读入一个寄存器,然后在往这个地址放值。
反汇编基础-数组和指针的反汇编代码分析相关推荐
- 初学Verilog语言基础笔记整理(实例点灯代码分析)持续更新~
实例:点灯学习 一.Verilog语法学习 1. 参考文章 刚接触Verilog,作为一个硬件小白,只能尝试着去理解,文章未完-持续更新. 参考博客文章: Verilog语言入门学习(1) Veril ...
- c/c++ 数组和指针
c/c++ 数组和指针 知识点 1,数组就是指针,对应代码里的test1 2,用auto声明,得到的是指针,对应代码里的test2 3,用decltype声明,得到的不是指针 ,对应代码里的test3 ...
- C语言反汇编 - 多维数组与指针
反汇编(Disassembly) 即把目标二进制机器码转为汇编代码的过程,该技术常用于软件破解.外挂技术.病毒分析.逆向工程.软件汉化等领域,学习和理解反汇编对软件调试.系统漏洞挖掘.内核原理及理解高 ...
- 反汇编基础-数据类型以及C++引用、指针反汇编后的概括
反汇编中的数据类型 在汇编中,无论是字符串类型,整数类型还是其他类型都只有2个关键单位,地址.长度 [注意:LEA为取地址指令] 引用和指针的汇编代码: 引用并不会影响程序的执行效率,使用引用又比指针 ...
- 反汇编基础、OllyDbg简介和界面、基本操作、初级TraceMe练习
以下使用的练习示例是<Windows程序设计>第五版第一章的HelloMsg.exe:以及<加密与解密>第三版附带的RebPE.exe: 一 反汇编基础 1 字节顺序 字节存储 ...
- C++反汇编代码分析
C++反汇编代码分析--函数调用 代码如下: #include "stdlib.h" int sum(int a,int b,int m,int n) { return a+b ...
- C++反汇编第三讲,反汇编中识别虚表指针,以及指向的虚函数地址
C++反汇编第三讲,反汇编中识别虚表指针,以及指向的虚函数地址 讲解之前,了解下什么是虚函数,什么是虚表指针,了解下语法,(也算复习了) 开发知识为了不码字了,找了一篇介绍比较好的,这里我扣过来了,当 ...
- 反汇编基础-寄存器及内存
反汇编基础-寄存器及内存 PC机中4大存储单元 1.硬盘:长时间大量存储数据,因为硬盘速度慢,在程序运行时就将硬盘中的数据加载到内存中. 2.内存:内存的存储速度比硬盘快,但还是没CPU快. 3.高速 ...
- 小猪猪C++笔记基础篇(四)数组、指针、vector、迭代器
小猪猪C++笔记基础篇(四) 关键词:数组,Vector. 一.数组与指针 数组相信大家学过C语言或者其他的语言都不陌生,简单的就是同一个变量类型的一组数据.例如:int a[10],意思就是从a开始 ...
最新文章
- DeeCamp2021启动,李开复张亚勤吴恩达等大咖喊你报名啦
- html页面选择指定条件在下方显示,如何从符合特定条件的HTML中找到CSS选择器?...
- 解决 Azure AD 在 Azure Front Door 下登录失败的问题
- python--OS模块,文件系统
- 傅里叶变换 c语言程序,(快速傅里叶变换)C语言程序汇编
- 从零开始学前端:表单制作 --- 今天你学习了吗?(CSS:Day05)
- mysql索引讲解最好
- 正则表达式匹配以xx开头以xx结尾
- 矩阵行列式引理 Matrix Determinant Lemma
- 好莱坞经典十大战争电影排行榜 男人必看十大战争片
- 数字万用表数字多用表软件下载安装教程
- Axure 交互学习1 基础页面跳转、鼠标悬停样式
- 全站仪,激光跟踪仪,激光干涉仪,激光测距仪
- Http状态码大全(100、200、300、404、500等)
- Auto.js实例京东领金豆
- DaVinci Resolve Studio 18(达芬奇剪辑软件)
- 信贷客户调查中最需关注的十个方面(附经典案例解析)
- 有没有测试硬盘的软件,检测硬盘有什么好软件
- 山东黄金三山岛金矿:智能矿山里的“掘金人”
- 高光谱病虫害SPA x-Loading Weights MSC SNV SGSmoothing Normalize