自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Sven的忘却日记

我把梦撕了一夜 不懂明天该怎么写

  • 博客(164)
  • 资源 (7)
  • 收藏
  • 关注

原创 RtlUpcaseUnicodeString转换大写后,Buffer丢失NULL结束符,传入垃圾字符

使用UNICODE_STRING时,必须严格遵守Length,MaximumLength都不可信。如果直接用dst.Buffer给一个wstring赋值,则会带入垃圾字符;记录一下,STL和UNICODE_STRING混用,容易出现问题;

2024-10-25 16:31:42 226

原创 fatal error LNK1120: xxxx unresolved externals

因为A项目是通过DDKWarizd生成的驱动LIB,顺着ddkbuild.cmd脚本跟踪到,最终调用的是DDK目录下面的bin\setenv.bat文件,在文件中有这么一句条件判断,如果编译的平台是WinXP则不会设置。在B项目集成A项目的32位LIB库时,出现此错误,看错误很常见的找不到符号函数的实现代码,实际是DDK7.0 BUILD环境隐藏的bug;随后编译的A项目LIB中没有引用GS相关函数了,B项目也可以顺利编译成功;A项目的source文件中没有定义任何编译器选项,

2024-04-18 16:36:37 503

原创 fatal error C1001: An internal error has occurred in the compiler

首先确定是新引入的LIB引起的这个编译器错误,经过查看 C1001 错误的微软官方文档解释,如果错误路径是UTC目录下的,很可能是优化导致的此问题,只能挨个关闭LIB的优化选项来定位具体是哪个优化导致的;如果是VS管理的项目,在C/C++ ===> Optimization ===》 Whole Program Opimization选项中设置为NO 即可关闭GL;如果是DKKWarizd生成的项目,可以在source文件中加入一行,即可关闭GL。主要影响是关闭GL后,生成的LIB文件变小了。

2024-04-18 15:52:35 458

原创 在内核中阻止进程创建的正确方法

最近遇到一个BUG,通过Word在打开hyperlink时,在进程通知回调中结束了Chrome浏览器进程,目标进程虽然被杀了,但是Word还会再尝试用另一种方法再打开浏览器,这种情况只出现在Win7上,百思不得其解。

2023-12-06 22:29:21 601

原创 【内核与用户层同步】内核对象安全描述符降权

使用下面函数修改内核Event的安全描述符以后,加入SeAliasUsersSid,给普通用户也赋予权限,这样就可以打开内核的Event了,此时用户层程序如果是普通用户权限,则打开Event失败,因为内核创建的对象,普通用户层是没有权限打开的。DriverEntry 创建一个命名的内核通知事件对象。用户层打开该对象,并创建线程,等待事件通知。

2022-12-01 14:30:54 430 1

原创 拦截Minifilter与应用层通信的FltMessage

关于如何拦截Minifilter和应用层之间的通信消息,Hook FltMessage的两种方式

2022-07-29 09:06:08 694

原创 windbg 内存条件断点

判断指针ba w4 0d58130 ".if(poi(地址) = 值){}.else{gc}"判断其他数据类型,使用c++语法ba w4 0d58130 ".if(@@(*(int*)0x0d58130) = 0xa){dd 0x0d58130 }.else{gc}"

2021-12-22 02:33:14 1148

原创 win7x86安装驱动提示 0x241 577无法验证此设备所需的驱动程序的数字签名

1)背景win7x64开发驱动时,默认我们会开机F8 关闭强制驱动签名校验,之后可以正常安装驱动。win7x86开发驱动时,我们也可以用同样的方法,也可以在驱动项目属性上关闭强制校验。选择驱动项目属性,链接-》命令行-》附加选项 中加上/INTEGRITYCHECK,这个选项以后,会导致强制校验文件签名。解决方法:去掉该选项即可...

2021-11-04 11:26:10 1586

原创 安装驱动,提示文件找不到 error=2

1)背景安装驱动后,启动服务时,提示找不到文件!检查注册表中对应驱动文件路径等一切正常。之前遇到过这个问题,也挺坑的,最近又遇到了,原因却不一样!2)案例 一说说第一次遇到这个问题时的场景,第一次安装驱动一切正常,卸载驱动后,再次安装,就提示找不到文件。原因:设备对象被其它驱动引用了,未释放导致。3)案例 二驱动中使用了Rtl系列函数,比如RtlCompareMemory,编译后的sys文件导入表中RtlCompareMemory函数链接的是kernel32.dll,这会导致启动驱动服务时,提

2021-11-04 11:11:40 1834

原创 windbg .for命令遍历Win10所有注册的镜像通知回调函数

命令.for(r $t0=nt!PspLoadImageNotifyRoutine;poi(@$t0)!=0; r $t0=@$t0+8){r $t1=poi(@$t0)&0FFFFFFFFFFFFFFF0h;.printf "pCallback=0x%p pFunc=0x%p\n",@$t1+8,poi(@$t1+8);!address poi(@$t1+8); .echo =======================================}第一次进来,fffff8075eeb

2021-09-25 02:51:06 368

原创 使用git pull时,报错:The following untracked working tree files would be overwritten by merge

解决方法:git fetch origingit clean -fgit reset --hard origin/master

2021-07-14 09:49:11 347

原创 git 报错:Your configuration specifies to merge with the ref

由于git分支名字拼错错误,需要将git分支改名本地仓库改名:git branch -m oldName newName删除远程分支:git push --delete origin/oldName此时执行git pull 就会报错之前绑定的git远程仓库地址已经被我删除了,在本地仓库执行git pull 时候出现这个错误;需要先将本地分支与远程仓库解除绑定:git branch --unset-upstream然后重新执行git pull 就会提示让你重新绑定远程分支git branch -

2021-07-02 15:28:58 7207

原创 完美解决Setup has encountered an error(system file time out of sync,error code is 800b0101)

在vmware上安装基于泄露windows源码的windows server 2003 iso文件过程中出现错误,根据提示信息得知bios中时间有问题导致安装过程终止;后面尝试将日期修改成2003年的时间也不行尝试试用重新创建一个虚拟机,选择试用空硬盘安装,而不是直接用iso文件从cd安装;因为是空硬盘,在格式化硬盘过程中会提示一些信息,从提示信息中得知安装的iso镜像是试用版;因此猜测可能需要将bios中的时间改成编译iso的那一天,于是将时间改成2020-11-19后,成功开始安装系统了

2021-06-23 15:53:33 2233

原创 vs2019编译错误:LINK : fatal error LNK1104: 无法打开文件“atls.lib”

在项目属性里面,将Spectre缓解禁用就可以了

2021-05-20 17:07:45 3594

原创 C++通过DCOM调用Excel.ExecuteExcel4Macro执行宏代码

通过cpp调用excel.application对象的ExecuteExcel4Macro方法来执行任意宏代码,宏代码直接调用NativeAPI执行WinExec创建powershell进程要求:目标机器必须安装了Excel,#include "stdafx.h"#include <windows.h>#include <iostream>#include <oaidl.h>using namespace std;int _tmain(int argc,

2021-01-13 21:47:29 1282

原创 MMC20.Application远程创建DCOM对象,拒绝访问0x80070005

关于利用MMC20这个DCOM对象启动进程的方法,网上已经有不少文章了。我在测试在远程目标机器上创建MMC20对象时,始终提示0x8007005错误PS测试代码:$com = [Activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application","192.168.198.133"));$com = Document.ActiveView.ExecuteShellCommand("C:\Windows\System32\Ca

2021-01-08 15:52:25 2249 3

原创 使用Orca查看MSI安装包

样本信息:https://app.any.run/tasks/c1d2b5ec-ac4d-4394-929f-181a93316892/Orca是Windows SDK自带的一个MSI安装包解析工具,默认没有安装,需要手动安装一下,安装包在SDK的目录下C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\Orca.Msi...

2020-12-18 11:25:18 1438

原创 IDA7.0安装findcrypt-yara插件时报错

最近给新环境安装IDA7.0和插件findcrypt3.py在按照yara-python包时出现以下错误: yara/libyara/include\yara/types.h(33) : fatal error C1083: Cannot open inclue file: 'stdbool.h': No such file or directory error: command 'C:\\Users\\sam\\AppData\\Local\\Programs\\Common\\Micro

2020-11-23 16:04:35 727

原创 Ubuntu APT命令设置代理

最近使用Ubuntu安装 Google Cloud SDK时,发现设置的系统代理,并不能用于APT安装命令,需要单独给APT命令设置代理1.创建一个新的配置文件,命名proxy.confsudo touch /etc/apt/apt.conf.d/proxy.conf2.使用文本编辑器打开proxy.conf文件sudo vi /etc/apt/apt.conf.d/proxy.conf3.添加代理配置内容Acquire { HTTP::proxy "http://127.0.0.1:

2020-11-17 14:58:51 864

原创 分析cve-2018-15982常用windbg命令

windbg附加IE后,设置flash模块加载断点sxe ld Flash32_30_0_0_113.ocx内存访问断点,Flash漏洞利用代码,通过任意地址读写,泄露一个Flash Object 虚表函数地址,通过计算虚表函数地址,可以定位到ba r 4 flash模块基址 ".if(eip<Flash模块结束地址){.echo \"shellcode\"}.else{g}"bp kernel32!VirtualProtect ".if((poi(@esp+43)==40)&

2020-11-17 10:33:16 190

原创 Windbg常用命令 - 修改可执行内存属性断点

下面命令对32位程序,修改内存属性为读写执行时,断下,并打印出地址、大小、和新属性值 bp kernel32!VirtualProtect ".if(poi(@esp+4*3)==40){.printf \"addr=0x%08x size=0x%08x newProtect=0x%08x\\n\",poi(@esp+4),poi(@esp+4*2),poi(@esp+4*3);.echo hit!!! }.else{gc}; "比较坑的是.printf命令,换行要用\\n才行。...

2020-11-16 17:35:11 533

原创 git将现有已经修改代码提交到新的分支

场景:正在当前分支进行开发,突然接到任务,暂停开发,并在目前仓库最新提交的代码基础上进行修改bug,此时需要将已经修改的代码进行暂存,等bug修复后,再恢复环境继续开发。1)首先需要将已经修改的代码保存到git暂存区,使用命令:git stash2)创建并切换到新的代码分支git checkout -b 分支名称3)将修改的代码恢复到新的分支git stash pop保存已经修改的代码,如果只是本地暂存,可以只git commit -m xxx 就行了 否则,push到远程仓库...

2020-11-13 14:16:27 3421

原创 WDM项目中使用minifilter

直接导入fltkernel.h,并使用minifilter中的函数,编译时会提示找不到符号等错误。需要在项目链接器->输入文件中增加fltmgr.lib 即可编译,并使用filter相关内核函数

2020-11-13 14:06:02 425

原创 使用LIST_ENTRY维护一个进程链:插入、删除、遍历

#include<ntifs.h>LIST_ENTRY g_Head = { 0 };KSPIN_LOCK g_SpinLock;typedef struct _ProcessSnapeNode{ LIST_ENTRY ListEntry; ULONG PID;}ProcessSnapeNode, *PProcessSnapeNode;VOID PrintAllNode(){ if (IsListEmpty(&g_Head)) { DbgPrint("链

2020-10-14 00:12:32 1314 3

原创 中孚信息DLP监控软件白利用

zhp.exe存在dll劫持,导入表中依赖ZfHookPolicy.dll导出的1和4号函数。效果图:

2020-08-06 17:45:03 3080

原创 检测app.any.run沙箱运行环境

检测app.any.run沙箱环境,先写了个遍历进程的demo传上去,看看进程列表有什么沙箱特有的进程。发现个进程很奇怪,路径是:c:\windows\system32\host.exe ,竟然没有随机名正常的系统下是没有这个文件的,所以就拿这个来做了,效果图检测代码:#include "stdafx.h"#include <windows.h>#include <string>#include <fstream>#include <iostre

2020-08-05 14:45:30 1413

原创 systeminfo、WmiPreSE.exe,dll劫持

在指向systeminfo命令时,systeminfo.exe内部通过wmi和LPC的方式获取数据,WmiPrvse.exe在执行实际操作时会去加载tzres.dlldll路径:C:\Windows\System32\wbem\tzres.dll#include <stdlib.h>BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call,

2020-06-23 09:17:26 701 2

原创 进程挂靠后使用PsGetCurrentProcessId获取的进程ID不准

如题,在使用KeStackAttachProcess挂靠到目标进程后,又调用了一系列子函数,此时并没有把EPROCESS传进去。PEPROCESS pProcess = NULL;KAPC_STATE apc;NTSTATUS status = PsLookupProcessByProcessId((HANDLE)pid, &pProcess);if (NT_SUCCESS(status)){ KeStackAttachProcess(pProcess, &apc);

2020-06-01 21:17:33 1927

原创 使用Legacy Filters过滤创建和打开命名管道

之前写的方法,都比较不正规,这次采用设备过滤器来拦截命名管道的创建和打开,下面是效果图代码:#include "ntifs.h"typedef struct{ PDEVICE_OBJECT LowerDeviceObject;}DEVICE_EXTENSION,*PDEVICE_EXTENSION;PDEVICE_OBJECT g_MyFilterDevice = NULL;void DriverUnload(PDRIVER_OBJECT DriverObject){ DbgPri

2020-05-28 20:08:22 354

原创 WindowsXP下获取命令行参数

1)背景最近有个需求在WindowsXP下通过PsSetCreateProcessNotifyRoutine注册了一个进程创建回调,然后尝试通过PEB来获取被创建进程的命令行参数,发现PEB结构中的命令行等相关数据还没有被填充进去。通过查看GetCommandLineA函数的反汇编,得知进程的命令行保存在一个固定的地址0x7C8855F4MOVE EAX, DWORD PTR [0x7C8855F4]RETN在进程创建回调中,附加到目标进程,再查看这个地址的数据,如下所示。 因为时机还不对,这

2020-05-21 15:34:25 539

原创 Hook Npfs驱动对象Dispatch过滤创建和打开管道

通过Hook Npfs对象的Dispatch的IRP回调函数,达到过滤命名管道的需求,这种方式测试win7-win10_1909 都非常稳定!#include <ntifs.h>#include <ntstrsafe.h>#include <ntddkbd.h>// Propertys// ==============================================================================extern

2020-05-12 10:23:14 516 7

原创 Win7x64通过ObCallback过滤文件、命名管道创建和打开

测试了win7x64 、win8x64,可以正常过滤命名管道。也可以通过替换npfs驱动的dispatch入口函数来做。#include <ntifs.h>#include <ntddk.h>struct ThreadData{ ULONG ThreadId; int Priority;};#define PRIORITY_BOOSTER_DEVICE 0X8000#define IOCTL_PRIORITY_BOOSTER_SET_PRIORITY CT

2020-05-11 20:27:45 902

原创 Minifilter过滤命名管道和邮槽的一些问题

最近有个需求需要监控管道的链接,IRP_MJ_CREATE过滤不到管道的创建和链接。注册的IRP_MJ_CREATE_NAMED_PIPE这个irp的回调也一直不被调用。OSR上老外也提了类似的问题:https://community.osr.com/discussion/239743/can-a-minifilter-filter-a-non-file-devices-irpshttps://community.osr.com/discussion/171174https://communit

2020-05-11 15:37:14 1044

原创 Example of Windows Named Pipe Communication between Server and Client

服务端代码:#include <iostream>#include <windows.h>using namespace std;int main(){ HANDLE hPipe = INVALID_HANDLE_VALUE; const char* lpszPipename = ("\\\\.\\pipe\\namedpipe_td"); do { hPipe = CreateNamedPipeA(lpszPipenam.

2020-05-09 16:26:22 287

原创 host key for (ip地址) has changed and you have requested strict checking

五一小长假复工了,上班第一天发现我的git更新不了最新的代码,并提示git服务器的dns变了。尝试了网上的方法 ssh-keygen -R “新IP” 不好使。。最后将用户目录下的:C:\Users\《username》.ssh\known_hosts 文件删掉就好了...

2020-05-06 15:49:56 1274 2

原创 c++内存执行脚本语言

好久没写博客了,抓住四月的小尾巴,分享一篇利用c++提供的com接口,来执行各种脚本语言直接上代码,下面demo使用vs2019编译,功能是通过c++执行vbscript脚本,创建进程:#include <iostream>#include <windows.h>#include <objbase.h>#include <activscp.h&g...

2020-04-30 15:53:38 847

原创 javascript shellcode to c shellcode

分析脚本类的shellcode时,需要转成C版本的,更方便调试一些为此写了一个010editor脚本,一键转换#define TITLE "js-shellcode-to-c"void Main(void){ int iIter; int iStart; int iSize; string sToClipboard; string sTemp...

2020-03-24 18:56:21 765 1

原创 调试.net样本反射加载dll并动态Invoke函数

一个.net的窗口程序,内嵌了两个资源,分别是:LAN_Core (.net dll程序,用于解密png中的assembly)ESgFXCQfRbAmmGdIaVSZ.png (用图片隐写技术嵌入了另一个.net程序)主程序通过调用LAN_Core的f20方法,将自身资源png图片传入这里的MyProperty 其实就是ESgFXCQfRbAmmGdIaVSZ.png的资源名...

2020-03-20 17:24:30 652

原创 bt汇编指令和_bittest

_bittest函数_bittest(address, bit_offset);这个函数用来检测从address这个地址开始,第bit_offset位是否被置位。反汇编下就是bt指令下面这段代码节选自RPCRT4.DLL中的I_RpcBindingInqLocalClientPID函数,用来校验RpcBindingHandle 是否有效 if ( *((_DWORD *)RpcBindi...

2020-03-01 14:34:00 3498

原创 windbg调试符号下载不了

微软符号服务器已经很久没ping通了,挂上全局代理可以下载符号,但是又不想总是开着全局代理。后来找到一种替代方案,可以通过设置系统环境变量,来让下载符号的流量走代理服务器_NT_SYMBOL_PROXY设置好代理后,再下载符号,已经有提示下载进度了!...

2020-02-04 18:35:30 8854 8

Visual Assist X 亲测可用VS2017

亲测可用VS2017,里面有VA安装包和Patch补丁,以及使用说明。测试时间2018年12月10日

2018-12-10

iOSAppReverseEngineering

我有很多资源想与大家分享,更多好书,关注我的csdn!

2018-07-04

shellcode转unicode工具

这是一款超级便宜的shellcode转unicode工具,非常好用!

2018-06-13

Windows核心编程(第5版) 带目录

Windows核心编程(第5版) 带目录版本,找了好久的呀,分享给大家了,更多好书,请关注我!!

2018-03-23

Windows.Internals.Part.1.7th.Edition

Windows.Internals.Part.1.7th.Edition.2017.5.pdf 有很多好书,读不过来,分享给大家!多多支持啊!

2018-03-23

空空如也

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

TA关注的人

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