c
文章平均质量分 56
望望2018
这个作者很懒,什么都没留下…
展开
-
c指针(二)
char arr[10];char* p = &arr[0];//取数组第一个元素的地址char* p2 = arr; 为什么可以这样写for(int k = 0 ;k printf("%d\n",*(p+k));}char* 做操作的时候只用一个字节,因为数组连续,char数组第一个地址固定,则接下来地址为p+1,p+2...取一个数地址和转值int x原创 2017-11-07 22:00:53 · 205 阅读 · 0 评论 -
pe:filebuffer和imagebuffer地址对应
VirtualAddress+misc.VirtualSize>VirtualAddress-ImageBuffer>VirtualAddress找到对应节,在fileBuffer找到对应节,RawData+节偏移原创 2017-12-16 08:51:27 · 692 阅读 · 0 评论 -
pe节表
doc头lfanew偏移,可以找到标准pe头,标准pe头结束就是可选pe头,可选pe头大小不确定。 怎么找节表:计算可选pe头的大小后,doc+标准pe+可选pe 标准节表内:SizeOfOptionalHeader可选pe头大小 节表:线性结构,多少个,在标准pe头的numberofSection(节)决定有多少个。...#define IMAGE_SIEZOF_SHORT_NA原创 2017-12-14 10:37:44 · 577 阅读 · 0 评论 -
c 语言
c语言c 替换 编译 链接 硬编码 c 宏是替换 0x21 链接(所有dll 链接时期) c 宏\# define TRUE 1\# define FALSE 0 //编译前替换\# define MAX(A,B) ((A)>(B)?(A)原创 2017-11-26 15:25:36 · 257 阅读 · 0 评论 -
c 位运算
位运算c:精确控制内存,充分利用cpu原创 2017-11-25 21:38:28 · 346 阅读 · 0 评论 -
pe知识
c00005防止内存出错,内核重载:操作系统启动内核.exe文件,重载用peloader启动操作系统的exe filebuffer是直接从硬盘加载到内存 imagebuffer是文件映像,做了内存对齐 imageBuffer 是fileBuffer的拉伸,可以运行啦 imageBase是内存镜像基址。这里的大小不确定。 执行的时候还要做地址转换,把虚拟地址转换成物理地址。 第一节 代码原创 2017-12-12 21:37:50 · 515 阅读 · 0 评论 -
c指针6
char c =*p1;mov eax,dword ptr[ebp-4]mov cl,byte ptr[eax]mov byte ptr[ebp-20h],clcdcall stdcall fastcallcacall :外平栈,参数反过来printf("%d %d\n",*(p1+0),p1[0]) //三个参数mov ecx,dword ptr[ebp-4]movsx edx,by原创 2017-11-24 08:50:30 · 273 阅读 · 0 评论 -
pe解析
doc头word e_magic “MZ标记”用于判断是否为可执行文件原创 2017-12-02 14:17:56 · 292 阅读 · 0 评论 -
c指针5
int* arr=[5]={0};arr[0]=(int*)10;arr[1]=(int*)10;arr[2]=(int*)10;arr[3]=(int*)10;arr[4]=(int*)10;int a = 10;mov dword ptr[ebp-4],0Ahint b = 20;mov dword ptr[ebp-8],14hint c = 30;mov原创 2017-11-14 14:23:46 · 342 阅读 · 0 评论 -
c指针4
int strlen(char* s){ int ret = 0; while(*s!=0){ ret++; s++; } return ret;}指针函数:返回值类型为xxx*的函数。char* strcpy(char* dest,char* src){ char* ret = dest;原创 2017-11-14 11:05:42 · 235 阅读 · 0 评论 -
指针3
char names[] = "ABCDE"; char names[6] = {"A","B","C","D","E","\0"};printf("%s\n",arr);printf("%s\n",names);结果没有区别%s:打印一个字符串,直到内存为0为止。复习:内存分布图代码区 :代码栈 :参数、局部变量原创 2017-11-12 21:14:06 · 203 阅读 · 0 评论 -
任意代码添加
硬编码:E8 call E9 jmp 真正要跳转的地址=E8这条指令的下一行地址+X x=真正要跳转的地址-E8这条指令的下一行地址原创 2017-12-27 09:02:24 · 341 阅读 · 0 评论