结构体 字节对齐的练习

分析结构体大小struct S1{char c1;double d;char c2;char c3;};struct S2{char c1;char c2;char c3;double d;};struct S3{char c1;S1 s;char c2;char c3;};分析结构体大小#prag
逆向 内存 C C语言 vc6 2018年01月08日 98次浏览

C语言 13 结构体数组

结构体数组的定义类型 变量名[常量表达式];//定义结构体类型struct stStudent{ int Age; int Level;}//定义结构体变量struct stStudent st;//定义结构体数组struct stStudent arr[10];//或者stStuden
逆向 内存 C C语言 vc6 2018年01月07日 104次浏览

C语言12 字节对齐

#includechar x;short y;int check(){ x =1; y=2; return 0;}int main(int argc, char* argv[]){ check(); system("pause"); retur
逆向 内存 汇编 C C语言 vc6 计算机 2018年01月07日 97次浏览

C语言11 结构体

思考:当需要一个容器能够存储1个字节,你会怎么做? //char当需要一个容器能够存储4个字节,你会怎么做? //int当需要一个容器能够存储100个2个字节的数据,你会怎么做? //short arr[100]当需要一个容器能够存储5个数据,这5个数据中有1字节的,2字节的有10字节的。。。你会怎
逆向 内存 汇编 C 安全 C语言 vc6 计算机 2018年01月03日 94次浏览

C语言5 -字符和字符串

int x = 123; //补码int float f = 123.4F; //IEEE编码int i = "A"; //神马情况???我们在代码中写入int i = "A";反编译后汇编就编程了mov dwo
内存 汇编 C 2017年12月22日 90次浏览

计算机中的运算

计算机只认识0和1,计算机能做的运算归根结底也就是直接对0和1做运算(通常称为 位运算)与运算两个位都为1时,结果为1 and(&)或运算只要有一个为1 就是1 or(|)异或运算不一样的时候是1 xor(^)非运算(单目运算)0变1 1变0 not(~)左移各二进制位全部左移若干位,高位丢
逆向 内存 汇编 计算机 2017年11月18日 93次浏览

进制和内存

数据宽度因为计算机受硬件制约,数据都是有长度限制的(数据宽度),超过最多宽度的数据会被丢弃计算机中常见的数据宽度:位(BIT) -> 一个0或1字节(BYTE) =8位 范围 0-> FF字(Word) = 16位 0->FFFF双字(DoubleWord) = 32位 0-FFF
计算机编码 内存 汇编 2017年11月17日 97次浏览

5.汇编-堆栈相关指令

什么是堆栈程序启动的时候操作系统会给每个程序一块虚拟的4G内存当程序需要使用的时候必须要和操作系统申请内存堆栈是程序的心脏,程序中需要用到的重要数据,都在堆栈中体现就是一块特殊的内存,操作系统在程序启动的时候已经分配好的,供程序执行时使用和数据结构的堆栈无关查看堆栈正常内存使用从小地址往大地址使用,
逆向 内存 寄存器 2017年09月17日 98次浏览

2.汇编-内存

寄存器数量和容量有限,为了存储大量数据,所以我们需要内存每个程序都会有自己的独立的4GB内存空间(这里的内存其实是虚拟的,并不是真的给了程序4G内存,当程序读或者写这段内存的时候,操作系统才会把使用的内存映射到物理内存上物理内存和内存条之间还有一层映射1Bit 就是一个位 也就是可以存储1个0或者1
逆向 内存 2017年09月17日 102次浏览

4. 汇编-内存复制指令

标志寄存器 EFLEFL是32位寄存器其中的每一位,含义都是不同的0x00000246 16进制0000 0000 0000 0000 0000 0010 0100 0110 二进制第十位(从下标开始算 从右往左):DF位DF位为``的时候: MOVS 执行完毕之后 ESI和EDI的值会增加DF位位
逆向 内存 寄存器 2017年09月16日 99次浏览