- 博客(16)
- 资源 (41)
- 收藏
- 关注
原创 Windows Practice_Dll&Hook_封装IAT Hook
进程保护器的实现本程序实现了一个简单的暴力的进程保护器,其原理也很简单,就是修改导入表,挂钩TerminateProcess函数,因为这个函数可以远程无条件的结束其它进程,所以我们要挂钩这个函数。 因为每一个程序都有可能结束要保护的程序,所以我们必须以Dll的形式注入到每一个进程中,这就涉及到注入的问题了,而Windows给我们提供了一个简单的全局挂钩的函数,即SetWindowsHook函数。
2017-09-24 12:32:19 396
原创 Windows Practice_Dll&Hook_IAT Hook
PE结构PE结构时Windows中一个比较大的结构体,它的整个结构体图如下所示: 给MessageBoxW函数挂钩我们自己的函数就是我们挂钩之后,调用MessageBoxW函数后,会进入到我们自己的函数中执行我们自己的代码。挂钩还原之后,还可以正常的调用MessageBoxW函数,这就是这个测试程序的功能。// IATHookDemo.cpp : 定义控制台应用程序的入口点。//#includ
2017-09-24 11:30:55 299
原创 Windows Practice_Dll&Hook_Hook是什么?
Hook是什么?Hook能够改变软件的功能,比如添加新功能和修改原功能的执行流程。使用Hook是针对于没有源码的情况下才使用的,如果有源码,就没必要Hook了。Hook是如何改变程序的流程的程序块程序块结构(program block struction)是一种程序结构形式。这种结构将整个程序分为若干个信息快或子程序块,使程序变得清晰,便于阅读和修改。 所以程序中的每一块,都是Hook的一个点。作
2017-09-24 11:06:48 341
原创 Windows Practice_Dll&Hook_消息钩子
DllDll就是我们通常所说的动态链接库(Dynamic Link Library),它和应用程序在本质是没有任何区别的,它也是一个可执行文件,它们都有相同的PE结构。 但是两者在应用上面还是有一些区别的,Dll一般作用exe应用程序的补充体,它是一个模块,用来被exe文件加载。 在Windows中有一部分exe文件也是能够被加载的,比如.oxc后缀的控件格式。为什么大部分应用程序喜欢使Dll?
2017-09-24 10:20:39 370
原创 Windows Practice_文件_文件分割器(三)
两种开发方式瀑布式开发 有需求 -> 分析 -> 建模 -> 编码 -> 维护 所有的类全部是自己设计编码的敏捷开发 需求 -> 编码 -> 重构(建模) -> 编码 需求总是变化的 -> 代码也需要变化 所谓的敏捷开发就是拿着开源项目修改为自己的项目,随着时间的推移,改变的越来越多的内容,最后可能将原来开源项目中的所有内容都改为自己的内容。当前类的性质, 类方法及类成员设计的时候
2017-09-17 23:33:20 308
原创 Windows Practice_文件_文件分割器(二)
文件分割器实现时注意的几点分割文件的头信息结构体的设计,如果里面需要存储字符串的信息,我们必须使用字符串数组来存储,而不能使用类似于CString、string等字符串对象来存储,因为使用这些对象在存储的时候还好,可以知道它的长度进行文件的写入,但是在读取的时候就会出现问题了,因为不知道读取多少。 解决方法有两个: 1. 在头文件信息结构体中加上构造函数和一些其它的辅助函数(这样就相当于类的功能
2017-09-17 11:02:33 361
原创 Windows Practice_文件_文件分割器(一)
文件分割的意义有以下几点需要进行文件分割:以前的硬盘格式是FAT32,也是意味着最大的内存放的单个文件是4GB,如果文件超过4GB,就需要进行分割成小于4GB的文件才能存储到硬盘上;网络虚度比较慢,并且还会出现中断,一旦中断,下载的文件就会失效。我们在做分割时候,除了考虑分割外,还需要考虑合并,否则分割也就没有意义了。CFile函数注意事项CFile默认打开的是文本格式,这不符合文件风格的要求
2017-09-17 01:08:45 542
原创 Windows Practice_内存映射_加载BMP
什么是BMP,为什么我们会经常使用这种图片格式?微软给我们专门提供了一个加载位图的LoadBitmap函数,这说明bmp格式图片在Windows中使用的比较多。 我们知道没一种文件都有它自己的文件结构,那么bmp就是一种位图形式的文件格式。既然bmp也是一种文件,那么我们也可以使用CreateFile函数进行打开。bmp文件格式详解先看下面一个简单的例子:void CFileMapBMPDlg::
2017-09-17 00:20:23 443
原创 Windows Practice_文件_内存映射(一)
大文件数据操作我们以全国开放数据(数据纯属伪造)为例,它的文件格式是csv,也是经常使用的一种文件存储格式,它是以逗号和换行来进行区分数据段和行来进行数据的区分。 今天我们把一个文件中的2000000条数据进行处理。文件操作的几种方式#include <stdio.h>#include <Windows.h>#include <clocale>const UINT MAXLINESIZE =
2017-09-10 13:39:31 410
原创 Windows Practice_文件_注册表操作
Windows中的注册表我们会好奇,为什么在我们双击一个文件的时候,会用合适的程序来运行呢?比如说.jpg文件在双击的时候就会用图片查看软件打开,这是为什么呢? 因为文件的后缀名帮助操作系统如何打开,也可以自定义。 我们知道notepad可以打开.txt文件,但是notepad不能打开.mystyle的后缀名,如果我们想用notepad打开这样的后缀名的文件,那么应该对操作系统进行设置,具体的说
2017-09-10 13:30:44 357
原创 Windows Practice_文件_文件基础操作
Windows中文件在Windows编程中,少不了打交道的肯定是文件,但是我们绝大多数接触到的都是文件的表象。 在Windows中有各种各样的文件,大致有: - exe dll:可执行文件 - txt:文本文件 - jpg bmp gif: 图像图形文件 - lnk: 快捷方式文件 - rar 7z zip iso:压缩文件 - avi mp4 rmvb 影音文件这些文件实
2017-09-10 10:50:42 453
原创 Windows Practice第3方库的学习方式
界面库的使用这里我们主要是开源的duilib为例来简单的学习一下第3方界面库的使用。 目前比较流行的库是一般只做一件事,这样做的目的是使得我们的库变得很轻,而不像MFC那样的笨重。 duilib的文档给出了类的继承关系图,如下所示: 迅雷的界面库不是开源的,但是做的十分的炫酷。在使用第3方库的时候一定要先看它的文档,否则我们是无法使用的。文档里面一般会有例子和使用说明。总之,这些第3方库都需要
2017-09-08 22:49:12 176
原创 Windows Practice(八)_MFC
简单的Spy++实现从Spy++运行的效果来看,我们不难推测出,它是根据鼠标移动的位置来进行窗口的查找。那么是什么API呢?那就需要靠万能的谷歌和百度了。源码实现: 解决方案结构如下: 运行效果如下图: 主要代码如下:// Spy++DemoDlg.cpp : 实现文件//#include "stdafx.h"#include "Spy++Demo.h"#include "Spy++
2017-09-08 01:31:33 436
原创 Windows Practice(七)_MFC
简单计算器实现注意事项由于计算器中有很多的窗口,那么我们就需要使用很多次CreateWindow函数,但是我们在使用的时候,有一些参数是固定不变的,所以我们就有必要对CreateWindow函数进行封装。 还有,如果我们使用了c++中的string类的时候,就不需要使用c语言的字符串拼接函数了,直接使用string中的+=等符号重载就可以了,否则我们失去了一些运行效率,但是也没有得到开发效率的提升
2017-09-08 00:42:12 279
原创 Windows Practice_闹钟(六)_控件对象
Windows API封装思想MFC之所以好用,那是因为MFC把Windows所有API都封装起来了,我们在使用的时候就会很方便,所以我们以后在使用Windows API的时候就需要适当的将一些Windows API封装起来,这样使用起来就会很方便了。Win32 API创建一些列的控件Win32 API也可以使用CreateWindow函数来创建像MFC里面的按钮(Button)、编辑框(Edit)
2017-09-07 20:16:33 316
原创 Windows Practice_闹钟(五)_GDI绘制工具
GDI的应用简单画图软件,实现了画笔、直线、圆以及贴图的功能。 解决方案如下图所示: // Paint.cpp : 定义应用程序的入口点。//#include "stdafx.h"#include <commdlg.h>#include <Windowsx.h>#include "DrawDemo.h"#define MAX_LOADSTRING 100typedef enum tagD
2017-09-07 01:46:27 323
win32diskimager-1.0.0-install.exe.zip
2019-07-10
jdk-8u152-docs-all.rar
2017-12-28
Ubuntu 17.04安装CUDA9.0 Cudnn7 Opencv3.3 Caffe安装
2017-11-12
vgg_generated_64.i.rar
2017-11-01
opencv_contrib-3.2.0.tar.gz
2017-10-23
apache-log4j-2.9.0-bin
2017-09-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人