会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
L丶银甲闪闪
博客园
首页
新随笔
联系
管理
订阅
上一页
1
···
11
12
13
14
15
16
17
18
19
···
24
下一页
2019年10月17日
文件镜像和内存镜像
摘要: 直接将一个pe文件读到内存中是无法运行的,必须经过拉伸,然后再做其它处理才能可运行; 文件中的pe文件状态为文件映像; 拉伸后的状态为内存映像; 1.pe加载过程 1)根据SizeOfImage的大小,开辟一块缓冲区(ImageBuffer). SizeOfImage是可选pe头中的一个属性; 2)
阅读全文
posted @ 2019-10-17 16:27 L丶银甲闪闪
阅读(1147)
评论(0)
推荐(0)
2019年10月16日
节表
摘要: 1.联合体 有如下的需求: 我们想存储一个人的学号和身份证号,而且只要存储一个就可以了. 学号需要一个字节 身份证需要四个字节 如果设计成: struct Student { char 学号; int 身份证号; } 因为每次最多用一个成员,那另一个成员的空间永远是浪费的. 关于联合类型: unio
阅读全文
posted @ 2019-10-16 09:57 L丶银甲闪闪
阅读(394)
评论(0)
推荐(0)
2019年10月15日
pe头
摘要: 1.dos头 结构: struct _IMAGE_DOS_HEADER { WORD e_magic; WORD e_cblp; WORD e_cp; WORD e_crlc; WORD e_cparhdr; WORD e_minalloc; WORD e_maxalloc; WORD e_ss;
阅读全文
posted @ 2019-10-15 16:04 L丶银甲闪闪
阅读(432)
评论(0)
推荐(0)
2019年10月14日
关于pe结构
摘要: 每一种操作系统它最重要的格式就是它的可执行文件格式, 因为操作系统就是为了支持这些文件而生成的,内核里面有很多机制,也是配合这种文件格式设计的。 换句话说,这种文件格式也是适合操作系统设计的。 比如: PE 它是 windows 下的文件格式,是 MZ 打头的(4D5A)只有两个字节,后面很大一片就
阅读全文
posted @ 2019-10-14 18:54 L丶银甲闪闪
阅读(460)
评论(0)
推荐(0)
【转】pe结构详解
摘要: (一)基本概念 PE(Portable Execute)文件是Windows下可执行文件的总称,常见的有DLL,EXE,OCX,SYS等, 事实上,一个文件是否是PE文件与其扩展名无关,PE文件可以是任何扩展名。 那Windows是怎么区分可执行文件和非可执行文件的呢? 我们调用LoadLibrar
阅读全文
posted @ 2019-10-14 18:53 L丶银甲闪闪
阅读(638)
评论(0)
推荐(0)
宏定义和内存分配
摘要: 代码想转换成.exe文件,需要经过几个步骤: 替换 ->为了可读性或方便,使用了一些宏定义;在编译前,会有一个工具将宏定义的符号替换成相应的值; 编译 ->将代码转成二进制文件; 连接 ->代码中可能用到了别人写的程序,连接就是将别人的程序复制一份放到自己的程序中; 1.宏定义 1)无参数的宏定义
阅读全文
posted @ 2019-10-14 18:52 L丶银甲闪闪
阅读(2252)
评论(0)
推荐(0)
位运算
摘要: 1.算术移位指令 指令格式:SAL/SAR Reg/Mem, CL/Imm 左边的操作数可以使寄存器或内存,右边的操作数可以是寄存器cl或立即数 SAL(Shift Arithmetic Left): 算术左移 SAR(Shift Arithmetic Right): 算术右移 1)算术左移 左移一
阅读全文
posted @ 2019-10-14 18:51 L丶银甲闪闪
阅读(423)
评论(0)
推荐(0)
多维数组指针和函数指针
摘要: 1.多维数组指针 1)用一维数组指针访问一维数组 代码: void fun(){ int arr[5] = {1,2,3,4,5}; int (*p)[5] = &arr; printf("%d\n", *(*(p) + 2)); //结果是3 int (*px)[2] = (int (*)[2])
阅读全文
posted @ 2019-10-14 18:50 L丶银甲闪闪
阅读(495)
评论(0)
推荐(0)
多级指针和数组指针
摘要: 1.*()和[] 定义几个不同级别的指针类型的数据 char* p1; char** p2; char*** p3; char**** p4; char***** p5; char****** p6; char******* p7; 1)*运算 代码: printf("%d",*p1); 反汇编:
阅读全文
posted @ 2019-10-14 18:48 L丶银甲闪闪
阅读(343)
评论(0)
推荐(0)
指针数组和结构体指针
摘要: 1.指针数组 1)关于指针数组 一个数组,里面存储的是指针(也就是带*的类型) 指针数组: char* arr[5] = {0}; //用0填充数组 arr[0] = (char*)1; arr[1] = (char*)2; arr[2] = (char*)3; arr[3] = (char*)4;
阅读全文
posted @ 2019-10-14 18:47 L丶银甲闪闪
阅读(815)
评论(0)
推荐(0)
上一页
1
···
11
12
13
14
15
16
17
18
19
···
24
下一页
公告