最近复习C语言,对反汇编感兴趣,就用下图举例解释一下我的理解,如有错还请大佬指教。 首先,认识两个常用指令 : lea > 取地址赋值 mov > (同类型)赋值 其次理解 dword ptr [] : dword(double word)即双字,也就是四字节 ptr(point)即指针 []放的是 ...
分类:
其他好文 时间:
2019-08-11 14:56:36
阅读次数:
109
计算机语言 机器语言 - 机器语言通过二进制编码来编写程序 - 执行效率高,编写太麻烦 汇编语言 - 使用符号来代替机器码 - 编写程序时,不需要使用二进制,而是直接编写符号 - 编写完成后,需要将符号转换为机器码,然后再由计算机执行 - 将机器码转换为符号的过程,称为反汇编 - 汇编语言一般只适用 ...
分类:
编程语言 时间:
2019-07-29 00:28:16
阅读次数:
128
举个实例 运行出core 反汇编: main函数在call func之前: 明显的错误,把ebp的下4字节的内容移动到当前esp所指向的内容,实际上做了一个*p的副本,为func函数使用;调用func函数后: movq $test_num, -8(%rbp)于是,func函数操作的只是*p的副本,把 ...
分类:
编程语言 时间:
2019-07-27 23:58:27
阅读次数:
201
目录: 1.多重继承在内存中的表现形式 多重继承在汇编中的表现形式 2.菱形继承 普通的菱形继承 虚继承 汇编中的表现形式 一丶多重继承在内存中的表现形式 高级代码: 通过main函数我们得知,我们生成了一个孩子类的对象.此时按照C/C++的规范,应该先从左往右依次构造父类1,父类2 此时的情况和我 ...
分类:
编程语言 时间:
2019-07-21 01:41:57
阅读次数:
118
目录大纲: 1.全局(静态)对象的识别,(全局静态全局一样的,都是编译期间检查,所以当做全局对象看即可.) 1.1 探究本质,理解构造和析构的生成,以及调用方式(重要,如果不想知道,可以看总结.) 2.对象做函数参数的识别 3.返回值为对象的识别 4.对象为静态局部的识别 5.堆中对象识别 5.1. ...
分类:
编程语言 时间:
2019-07-21 01:38:50
阅读次数:
105
讲解之前,了解下什么是虚函数,什么是虚表指针,了解下语法,(也算复习了) 开发知识为了不码字了,找了一篇介绍比较好的,这里我扣过来了,当然也可以看原博客链接: http://blog.csdn.net/hackbuteer1/article/details/7558868 一丶虚函数讲解(复习开发, ...
分类:
编程语言 时间:
2019-07-21 01:26:45
阅读次数:
128
讲解目录: 1.各类在内存中的表现形式 备注: 主要复习开发知识,和反汇编没有关系,但是是理解反汇编的前提. 2.子类继承父类 2.1 子类中有虚函数,父类中有虚函数 : 都有的情况下 2.2 子类中没有虚函数,父类中有虚函数 : 子类没有,父类有的情况 2.1 2.2的情况都是一样的. 2.3 子 ...
分类:
编程语言 时间:
2019-07-21 01:09:18
阅读次数:
139
1, 将机器码转换成汇编: pip install capstone brew install capstone 2,汇编代码转换成机器码: 软件下载地址: https://www.cr173.com/soft/784200.html ...
分类:
其他好文 时间:
2019-07-12 12:47:48
阅读次数:
83
1、直接使用结构体做为参数 总结: 将结构体直接做为参数传递的时候,传递的是整个结构体. 反汇编: sub esp,10h mov eax,esp mov ecx,dword ptr [ebp-10h] mov dword ptr [eax],ecx mov edx,dword ptr [ebp-0 ...
分类:
编程语言 时间:
2019-07-08 00:02:36
阅读次数:
128
(一)指令格式 1.指令的基本格式 2.定长操作码指令格式 3.扩展操作码指令格式 (二)指令的寻址方式 1.有效地址的概念 2.数据寻址和指令寻址 3.常见寻址方式 (三)CISC和 RISC的基本概念 2009 16.某机器字长16位,主存按字节编制,转移指令采用相对寻址,由两个字节组成,第一字 ...
分类:
其他好文 时间:
2019-06-28 19:33:22
阅读次数:
925