自定义博客皮肤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的忘却日记

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

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

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

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

2023-12-06 22:29:21 457

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

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

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

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

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

2022-07-29 09:06:08 547

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

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

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

2021-11-04 11:26:10 1332

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

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

2021-11-04 11:11:40 1086

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

原创 使用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 292

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

原创 完美解决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 2050

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

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

2021-05-20 17:07:45 3340

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

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

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

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

原创 分析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 154

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

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

原创 WDM项目中使用minifilter

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

2020-11-13 14:06:02 332

原创 使用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 1096 3

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

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

2020-08-06 17:45:03 2417

原创 检测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 1297

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

原创 使用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 317

原创 WindowsXP下获取命令行参数

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

2020-05-21 15:34:25 490

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

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

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

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

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

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

原创 VMware虚拟机使用代理下载windbg调试符号

一些特殊场景需求,主机已经开了全局代理,但是在虚拟机中的网络流量却不走代理流量。物理机IP:192.168.1.102虚拟机桥接后的IP:192.168.1.104物理机Shadowsocks设置:并允许来自局域网的链接首先需要将虚拟机的网络设置改成桥接模式:设置虚拟机的中的网络代理设置,使用物理机作为代理ip,默认shadowsocks的本地代理端口1080虚拟机中访问googl...

2020-02-06 12:56:18 1159

原创 windbg调试符号下载不了

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

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

原创 如何hook malloc内存申请失败?

申请内存时,C语言中有malloc函数,c++有更高级的new操作符。new的其中一个特性就是可以注册一个内存申请失败的hook函数。例如:在C++中我们可以调用_set_new_handler(),来设置一个"Allocation failure handler"函数,每当new申请内存失败时,这个函数就会被调用。而malloc默认并不支持这一特性。有时需要将用C写的项目移植到C++上,通...

2020-01-31 20:09:53 859

原创 sxe ld 命令

有些场景需要使用windbg调试某个dll模块,而这个模块加载时机不是很确定。通常需要使用sxe ld <dll名称> 来设置一个模块加载异常。当被调试进程加载指定名称的dll时,调试器就会中断,后续就可以对该模块的设置一些符号断点了。那么如何看到我设置的所有sxe断点呢? 在windbg的event filter中可以管理设置过的sx系列断点...

2020-01-14 20:29:49 2296

Visual Assist X 亲测可用VS2017

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

2018-12-10

《Insite Windows Debugging》英文版

《Insite Windows Debugging》英文版,分享给大家!!!

2018-09-17

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关注的人

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