摘要: 本质都是查表。 中国 在内存中是 D6 D0 B9 FA,两个字节表示一个汉字。 全球化,编码格式不统一,导致出现乱码问题。 不管ASCII GB2312 Unicode,本质都是查表。 阅读全文
posted @ 2020-11-15 06:52 KeepMoving2018 阅读(359) 评论(0) 推荐(0)
摘要: int i = 'A' 是什么意思? 使用符号的时候,真正存入内存中的不是符号本身,而是符号对应的编号。 A-- 0x41(65) B--0x42 引出 ASCII码表(0~127)-一个字节 确定数据类型是字符,编译器就会去查ASCII码表翻译。 char 本质上就是存储一个编号,就是数字,就是整 阅读全文
posted @ 2020-11-15 06:41 KeepMoving2018 阅读(244) 评论(0) 推荐(0)
摘要: 告诉编译器,存储的数据宽度和存储格式。 试验得知,数据溢出,舍弃的是高位。 阅读全文
posted @ 2020-11-14 16:37 KeepMoving2018 阅读(88) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-11-14 15:49 KeepMoving2018 阅读(139) 评论(0) 推荐(0)
摘要: 局部变量z存储在,ebp-4,即缓冲区。 局部变量使用前需赋初值,不然里面是垃圾值(cccccccc 烫)。 缓冲区溢出攻击。 返回值是存储在eax中。 返回值要使用,需要个变量(容器)来接收。 main函数的ebp-4(缓冲区),存储返回值。 阅读全文
posted @ 2020-11-14 15:29 KeepMoving2018 阅读(107) 评论(0) 推荐(0)
摘要: 在编写程序的时候,经常需要存储数据。前面学习汇编时了解到了,数据可以存在寄存器中,或者内存中。 在C语言中,存储数据要存在变量中,变量就是一个容器--通常就是内存。 变量类型确定变量内存宽度,变量名就是内存的编号(别名)。 全局变量,如果不重新编译,内存地址固定不变。 CE可修改全局变量。 阅读全文
posted @ 2020-11-14 13:15 KeepMoving2018 阅读(127) 评论(0) 推荐(0)
摘要: 1、函数定义 返回类型 函数名(参数列表) { 函数体 return; // 结束 } 2、画堆栈图 int plus(int x,int y) { return x+y; } void main() { plus(1,2); return; } 进入反汇编界面,追踪函数执行每一步。堆栈变化。 3、 阅读全文
posted @ 2020-11-14 10:36 KeepMoving2018 阅读(260) 评论(0) 推荐(0)
摘要: 学习需具备知识 汇编相关知识 2、第一个C程序 1.创建项目--Win32 console application 2.创建文件--source file --new--C++ source file 3.入口程序 4.构建-F7 5.运行-F5 int plus1(int x,int y) { r 阅读全文
posted @ 2020-11-08 07:59 KeepMoving2018 阅读(687) 评论(0) 推荐(0)
摘要: 1、标志寄存器:EFLAGS 0:CF 进位标志--carry flag 2:PF 奇偶标志 4:AF 辅助进位标志 6:ZF 零标志 7:SF 符号标志 8:TF 单步标志--暂时用不到,学习如何实现调试器时学。 9:IF 中断使能标志--暂时用不到,学中断门的时候再学习。 10:DF 方向标志 阅读全文
posted @ 2020-11-06 07:21 KeepMoving2018 阅读(997) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-11-04 07:26 KeepMoving2018 阅读(115) 评论(0) 推荐(0)