丁同亚的博客

夺朱非正色

导航

2025年3月9日 #

新增节&将导出表移动到新节

摘要: 新增节 1.先判断是否有空间增加一个节表,满足sizeOfHeaders >= sectionTable[last] + 0x28*3 2.malloc(fileSize+newSectionSize);memset(0);memcpy(newfileBuffer,fileBuffer,fileSi 阅读全文

posted @ 2025-03-09 10:54 丁同亚的博客 阅读(47) 评论(0) 推荐(0)

2025年3月7日 #

数据目录第一项导出表

摘要: 1.数据目录里存的地址都是RVA内存相对地址,需要转换成文件地址 才能在 fileBuffer中找到 2.windows定义了 _IMAGE_EXPORT_DIRECTORY 这么一个结构体来描述导出表 3. typedef struct _IMAGE_EXPORT_DIRECTORY { DWOR 阅读全文

posted @ 2025-03-07 20:59 丁同亚的博客 阅读(67) 评论(0) 推荐(0)

2025年3月6日 #

VS下C语言静态链接库和动态链接库

摘要: 1.静态链接库的创建,创建的时候比较简单,不需要导出什么的 2.静态链接库的使用 1.通过配置vs(配置三项,头文件路径,lib文件目录和lib文件名称) 添加头文件路径 右键主项目 → 属性 → C/C++ → 附加包含目录,添加静态库头文件所在目录(如 ../mylib) 链接库文件 在 属性 阅读全文

posted @ 2025-03-06 19:53 丁同亚的博客 阅读(194) 评论(0) 推荐(0)

2025年3月5日 #

扩大节

摘要: 思路就是在最后一个节后面添加数据 1.修改 sizeOfImage 2.最后一个节的 文件对气后大小和内存真实大小 ,注意增加的尺寸需要文件对齐 // ExpandSection.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "PE.h" 阅读全文

posted @ 2025-03-05 20:55 丁同亚的博客 阅读(38) 评论(0) 推荐(0)

2025年3月4日 #

代码节空白区添加代码

摘要: 1.首先获取 代码节内存中的实际大小,文件中的对齐后大小 00 02 10 F0 内存中尺寸10 00 内存对齐后起始位置00 02 20 00 文件大小(对齐后)10 00 文件对齐后起始位置 文件大小(对齐后) > 内存中尺寸 可以添加代码(小于的话意味着不存在空白区) 2.计算添加代码的位置 阅读全文

posted @ 2025-03-04 19:56 丁同亚的博客 阅读(64) 评论(0) 推荐(0)

2025年3月2日 #

PE解析

摘要: 代码如下: // clonefile.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #define _CRT_SECURE_NO_WARNINGS // 必须放在文件最顶部 #include <iostream> #include <iomanip> // 包含 i 阅读全文

posted @ 2025-03-02 20:43 丁同亚的博客 阅读(55) 评论(0) 推荐(0)

2025年2月27日 #

C语言返回局部变量的地址,会被覆盖不可靠

摘要: 栈空间会随着函数执行完而释放,空间里的值可能会被覆盖 #include <iostream> void* Fun(int* a,int* b) { int c = *a + *b; return (void*) & c; } void overwriteStack() { int dummy[100 阅读全文

posted @ 2025-02-27 20:24 丁同亚的博客 阅读(30) 评论(0) 推荐(0)

PE文件格式

摘要: 为什么分节 节省硬盘空间 任何一个exe都有自己独立的4gb空间,应用程序使用的都是虚拟内存 3.有些节可以复用 阅读全文

posted @ 2025-02-27 11:38 丁同亚的博客 阅读(53) 评论(0) 推荐(0)

2025年2月26日 #

位运算

摘要: 1.指定某个位的值 // bit.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> /** num: 源操作数 n: 表示要修改操作的数第几位 flag: 修改成1还是0 */ unsigned int setbit(unsign 阅读全文

posted @ 2025-02-26 16:31 丁同亚的博客 阅读(40) 评论(0) 推荐(0)

2025年2月25日 #

指针

摘要: 指针类型加减运算的步长和它修饰的类型的宽度一致 函数指针 定义:int (*pfun)(int,int); //或者 typedef int (*pFun)(int,int); pFun pfun; 阅读全文

posted @ 2025-02-25 13:41 丁同亚的博客 阅读(20) 评论(0) 推荐(0)