- 博客(6)
- 问答 (1)
- 收藏
- 关注
原创 PE文件的校验和(CheckSum)
IMAGE_OPTIONAL_HEADER.CheckSum 为一个DWORD(64位下也是DWORD)型的校验值,用于检查PE文件的完整性,在一些内核模式驱动及DLL中,该值必须是存在且正确的校验值的计算很简单: 将IMAGE_OPTIONAL_HEADER.CheckSum请0(因为这部分在文件中也是有值的,计算时得去掉) 以WORD为单位对数据块进行累加,记住要用ad...
2018-02-18 22:45:13
3385
原创 简单的虚表Hook
最近在学习C++虚函数表的Hook,这里简单上传一个小例子,是64位32位通用的// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include #include /// 虚表指针的地址/// fake函数地址/// 欲Hook函数的引索/// 保存原函数地址BOOL HookVT(IN PVOID __vfptr, IN
2018-02-06 14:14:34
635
原创 关于系统搜索某个DLL的路径
引言我们可以使用LoadLibrary()或LoadLibraryEx()来显式地加载某个dll,在我们未提供dll全路径或调用SetDefaultDllDirectories和 AddDllDirectory两个API对DLL路径进行设置时,系统依然会尝试着在某些目录下寻找我们想要的DLL文件,在寻找DLL时,Windows系统会按一定的顺序在不同的目录下查找. Windows查找D
2018-02-04 14:58:15
3507
原创 X64-R3层通过PEB获取进程命令行参数
关于命令行参数 进程创建进程时,会传一个命令行给它,一般其第一个内容是其可执行文件的名称,因为在调用CreateProcess时,若applicationname参数为空(大多数情况都为空),则CreateProcess将会去解析命令行参数以此获得进程映像文件的完整路径.一般应用双引号"PathName"将完整路径包括起来,否则应用空格与其余命令行参数隔开,具体解析方式这里不详述获
2018-02-04 13:59:39
2409
1
转载 C++ 编译器的函数名修饰规则
C++ 编译器的函数名修饰规则函数名字修饰(Decorated Name)方式函数的名字修饰(Decorated Name)就是编译器在编译期间创建的一个字符串,用来指明函数的定义或原型。LINK程序或其他工具有时需要指定函数的名字修饰来定位函数的正确位置。 多数情况下程序员并不需要知道函数的名字修饰,LINK程序或其他工具会自动区分他们。当然,在某些情况下需要指定函数的名字修饰,例如在C++程序中
2017-08-09 20:53:06
890
原创 c++导出类的简单实现
C++导出类的小Demo首先是通用头文件DllClass.h#pragma once#include <windows.h>__declspec(dllexport) class DllClass{public: void show();};然后将具体功能放入dllmain.cpp中// dllmain.cpp : 定义 DLL 应用程序的入口点。#include "DllCla
2017-08-09 20:18:10
1540
空空如也
如何与windows的打开/保存文件对话框的交互
2019-02-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人