![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
wow.
这个作者很懒,什么都没留下…
展开
-
封装了下PeTool-v0.512
eTool.cpp#include <stdlib.h>#include "stdafx.h"#include <iostream>#include <iomanip>#include <fstream>#include <string>#include <windows.h>#include <malloc.h>using namespace std;#define MessageB原创 2021-06-24 15:42:59 · 96 阅读 · 0 评论 -
把原来的整理了下,基本能用了
#include "stdafx.h"#include <iostream>#include <iomanip>#include <fstream>#include <string>#include <windows.h>using namespace std;//读取文件,并返回文件流//参数1:文件路径//参数2:读取类型FILE* ReadFile(LPSTR FilePath,char* Type).原创 2021-06-24 15:38:10 · 85 阅读 · 0 评论 -
使用二级指针传出参数
使用指针传出参数时,要注意指针所指向的内存是在函数内分配的还是在函数外分配的,以及是不是在堆上分配的。定义一个指针,但是并没有分配指针指向对象所需的内存空间;当函数返回后,此函数栈中的内存会被释放掉,不要让指针指向此函数栈中的内存空间;要指向堆上或此函数外的内存空间。1. 参数传递的原则是:形参传给实参,不能反向传递;2. 一级指针可以在函数内部修改实参指针指向的内容;如: void f(char *p) {p[2] = a;//由实参指向的函数外部的数组的内容就被改变了。…原创 2021-06-24 15:30:23 · 1785 阅读 · 0 评论 -
PE节表合并(修正前两个合并节)
// LoadPeWithRead.cpp : Defines the entry point for the console application.// #include "stdafx.h"#include <tchar.h>#include <Windows.h> //以dwAlignment 对齐dwOperateNum 值,也就是让dwOperateNum为dwAlignment的整数倍DWORD AlignmentNum(DWORD dw原创 2021-06-24 15:27:56 · 106 阅读 · 0 评论 -
PE合并节【内存对齐和文件对其大小不一样版本】
PVOID PE_Headers::CompressSection(IN PVOID File_Buffer){ PVOID newbuff = NULL; PBYTE read = NULL, write = NULL; DWORD i; if (File_Buffer == NULL) { Error_Flag |= EMPTY_IMAGEBUFFER;原创 2021-06-24 15:26:48 · 181 阅读 · 0 评论 -
PE合并节的主要代码实现,详细注释(内存和文件对齐相同时的版本)
//合并节//参数:传入拉伸后的imagebufferLPVOID MergeSection(LPVOID imagebuffer){PIMAGE_DOS_HEADER pDosHeader4 = NULL;PIMAGE_NT_HEADERS32 pNTHeader4 = NULL;PIMAGE_FILE_HEADER pFileHeader4 = NULL;PIMAGE_OPTIONAL_HEADER32 pOptionHeader4 = NULL;PIMAGE_SEC..原创 2021-06-24 15:22:22 · 190 阅读 · 0 评论 -
代码节添加代码,新增节,再把新增节扩大
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "string.h"#include <malloc.h>#include <windows.h>//函数声明LPVOID ReadPEFile(LPSTR FilePath);void PrintNTHeaders(LPVOID pfilebuf);void ImageBufferToFileBuffe原创 2021-06-24 15:18:24 · 117 阅读 · 0 评论 -
实现新增节
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "string.h"#include <malloc.h>#include <windows.h>//函数声明LPVOID ReadPEFile(LPSTR FilePath);void PrintNTHeaders(LPVOID pfilebuf);void ImageBufferToFileBuffe原创 2021-06-24 15:16:38 · 72 阅读 · 0 评论 -
任意代码空白区添加代码
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "string.h"#include <malloc.h>#include <windows.h>//函数声明LPVOID ReadPEFile(LPSTR FilePath);void PrintNTHeaders(LPVOID pfilebuf);void ImageBufferToFileBuffe原创 2021-06-24 15:15:50 · 986 阅读 · 0 评论 -
从文件到Filebuffer再到ImageBuffer再到Newbuffer再到文件(低内聚,高耦合)
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "string.h"#include <malloc.h>#include <windows.h>//函数声明LPVOID ReadPEFile(LPSTR FilePath);void PrintNTHeaders(LPVOID pfilebuf);void ImageBufferToFil原创 2021-06-24 15:11:40 · 292 阅读 · 0 评论 -
2021-06-07解析资源表
// Location_Res.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#define FilePath "D:\\NOTEPAD.EXE"//功能:Rva转Foa//参数1:FileBuffer//参数2:dwRva,需要转换的Rva地址DWORD RvaToFileOffset(IN LPVOID pFileBuffer, IN DWORD dwRva){ //定义文件头 PIMAGE_DOS_HEADER dosHead原创 2021-06-07 01:29:15 · 631 阅读 · 0 评论