自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 汇编语言 第三版 王爽 实验9 详细解析

DATAS SEGMENT db 'welcome to masm!' db 02h,24h,71hDATAS ENDSSTACKS SEGMENT db 16 dup(0)STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS;设置data段 MOV DS,AX mov ax,0b800h;设置显示缓存区 mov es,a

2021-07-19 23:30:16 505

原创 封装了下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 95

原创 把原来的整理了下,基本能用了

#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

原创 使用二级指针传出参数

使用指针传出参数时,要注意指针所指向的内存是在函数内分配的还是在函数外分配的,以及是不是在堆上分配的。定义一个指针,但是并没有分配指针指向对象所需的内存空间;当函数返回后,此函数栈中的内存会被释放掉,不要让指针指向此函数栈中的内存空间;要指向堆上或此函数外的内存空间。1. 参数传递的原则是:形参传给实参,不能反向传递;2. 一级指针可以在函数内部修改实参指针指向的内容;如: void f(char *p) {p[2] = a;//由实参指向的函数外部的数组的内容就被改变了。…

2021-06-24 15:30:23 1773

原创 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

原创 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 180

原创 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 189

原创 代码节添加代码,新增节,再把新增节扩大

// 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 111

原创 实现新增节

// 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 71

原创 任意代码空白区添加代码

// 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

原创 从文件到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

原创 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 624

原创 滴水二叉树实现详细注释

#include "stdafx.h"#include "windows.h"#define SUCCESS 1 // 执行成功 #define ERRORR -1 // 执行失败 //基础怪物模板class Monster {public: int Id; //怪物编号 char Name[20];//名字 int Level;//等级 public: Monster() {};//构造 ,默认怪物 Monster(int Id, c

2021-05-07 00:08:59 227

原创 滴水 C++_new、delete、vector 实现代码

#include "stdafx.h"#include "windows.h"#define SUCCESS 1 //成功#define ERRORR 2 //失败#define MALLOC_ERROR -3 //申请内存失败#define INDEX_ERROR -4 //错误的索引号template <class T_ele>class Vector {public: Vector(); ~Vector(); Vector(DWORD DwSiz

2021-03-31 10:39:56 437

原创 vs2015下重载运算符<operator>C2676:不定义该运算符或到预定义运算符可接收的类型的转换

error C2676: 不定义该运算符或到预定义运算符可接收的类型的转换源码用VS2015社区版本编译提示用VC6编译提示原因查找VS2015再次编译源码#include "stdafx.h"#include "windows.h"class numb {private: int lowvalue; int highvalue;public: //构造函数 numb(int lowvalue, int highvalue); void print(); numb oper

2021-03-23 14:54:21 1999 2

原创 观察两个Sort方法的反汇编代码(看内存地址和内容):

int arr[] = {2,6,1,5,4};char arr1[] = {2,6,1,5,4};Sort(arr,5);Sort(arr1,5);arr[]的Sort反汇编代码template<class A, class B>void Sort(A a, B b, int len) {00291810 push ebp 00291811 mov ebp,esp 00291813 sub esp,0E4h 0029

2021-03-10 17:39:58 102

原创 冒泡排序:对结构体或者类进行排序,如果不能实现,找出问题所在

#include "stdafx.h"#include "malloc.h"#include "windows.h"struct student{ int x;};//冒泡排序:对结构体或者类进行排序,如果不能实现,找出问题所在.template<class A,class Stu>void Sort(A a, Stu s,int len) { for (int i = 0; i < len-1; i++) { if (a[i] > a[i+1]) {

2021-03-10 15:51:25 93

原创 虚函数打印-单继承无函数覆盖

虚函数打印-单继承无函数覆盖struct func1{public: virtual void Box1() { printf("Box1\n"); } virtual void Box2() { printf("Box2\n"); }};struct func2 : func1{public: virtual void Box3() { printf("Box3\n"); } virtual void Box4() { printf("Box4\n");

2021-03-03 15:57:24 109 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除