
杂谈
文章平均质量分 54
zhuhuibeishadiao
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关于52ghai,pediy帖子说明
pediy:我特别好奇某些易语言开发者电脑里到底有多少种病毒?-软件逆向-看雪论坛-安全社区|安全招聘|bbs.pediy.com52ghai:Cisool驱动读写,内核远程call,兼容Win7.Win10.Win11系统,无痕驱动,分享给大家 - 开源交流 挂海论坛 (52ghai.com)52ghai本人无账号.这种“邀请码”式的论坛,打开就关闭,52pojie还是白嫖来的....原创 2021-09-09 11:50:45 · 1515 阅读 · 1 评论 -
LLVM编译Windows驱动(goron/obfuscator)
1.LLVM安装:Download LLVM releases(用于编译混淆后替换bin) 设置下环境变量: version见lib\clang下的文件夹名set LLVMInstallDir=C:\Program Files\LLVM set LLVMToolsVersion=12.0.0 rem LLVMToolsVersion = name of the last subfolder in the path C:\Program Files\L...原创 2021-08-25 23:19:52 · 4954 阅读 · 3 评论 -
windows下efi编译环境配置(EDK2)
1.下载Nasm安装 解压到目录 系统环境添加NASM_PREFIX C:\nasm\2.下载Asl,解压到c:\Asl目录 没有就创建3.下载python3.7 or later4.创建一个工作目录比如c:\efi\test5.clone edk2git clone --recursive https://github.com/tianocore/edk26.clone edk2-baseTools-win32git clone --recursive http.原创 2021-01-30 17:25:48 · 2764 阅读 · 3 评论 -
win10 Dynamic Value Relocation Table Retpoline解析
前言: 在CVE-2017-5715漏洞曝出之后,微软做了一系列的措施来缓解,并在win10 1809(17763)之后默认启用了Retpoline,pe格式也发生了部分改变(win8.1已改变,后续只是增加).启用RetPoline之后,winload.exe在加载ntos和hal.dll时,会替换一些指令.DVRT: 全名Dynamic Value Relocation Table,此表记录需要替换的指令的指针,当然,系统也可以选择不进行替换,因为这些镜像在编译时,会留出一些...原创 2020-11-26 12:02:32 · 962 阅读 · 3 评论 -
Win10 PatchGuard静态破解更新
前段时间有朋友问http://blog.youkuaiyun.com/zhuhuibeishadiao/article/details/54410029这个开源的还是会蓝屏具体我没试,下面说下通杀的破解方法KiFilterFiberContext 下第三个call(没有符号) 内部48 8b c4 ->>b0 1 c3即头部改b0 01 mov al,1c3 retn原创 2018-01-12 10:44:12 · 6407 阅读 · 7 评论 -
某网络公司工作感想
说来有些惭愧,今年20岁了。还没有真正出去工作过,这个暑假有幸受戴先生邀请参加项目开发,也是第一份正规的工作,原本以为过去是做驱动开发的,可能自己经验不够,能力有限,在研究WFP时出现进度缓慢的情况(非防火墙开发),被安排了去做应用层的开发,做一个激活工具,这个先前也不知道,但需求已经踢下来了,只能硬着头皮去找资料了,刚开始老是出问题,激活不成功,引导,KMS支持等等,得好好感谢这些问题,让这原创 2016-08-28 02:22:16 · 2518 阅读 · 1 评论 -
勘误 win7x64下对OpenProcedure的ObjectHook
那个时候刚接触ObjectHook我对进程对象下的OpenProcedure进行HOOK 保护程序typedef LONG32 (NEAR CDECL FUNCT_005B_0FC1_OpenProcedure) (enum _OB_OPEN_REASON, CHAR, UINT64 /*struct _EPROCESS**/, UINT64 /*VOID**/, UINT64 /*ULONG原创 2016-06-10 17:22:08 · 2830 阅读 · 0 评论 -
[持续更新] 编程札礼
写这篇文章的起因是 参加了一个公司的笔试 发现考的都是很细节的东西 所以在学习中遇到这样的问题就记录一下.1.指针在申请/释放后置NULL 防止野指针;2. delete一个不是new出来的地址会导致堆破坏;3.WIN7上系统自带程序 入regedit或calc taskmgr 弹出错误对话框的函数是DialogBoxIndrectParamW;4.务必检测内存分布失败情况mall原创 2016-03-31 16:26:28 · 927 阅读 · 0 评论 -
[已完结]我在学校举办软件安全讲座提纲
主流软件的保护--比如SSDT Inline Hook 了哪些函数 这些函数有什么用 在x86下在x64下 讲解进线程回调并AnTi这些回调(可用自己的例子,比如保护计算器 然后Anti后在结束)讲解为什么x64下不能随意HOOK,并怎么突破(破PG),突破后SSDT HOOK 进行测试讲解x64下DSE 以及如何过掉DSE(仅仅讲win7 x64)并演示讲解一般软件的保护原创 2016-04-16 22:37:49 · 2191 阅读 · 1 评论 -
位运算之C:与、或、非、异或
标 题: 位运算之C:与、或、非、异或作 者: lcx4时 间: 2016-3-23链 接: http://www.lcx4.com/?post=20与运算:&两者都为1为1,否则为01&1=1, 1&0=0, 0&1=0, 0&0=0或运算:|两者都为0为0,否则为11|1 = 1, 1|0 = 1, 0|1 =转载 2016-04-24 00:02:13 · 684 阅读 · 0 评论 -
关于调用约定(cdecl、fastcall、thiscall)
标 题: 关于调用约定(cdecl、fastcall、thiscall)作 者: lcx4时 间: 2016-3-22链 接: http://www.lcx4.com/?post=19当高级语言函数被编译成机器码时,有一个问题就必须解决:因为CPU没有办法知道一个函数调用需要多少个、什么样的参数。即计算机不知道怎么转载 2016-04-24 00:00:17 · 569 阅读 · 0 评论 -
[科普]SSDT/SSSDT那些事
哇,看到很多人找SSDT/SSSDT名称很蛋疼,读ntdll啊什么的,最后index还很乱,github上也有相关的工具,关键字是syscall,也是用ntdll的方式..这里科普下吧以win10为例x86下找到ssdt表很简单,ida打开找到后交叉下 会找到KiInitSystemINIT:00998E8E A3 48 93 64 00原创 2017-05-09 11:11:37 · 3928 阅读 · 1 评论 -
关于驱动隐藏那点事(不触发PG 支持win10)
已开源:https://github.com/ZhuHuiBeiShaDiao/NewHideDriverEx更新:支持seh,原理自己逆下 将seh挂到其它模块上而已.看网上用此方法隐藏用的挺嗨啊,麻烦打个出处,谢谢了.没必要藏着,人生没有必要为这些小玩意小打小闹。看到某些哥们这搞搞那搞搞,BSOD PATCHGUARD 无语,WRK是个好东西啊!还有半年来也没怎么发博客,惭...原创 2017-07-21 16:27:09 · 20675 阅读 · 6 评论 -
minifilter/sfilter较为精确的判断是打开还是新建操作
写这篇文章的原因是看到一些代码判断不准确,导致效果很奇怪很奇怪,当时我哭晕在WC.见过奇奇怪怪的判断,很无语.于是有了这篇文章.createfile可以新建文件和打开文件这个不多说了在文件过滤系统中IRP_MJ_CREATE怎么判断是open还是create无论是minifilter还是sfilter,判断基本都相同,只不过sfilter在完成例程,min...原创 2019-09-23 16:45:14 · 2711 阅读 · 1 评论 -
内核回调中获取设备,路径,文件信息蓝屏问题
最近在写一个类似procmon的框架,写完跑了一两天没有什么问题,直到windows defender的一个进程起来之后,过一会驱动必蓝屏于是很郁闷,看堆栈都是空的,起初以为是栈被破坏了,但是代码里面没有递归等等,基本大的变量都申请了内存,看dump说是irql过高,又看了代码,我习惯都是用非分页内存,所以不存在访问内存的问题,并且代码中都是在psl级别执行的,基本都排除了,异常点是ObpQu...原创 2019-02-12 17:30:41 · 1637 阅读 · 1 评论 -
【半原创】Irp占坑保护文件不被删除
Irp操作出自125096的博客http://blog.youkuaiyun.com/qq125096885/article/details/53033896这里提下 博主的例子中使用irpclose文件对象,这可能会造成蓝屏。见链接:https://bbs.pediy.com/thread-215269.htm所以这里把IrpCloseFile改为ObDereferenceObj转载 2017-09-21 13:23:29 · 2310 阅读 · 1 评论 -
[转转]反调试技巧总结-原理和实现-----转
原本也是转的,但我没找到原作者标 题: 反调试技巧总结-原理和实现-----转作 者: lcx4时 间: 2016-4-7链 接: http://www.lcx4.com/?post=512008.8.7 shellwolf一、 前言 前段学习反调试和vc,写了antidebug-tester,经常会收到message希望交流转载 2016-04-23 23:57:49 · 5168 阅读 · 0 评论 -
PE文件结构解析
其实自己写过32PE,和PE32+ looker,只不过当初写的时候是看着一张图来写的,这个比较详细,就转过来标 题: PE文件结构解析作 者: lcx4时 间: 2016-4-8链 接: http://www.lcx4.com/?post=51如图2-2所示,一个完整的PE(Portable Executable)文件由DOS头,PE文件头,块表,转载 2016-04-23 23:55:07 · 730 阅读 · 0 评论 -
C\C++精华总结
转载 2016-04-12 20:01:30 · 861 阅读 · 1 评论 -
属于我们的名言
一个人没有在30岁以前达成科学上的最大成就,那他永远都不会有。----Null上帝要你灭亡 必先让你疯狂 ! ----小生我怕怕我还年轻,少不了你的批评与指点 ! ----kz丶cn创造机会的人是勇者;等待机会的人是愚者. ----pjblog有能力的人影响别人,没能力的人,受人影响。 ----小默那些年我们一起泡看雪的日子,与君共勉,望能坚持下去,望共同进步.原创 2016-04-04 02:32:30 · 616 阅读 · 0 评论 -
[高质量C++/C编程]—代码风格总结 未完结
1.变量定义 每行一个2.一行代码只做一件事3.if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误。4.循环后应空一行 在写其他代码5.尽可能在定义变量的同时初始化该变量(就近原则)6.函数参数,后应+一个空格void Func1(int x, int y, int z); // 良好的风格vo原创 2016-03-31 16:15:36 · 660 阅读 · 1 评论 -
第一周学习笔记
第一日主要是对C语言的精华复习1.Printf 的各种打印格式 特别注意%n 有安全问题 不过已经修复不能使用了2.结构体的自然对齐问题 -- ok3.static的作用域 只初始化一次 具有记忆功能.4.Int fun(int a){Static int z =0;//int z就只执行一次 第二次自动遗忘Z += a;Return z;}5.fR原创 2016-03-31 16:24:15 · 566 阅读 · 0 评论 -
地址空间分割 记录一下
原创 2016-03-31 16:14:37 · 597 阅读 · 0 评论 -
变量存储空间 记录一下
原创 2016-03-31 16:13:55 · 515 阅读 · 0 评论 -
IRP结构与理解
Irp->AssociatedIrp.SystemBuffer //输入输出缓冲区 使用DO_BUFFER_IOIrp->IoStatus.Status //返回给用户层的状态,表示这次通信的结果Irp->IoStatus.Information //返回给用户层的大小Irp->UserBuffer //USER_BUFFER时的通信Irp->MdlAddress //使用MDL映原创 2016-03-31 16:08:33 · 2245 阅读 · 0 评论 -
驱动函数分类
ExXxx()//暂定IoXxx()//IO管理器KeXxx()//目前理解过与同步相关MmXxx()//内存相关ObXxx()//驱动对象PsXxx()//进程相关RtlXxx()//与字符串相关ZwXxx()//与文件 注册 进程相关FltXxx()//文件过滤相关NdisXxx()//Ndis过滤相关ExAllocatePoolWithTa原创 2016-03-31 16:07:42 · 983 阅读 · 0 评论 -
内核驱动漏洞与攻击预防-MJ0011
总结:1. 不要使用MmIsAddressValid函数,这个函数对于校验内存没有任何意义2. 一定要保证在try_execpt内完成你所有对于用户态内存的任何操作3.留心长度为0的缓存、为NULL的缓存指针和缓存对齐4.不正确的内核函数调用引发的问题5.给驱动提供的功能性接口必须小心6.设备控制尽量使用BUFFERED IO,而且一定要使用SystemBuffer,如果不原创 2016-03-31 16:06:51 · 1776 阅读 · 0 评论 -
WinDgb命令 持续更新
附看雪某人整理的WinDbg参考手册 v0.6(链接自搜)链接: http://pan.baidu.com/s/1skM5I49 密码: 7bn91.线程2.断点3.查看 d系列4.指针查看 dd系列5.反汇编6.栈7.修改8.进线程命令一:调试开始File->Open Executable 打开一个进程进行调试File->Attach原创 2016-03-31 16:01:39 · 1843 阅读 · 0 评论 -
WinDbg dump 分析(驱动蓝屏分析)
minidump 和核心dump 的区别在于一个速度快一些 一个慢一些 结果都是一样的(暂定)加载dump文件 File – > Open Crash Dump…设置并加载符号 不多说设置源文件路径 //不是打开源文件 是设置 在设置符号的下面!analyze –vkv/kp/kb.open –a address //根据地址或符号+偏移定位到代码行蓝屏常见原因原创 2016-03-31 15:56:18 · 2390 阅读 · 0 评论 -
异步读
异步与同步的概念:同步:必须等待函数执行的操作完成,才返回异步:只发送请求,不用等待函数执行完成,立即返回异步的实现:HANDLE g_hOverlappedEvent = CreateEvent(NULL, FALSE, FALSE, NULL);OVERLAPPED Overlapped;memset(&Overlapped, 0, sizeof(OVERLAPPED)原创 2016-04-10 01:31:33 · 553 阅读 · 0 评论 -
如何获取进程/目标对象的全路径?
PID->eprocess->KeStackAttachProcess->ZwQueryInformationProcess->ProcessImageFileName->ZwCreateFile->ObReferenceObjectByHandle->RtlVolumeDeviceToDosName->ZwQueryInformationFile如何获取目标对象的全路径?原创 2016-04-10 01:37:39 · 1982 阅读 · 0 评论 -
ZW与NT函数区别
区别:Ntdll.dll中:完全一样Ntoskrnl.exe中:Zw*nt*,即nt函数更底层Zw*函数会把PreviousMode设置为KernelMode 然后再调用Nt*函数,因此在Nt*函数中就不会进行参数检查。而如果直接调用Nt*函数的话 , 必须自己将PreviousMode设置为KernelMode,否则PreviousMode很可能仍然是UserMode, 这样原创 2016-04-10 17:59:24 · 3068 阅读 · 0 评论 -
无硬编码获取所有对象类型地址
NTKERNELAPI PVOID NTAPIObGetObjectType( IN PVOID pObject );void GetObjectTypeWin7x86(){ BOOLEAN i = 2; ULONG j= 2; ULONG64 ObjectType; // while (ObGetObjectType(&i+0xC)) {原创 2016-05-02 05:07:01 · 2124 阅读 · 0 评论 -
MFC控件自适应窗口大小类
AutoAdapt.h#pragma onceclass CAutoAdapt{public: CAutoAdapt(void); virtual ~CAutoAdapt(void);public: void ReSize(HWND m_hWnd); void InitSize(HWND m_hWnd); POINT old; private: };原创 2016-05-06 20:52:31 · 2395 阅读 · 0 评论 -
取数组地址引发的血案(int*)(&a+1);(int*)((int)a+1);
#include int main(int argc, char* argv[]){ int a[4] = {1,2,3,4}; int *ptr1 = (int*)(&a+1);//4 int *ptr2 = (int*)((int)a+1);//20000000 把a强制变为整数+1 /* 00401000 /$ 83EC 10 sub esp,0x10 0原创 2016-05-14 02:00:36 · 1214 阅读 · 0 评论 -
[备忘]栈 EBP ESP
未进行函数梗之前 此时ebp无效还没push ebpesp = 返回地址esp + 4 参数1esp + 8 参数2esp = 0020FC840020FC84 01071597 返回到 EbpEsp.01071597 来自 EbpEsp.0107109B // esp 返回地址0020FC88 00000003 //esp + 4 参数10020FC8C原创 2016-05-02 07:16:21 · 1146 阅读 · 0 评论 -
c/c++里的 堆区 栈区 静态区 文字常量区 程序代码区
http://blog.chinaunix.net/uid-10221131-id-354959.htmlhttp://blog.163.com/zb_075/blog/static/37340328201151102756835/一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其转载 2016-05-02 07:18:08 · 529 阅读 · 0 评论 -
过某些网游虚拟机检测
monitor_control.restrict_backdoor = "TRUE" isolation.tools.getPtrLocation.disable = "TRUE" isolation.tools.setVersion.disable = "TRUE" isolation.tools.getVersion.disable = "TRUE"原创 2016-05-02 05:47:30 · 3286 阅读 · 0 评论 -
[记录]开始进行 64 位 Windows 系统编程之前需要了解的所有信息
https://www.microsoft.com/china/MSDN/library/Windev/64bit/issuesx64.mspx?mfr=true转载 2016-05-02 05:26:53 · 687 阅读 · 0 评论 -
HOOK Engine (nthookengine.mhook)
可选引擎:nthookengine //支持x64 开源mhook //支持x64 开源Detour//x64收费方法:本进程HOOK,直接调用HOOK函数;否则,写成一个DLL,在DLL里HOOK每个函数然后将该DLL注入到目标进程,达到HOOK目标进程中的函数的目的MHOOK//需要直接获取原始函数地址#include mhook.htyped原创 2016-04-16 22:10:56 · 3345 阅读 · 2 评论