10 feng_blog6688

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 2w+

获取windows已安装应用列表

windows系统安装的软件在注册表中有记录,路径为:注册表根句柄KEY_LOCAL_MACHINE,路径为"Software\Microsoft\Windows\CurrentVersion\Uninstall",涉及到32位应用和64位应用,如果是64位系统,32位的应用则存放在"Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall",64位应用则存放在"Software\Microsoft\Windows\CurrentVers

2020-07-09 16:43:18

四、文件 注册表 多线程

文件 注册表 多线程1、文件操作,内核模式下打开、创建、拷贝文件#include <ntddk.h>VOID DriverUnload(PDRIVER_OBJECT pDriverObject){ KdPrint(("驱动成功卸载\n"));}void MyCopyFile(HANDLE source, HANDLE dest){ NTSTATUS status; PVOID buffer = NULL; LARGE_INTEGER offset = { 0 };

2020-07-03 18:06:14

三、字符串操作

1、UNICODE_STRING​ windows内核编码字符集采用unicode字符集,字符串处理使用UNICODE_STRING,是一个结构体,定义如下:typedef struct _UNICODE_STRING { USHORT Length; USHORT MaximumLength;#ifdef MIDL_PASS [size_is(MaximumLength / 2), length_is((Length) / 2) ] USHORT * Buffer;#els

2020-07-03 13:54:39

二、内核编程环境

1、内核编程的环境​ 32位系统的进程可访问的内存大小是4G,低位2G是用户空间,高位2G是内核空间。应用程序运行在用户态,进程空间是相互独立的,不必担心进程间访问同一地址空间出错,但是如果如果内核空间获取的信息肯定是一样的。内核模式也被称为内核态,x86架构下R0层的代码才可以访问内核空间,普通应用程序编译出来都运行在R3层,R3层的代码如果要调用R0层的功能,需要通过系统提供的入口来实现,调用内核API.内核模块也代表实际的驱动程序,内核空间是所有进程所共享的,系统进程一般是一个名为“system

2020-07-03 09:53:26

Win API使用记录--RtlCopyMemory与RtlMoveMemory区别

1、RtlCopyMemory与RtlMoveMemory 这两个函数是内核函数api,对应Win32 API是CopyMemory和MoveMemory。都能实现内存块的复制,两者的区别在于CopyMemory是非重叠内存区域的复制,MoveMemory可以不考虑是否重叠,都可以安全复制。CopyMemory实现如下:void *memmcpy(void *dest , const void *src , size_t count) { assert( (dest ...

2020-07-02 10:11:08

DebugView使用说明

简介DebugView是一个系统调试信息捕获工具,如果在程序中使用用户模式使用OutputDebugString,或者内核模式使用Out_Debug_String,DbgPrint ,_Debug_Printf_Service,编译程序选择Debug版本,然后打开debugview,运行程序后就可以看到相应的输出信息,内核模式需要勾选Capture kernel,应用模式需要勾选Caputer Win32.设置说明如果设置没有问题,但是Debugview无法捕获输出信息,这个时候可以查看注册表是否

2020-07-01 16:00:02

windbg调试方法以及应用与驱动交互

windbg调试方法1、网络连接​ 两台pc通过网络连接,我们把驱动测试的主机称为目的机,把运行windbg进行远程调试的主机称为host主机,首先设置目的机与host主机连接的ip端口以及key信息,已管理员权限运行CMD,输入以下命令:bcdedit /dbgsettings net hostip:192.168.6.14 port:50000 key:1.2.3.4开机目的机的调试模式:bcdedit /set {default} DEBUG YES禁用驱动程序签名:bcdedit

2020-07-01 11:11:25

管道通信相关知识总结

管道概念管道是进程间通信使用的一种共享内存的方式,创建管道的进程称为管道服务器,连接管道的进程成为管道客户端。进程间通过管道方式,一个进程往管道写入数据,另一个进程从管道取数据,类似socket通信从buf缓冲区读写数据,管道操作也类似文件读写。管道分为匿名管道和命名管道,文中主要介绍命名管道操作。匿名管道匿名管道,没有名称,而且是单工模式,就是两个进程只能一个进程往管道写入数据,另一个进程往管道区数据,而且匿名管道只能使用在父进程与子进程之间,因此如果想要在局域网内使用管道通信,不能使用匿名管道。

2020-06-28 18:31:06

VS c++编译过程中遇到的问题及解决总结[更新中]

1、问题:LNK1104:无法打开lib文件 LINK : fatal error LNK1104: 无法打开文件“libboost_date_time-vc141-mt-gd-x64-1_71.lib” 解决:[项目属性]->[链接器]->[附加库目录] 添加相应的lib文件的路径,在[链接器]->[输入] 输入lib文件 或者在源码中...

2019-12-13 16:36:51

五、应用程序与驱动程序交互(缓冲模式)

新建exe控制台程序#include "pch.h"#include <windows.h>#include <iostream>#include <WinIoCtl.h>#include "ctl_code.h"using namespace std;#pragma warning(disable: 4789)int add(HANDL...

2019-12-04 11:30:31

win7和win10下的dll远程注入代码和inline hook 进程隐藏

win7和win10远程注入dll的代码不通用,归纳代码如下判断当前系统类型:DWORD checkOS(){ OSVERSIONINFO os_version; os_version.dwOSVersionInfoSize = sizeof(os_version); if (GetVersionEx(&os_version)) { if (os_version...

2019-09-06 15:54:00

libtorrent.lib静态编译以及创建client测试(全)

最近做一个BT下载的项目,使用libtorrent.dll动态链接依赖于实际环境,因此需要编译一个lib,项目中使用静态链接,运行库 MTD环境:win10+vs2017+boost1.7.1+libtorrent1.2.11、首先下载并编译boost库,下面提供官网链接boost1.7.1版本下载链接本文中使用的是boost1.7.1版本的,下载之后放在了D盘在cmd下进...

2019-08-21 17:54:00

libtorrent实现bt客户端程序

以下代码利用libtorrent实现了BT客户端程序,需要包含boost库和libtorrent库具体使用如下:ltclient.exee:\5DE0513D406C65FEA074E39CD4B98A7F16816C86.torrente:\download\xyz\exe+torrent+savepath//ltclient.cpp:此文件包含"ma...

2019-07-23 15:01:41

Libtorrent客户端代码解析(client_test)

/*Copyright (c) 2003-2017, Arvid NorbergAll rights reserved.Redistribution and use in source and binary forms, with or withoutmodification, are permitted provided that the following conditions...

2019-07-05 10:31:11

libtorrent应用之简单客户端开发

boost库编译:b2 stage --toolset=msvc-14.1 architecture=x86 address-model=32 --stagedir=".\lib32-msvc-14.1" threading=multi --build-type=completeb2 stage --toolset=msvc-14.1 address-model=64 --stagedir...

2019-07-05 10:14:13

VS2017编译boost1.7

1、在开始菜单找到适用于vs2017的X86_X64兼容工具命令提示进入boost目录下b2.exe所在目录编译32位lib:b2 stage --toolset=msvc-14.0 architecture=x86 address-model=32 --stagedir=".\lib32\vc14_x86" link=static runtime-link=static thread...

2019-07-03 15:37:03

控制台程序接收命令行参数

如果通过CreateProcess创建进程来调用控制台程序,那么在传递命令参数时需要加上 空格,如果不加上空格,argv是无法获取到参数的,示例如下主程序: nError = ::CreateProcess(cCmdFile, L" -s", NULL, NULL, FALSE, NORMAL...

2019-06-13 10:52:31

Socket客户端动态库程序

1、头文件 ClientDll.h#ifndef CLIENTDLL_H#define CLIENTDLL_H#define DLLEXPORT __declspec(dllexport)#define DLLIMPORT __declspec(dllimport)#include <winsock2.h>#pragma comment (lib,"ws2_32.li...

2018-12-13 09:47:19

C++ 选择文件夹以及选择文件代码

   TCHARszBuffer[MAX_PATH]={0};    BROWSEINFObi;    ZeroMemory(&bi,sizeof(BROWSEINFO));    bi.hwndOwner=NULL;    bi.pszDisplayName=szBuffer;    bi.lpszTitle=_T("从下面选文件夹目录:");...

2018-10-26 16:19:13

github配置及上传工程指南

1、下载git的PC客户端软件,并安装     下载地址:http://git-scm.com/download/  ,安装路径可以任意,我选择在D盘目录2、绑定用户并设置ssh-key      绑定用户的命令:git config --global user.name "设置用户名"git config -- global user.email "设置邮箱"通过以...

2018-10-25 17:11:17

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享精英
    分享精英
    成功上传11个资源即可获取