- 博客(475)
- 资源 (40)
- 收藏
- 关注
原创 windbg集成python环境(pykd)
虽然windbg并没有提供现成的扩展命令简化上述过程,但我发现有一个名为pykd的扩展可以定制脚本实现上述目的。调试目标程序有x86/x64两种,因此需要为x86/x64 2个版本的windbg分别按爪个pykd扩展。(虽然windbg x64可以通过WOW子系统调试x86程序,但是由于x64环境并不支持FPU指令,pykd x64扩展命令在解析FPU指令时会崩溃)[Disassembly窗口fld指令执行后,Registers窗口中fpsw的值更新为0x3800,很难马上得到TOP=7的结果]
2025-03-16 18:57:10
397
原创 编译/引导EDK2 树莓派4
格蠹的幽兰代码本(RK3588)支持UEFI启动,在阅读RK3588代码的时候发现EDK2也对树莓派系列进行了支持。经过一番尝试,借助幽兰,我也在树莓派上bringup EFI bios(只能引导到Bios setup界面,不知道如何安装OS),在此记录SOP。PS: 理论上在x86机器上也能生成适用于树莓派的引导文件,但是搭建cross-toolchain实在麻烦。
2024-10-13 00:50:58
821
原创 Scapy样例三则
3.Scapy+PyShark实时抓包/TCPReplay. Scapy.sniff函数无法用display filter, 只能用PyShark代替. Scapy读取/重放 PyShark生成的pcap文件。2.Scapy "/" 符号生成数据包, sr/send发送3层包. srp/sendp发送2层包.
2023-10-04 16:10:53
349
原创 从应用层到MCU,看Windows处理键盘输入 [2.a.1.传球手User32.dll]
前文作为系列的开篇,我们站在Notepad.exe的视角,看它接过系统传来的消息,交由Notepad的窗口处理函数(WndProc)进行处理的过程。User32.dll!DispatchMessage API是前面"系统传来"4个字中的一环,也是最靠近应用层的一环。本文从该API切入,逐渐远离熟悉的应用层。开始前先回顾1个User32.dll导出的API(也是本文的主角):当Notepad.exe接受到消息后,通过该API调用RegisterClassEx注册的窗口过程。
2023-05-26 00:21:52
729
原创 从应用层到MCU,看Windows处理键盘输入 [1.在应用层调试Notepad.exe (按键消费者)]
文本编辑器/文本编辑框是应用层常见的键盘处理程序。文本编辑器的实现并不复杂,微软又(被迫)提供了Sample,因此本文就不重复造轮子了。本文从调试器的角度观察Notepad.exe如何消费键盘按键.
2023-03-21 15:24:19
1165
1
原创 从应用层到MCU,看Windows处理键盘输入 [引言]
鉴于以上原因,我打算重开一个新的系列,在不泄密的前提下,以键盘输入为例,介绍从应用层到驱动层,再到Bios,最后到EC的处理流程。2020年,微软泄露了部分WinXP源码(>75%), Intel泄露了KabyLake设计文档;我对驱动/ACPI/Bios有了更多的理解;最重要的,这个月,淘宝帮我克服了最大的写作障碍----我买到了二手的dynabook笔记本(几年前,想写一个关于ACPI协议的系列文章,并归档在,但由于各种原因(最主要的原因是没有合适的笔记本)断更了。了我买公司全新的笔记本)。
2023-03-19 17:59:55
309
原创 IDA Pro切换到16bit模式,分析BootLoader
最近想写一篇关于Intel开机上电执行Reset Vector指令的文章,遂提取了公司笔记本芯片上的Bootloader,并用UEFITool提取其中BootBlock部分(Reset Vector位于BootBlock内部):[图1,UEFITool加载提取的Bios image][图2,从Bios Image中提取BootBlock]BootBlock的任务之一是将CPU从实模式切换到保护模式(16Bit Mode切换到32Bit Mode)。因此,BootBlock最开始部分是16
2022-03-17 00:20:43
1540
原创 部署rtl88xx驱动/rpcapd,支持wireshark远程抓Wifi包
Kali Linux仅在局域网内做渗透测试略显大材小用,或许搭载飞行器随风远距离渗透更能体现它的初衷(隐蔽性强,或许可以不留痕迹!)。实现这个构想,需要解决一个核心问题:如何捕获远端局域网的网络流量?这个问题可以进一步分解为2个子问题:a.收集远端网络流量;b.回传收集的流量。为了解决这2个子问题,需要2块网卡(飞行器的问题,应该比较好解决):针对子问题a,使用具有Monitor功能的网卡;针对子问题b,使用其他任意类型无线网卡。下文将分类阐述:a.收集远端网络流量.可以断言,无线路由已经普及到各家
2022-01-09 23:55:57
14174
1
原创 使用Intel DCI/Inte System Debugger跟踪主机启动过程 中CSME/Bios信息
Background:1.每次开机遇到问题,如果需要Intel协助,Intel都会要求用DCI抓取开机日志,其中包含CSME/Bios/PMC等部件的输出,Intel基于此定位问题。2.去年11月参加了格蠹科技的DCI培训,正好缺这部分内容,打算用本文做补充。Limition&Notice:培训结束后,我手残把GDK7 bios下"DCI debug"设置错了,导致再也没法用GDK7自带的USB3.0 cable(准确的说是DCI-USB2/DCI-USB3 cable)调...
2021-08-05 23:14:42
5988
原创 windows driver response Power Event
#S5->S0Waiting to reconnect...USB2: Write openedConnected to Windows 7 19041 x64 target at (Sun Jun 6 13:33:03.551 2021 (UTC + 8:00)), ptr64 TRUEKernel Debugger connection established. (Initial Breakpoint requested)Symbol search path is: srv*C:\S..
2021-06-06 20:39:10
632
转载 WIN10手动替换系统文件
1、获得系统文件的管理所有权开始运行cmd 回车,然后任务栏命令提示符右键再右键 以管理员身份运行, cmd在命令提示符处,复制并粘贴(或键入)以下命令,然后按 Enter 键:【takeown /f Path_And_File_Name】注意:Path_And_File_Name 占位符代表系统文件的路径和文件名。例如,键入2.授予管理员完全访问系统文件的权限复制并粘贴(或键入)以下命令,然后按 Enter 键:【icacls Path_And_File_...
2021-06-06 20:35:46
3162
1
原创 [原创]ACPI.sys,从Windows到Bios的桥梁(2):Windows应用程序响应主板上GPIO(SCI)设备中断 软件篇
前篇<ACPI.sys,从Windows到Bios的桥梁(2):Windows应用程序响应主板上GPIO(SCI)设备中断 硬件篇>只完成了硬件部分,本文完成后半部分:在软件层接收和处理来自GPIO的SCI event。前文提到Bios将GPIO事件交由ACPI命名空间\_GPE处理,以软件工程的思维方式响应事件无非2种方式:a.事件接收方如能处理事件,则独自完成事件;b.事件接收方如不能处理事件,则交给下一环其他角色,以期他们完成事件;换到驱动的场景中:如果设备对象能处理IRP
2021-03-04 00:45:50
3294
6
原创 ACPI.sys,从Windows到Bios的桥梁(2):Windows应用程序响应GPIO(SCI)设备中断 Bios篇
序 2010年毕业那会,我首次接触到51单片机,当时发现51单片机如此简单却功能完备:尽管它没有搭载OS,却能接收GPIO Port上的设备事件并反过来控制Port上的设备。反观基于x86体系的PC,虽然功能强大,但终端用户却因为下列限制,很难控制主板上的设备(小到自己往主板上的装一个按键):a.主板厂商本着能省则省的原则,未必会在主板上保留空闲的GPIO Port;退一步,即使厂商出于某种原因,保留了空闲的GPIO Port,终端用户没有主板回路图,也无法找到这些GPIO Port;b...
2021-02-13 23:07:03
5273
1
原创 ACPI.sys,从Windows到Bios的桥梁(1.5):PCIe device 配置空间
在继续<ACPI.sys,从Windows到Bios的桥梁>系列之前,先暂停补充一下PCIe device MMIO相关的知识。PCIe MMIO比较复杂,推荐以这两篇文章入门:<System Address Map Initialization in x86/x64 Architecture Part 1: PCI-Based Systems> &<System Address Map Initialization in x86/x64 Architec...
2021-02-10 00:38:38
2634
1
原创 ACPI.sys,从Windows到Bios的桥梁(1):跟踪win7开启ACPI
由于windows设备驱动程序被设计成以设备堆栈(Device stack)的形式,下层驱动向上提供支持,所以我们习惯于不加思考的在设备栈的上层使用来自下层驱动的各种已有功能。当我还在做驱动程序时,经常见到这些句话:A1."功能驱动(Fdo)收到IRP_MJ_PNP&IRP_MN_START后,会向总线驱动(Pdo)查询并正确配置所需的硬件资源,如IO Port/IRQ/Mem等,然后才开始工作"。这段话我一直感到困惑:功能驱动的硬件资源来自总线驱动,那么总线驱动的资源由谁提供?可能有人...
2020-12-13 13:09:23
3999
原创 Windbg跟踪ACPI亮度设定
有阵子没更新博客了,趁着有空更新一下前阵子在工作遇到的内容:公司要出货一批笔记本,对屏幕亮度上限有限定。我无意中发现可以通过控制ACPI命名空间中Method(_BCL)的行为来实现该需求,虽然事后证明这种方式是错误的,但并不影响我记下windbg跟踪ACPI的方法。先简单介绍一下Method(_BCL)的作用,翻开ACPI Spec会看到下列定义:这是一个Bios提供给OS用于设置集显亮度百分比的接口(强调一下,仅设置集显,不包含外显)。对于Win10,Method(_BCL)在切换显示比列
2020-11-18 23:34:46
1131
原创 解决EZP_XPro无法烧录
网购了一个烧录器:EZP_XPro(V2),造型山寨,卖家秀如下:到手后,卖家提供了简陋的安装包以及同样简陋的安装文档。如果在64位系统上,认真的按安装文档安装驱动,挫败感会扑面而来---无论怎么操作,设备管理器中设备EZP_Xpro始终挂着黄标,原因有2点:1.卖家的驱动包没有证书,在设备管理器中无法成功更新驱动Cause:驱动包缺少cat文件Solution:a.inf文件[Version]节中添加CatalogFile节点[Version]Signature = "
2020-09-23 21:59:30
4100
1
转载 IDA---未识别函数处理
有时候会遇到IDA无法自动识别某个函数,地址表现为红色, 如下:(附注:这种状态下无法反汇编)。选中这部分代码,进行如下操作:Edit -> Functions -> Create function然后就能愉快地F5了
2020-08-20 23:23:07
3524
原创 ACPI WMI 杂记
关于WMI ACPI,建议先通读:1.<[原创]BIOS知识点滴Follow Bini系列之---WMI ACPI>了解WMI ACPI能提供什么后,再参考MSDN 2.<Windows Instrumentation: WMI and ACPI>,另外,3.<文件系统驱动编程基础篇之4——Wmi管理规范 mof文件>也可以作为1.的补充。需要特别说明的,1.中留了demo程序,一般读者没有环境测试(也不建议用真实机器测试,万一不开机损失挺大的),这时倒可以参考我...
2020-08-08 14:48:36
4764
原创 解密OEM Bios导出给Windows的接口----导出OEM内部使用的WMI接口
Bios由于需要保证运行时的透明性,它只向提供该BIOS的OEM厂商开放部分接口。用户只能通过OEM提供的App/Driver读取和设置OEM Bios。另外,OEM也保留WMI接口用于设置BIOS,同样,WMI接口也对用户透明。虽然OEM企图瞒天过海,但并不意味着我们无法获取WMI接口。本文基于ThinkPad T460P提出一种获得WMI接口的方式。另外,据了解,WMI接口可能存在安全风险,所以,这可能给渗透测试者提供了新的利用BIOS方式。 Bios\Windows通过WMI相互通信...
2020-08-01 21:14:14
1811
转载 Step to UEFI (137) 通过 BGRT 取得当前系统的 LOGO
对于BIOS来说,用户能够看到的是非常重要的事情。开机Logo就是这样。自从 Win8.1开始,Windows在进入桌面的时候可以显示用户自定义的Logo,而不是Microsoft自定义的图片,这是很有意思的事情。最近看了一篇介绍的文章,恍然大悟,原来是BIOS解压自己的Logo在内存中,然后通过ACPI Table将这个Logo传递给Windows,于是开机Logo比以前显示的时间更长更持久。具体的Table就是 Boot Graphics Resource Table。在 ACPI 6.1的5.2.
2020-06-17 17:25:53
2572
2
原创 对[我所认识的BIOS]系列 -- CPU的第一条指令 一文扩充(III):从源代码到 FFS 文件
本文会以 BdsDxe.ffs 的生成为例,介绍一下从 EFI 到 FFS的编译过程。所有的实验都是建立在UDK2015 NT32Pkg的基础上。首先,要保证NT32能够正常编译运行。之后,在 build目录中取得生成的BIOS文件:nt32.fd。使用 fmmt –v nt32.fd 查看一下这个BIOS的组成。可以看到其中只有一个 FV , 然后有 BdsDxe的ffs。我们可以在\Build...
2020-05-05 23:24:49
3057
原创 对[我所认识的BIOS]系列 -- CPU的第一条指令 一文扩充(II):从FDF到Bios Rom image
在"对[我所认识的BIOS]系列 -- CPU的第一条指令 一文扩充(I)"一文中,我用EFITool工具加载了BIOS Rom,发现Reset Vector位于BIOS Rom Image的最底部。本文将探索形成这样的Image结构相关的各种文件(.fdf/.fd/.fv等文件)。先说说我手头这个BIOS Rom,它由GenFv工具根据fdf文件生成:;引自Build\Platform...
2020-05-03 15:52:57
2948
原创 对[我所认识的BIOS]系列 -- CPU的第一条指令 一文扩充(I):Reset Vector和Bios Rom image
背景知识还是参考:[我所认识的BIOS]系列 -- CPU的第一条指令。工作的缘故,我能接触到Intel Comet Lake RVP board,同时也有IBV提供的Reference Code,所以本文不过是基于原作者的文章实操一遍。Step 0:Reference Code生成的Master Rom大小为32MB,下图是Master Rom布局(用UEFITool打开Master R...
2020-04-26 23:24:48
2176
原创 Win 8.1/10 x64平台 S3 Resume任意执行漏洞 (基于UEFI平台)
前言: 不知道这个漏洞之前有没有人发现并上报,我上报国家信息安全漏洞共享平台,对方要求我提供POC。我掂量了一下自己能力,觉得在驱动里实现POC难度挺高的,所以我就放弃了(当然,我已经顺手报给微软MSRC)。于是我就移步至此,记录调试过程。实验结论基于我前两篇文章:探索Windows S3唤醒函数 (一) 探索Windows S3唤醒函数 (二)。 从Win7开始,x64位平台需要在测试模...
2020-04-20 19:00:32
802
原创 探索Windows S3唤醒函数 (二)
在前面一篇文章中,已经定位到了变量HalpWakeVector,我也说过这是开启OS S3大门的钥匙,那这篇文章就应该是登堂入室了。1.从HalpWakeVector过度到HalpLowStubPhysicalAddress:hal模块对HalpWakeVector的引用不多,只有4处:但是现阶段只用到HalpSetupRealModeResume函数。.text:00000...
2020-04-14 13:31:13
751
原创 探索Windows S3唤醒函数 (一)
最近看UEFI中关于S3 Resume的实现,在Resume的最后阶段,UEFI通过SwitchStack执行OS的S3代码:UefiCpuPkg\Universal\Acpi\S3Resume2Pei\S3Resume.c:VOIDEFIAPIS3ResumeBootOs ( IN ACPI_S3_CONTEXT *AcpiS3Context, ...
2020-04-14 00:59:53
2054
转载 How To Setup A Wireless Access Point On Linux OS Using Hostapd
In this tutorial, i'll show you to setup a functional wireless access point (hotspot) on linux. We will host an access point and then configure some DHCP network paramters for settling in the traffic ...
2020-03-15 00:26:47
463
原创 UEFI ESRT表
Windows DevMgr中可以以更新驱动的方式更新ME/Bios/TPM模块。为了实现这个功能,离不开UEFI的ESRT表。ESRT的定义在MSDN上有详细描述,读者对ESRT表有基本概念后可以再看下ESRT表的实现。根据MSDN的定义,ESRT分两部分:EFI_SYSTEM_RESOURCE_TABLE:ESRT的描述符部分,用于描述EFI_SYSTEM_RESOURCE_ENT...
2020-03-11 14:57:36
3181
原创 Power IRPs处理注意点
<Programming the Microsoft Windows Driver Model>第8章8.1节提到处理Power Irp的注意点:"Power IRPs come to you in the context of a system thread that you must not block. There are several reasons why you ...
2020-03-08 23:23:26
419
转载 CWSP – 4 Way Handshake
In this post we will go through4-Way Handshakeprocess. This is described in Chapter 5 of CWSP Official Study Guide. Page 194 of this book shows the below RSN key hierarchy. Also watchthis CWNP vide...
2020-03-08 16:03:01
581
转载 CWSP -RSN Information Element
RSN-IE (Robust Security Network Information Element) is an optional field of variable length that can be found in 802.11 management frames.RSN element has an element ID of48& present in below di...
2020-03-08 15:42:02
801
转载 CWSP – EAP Basics
The Extensible Authentication Protocol (EAP) as defined inIETF RFC 2284provides support for many authentication methods.EAP was originally adopted for use with PPP, since been redefined inIETF RFC ...
2020-03-08 15:04:26
508
转载 Hashcat Tutorial – Rule Writing
前言:这篇文章提到了用mp.exe生成规则文件(或称字典),hashcat结合mp.exe生成的规则文件,进行Masker/hybrid攻击。进入hashcat-Maskprocessor页面,会发现可以用crunch替代。不过,Hashcat Tutorial – Rule Writing这篇文章不错,就转发出来吧。This is a follow-on to the post,Hashc...
2020-02-29 21:26:11
485
转载 Hashcat Tutorial – The basics of cracking passwords with hashcat
This post will walk through the basics for getting started with cracking passwords using Hashcat. I’ll cover installation, attack modes, generating a list of password hashes, building a dictionary, an...
2020-02-29 16:31:50
789
转载 Intel Management Engine, Explained: The Tiny Computer Inside Your CPU
The Intel Management Engine has been included on Intel chipsets since 2008. It’s basically a tiny computer-within-a-computer, with full access to your PC’s memory, display, network, and input devices....
2020-02-26 10:13:50
940
原创 Hydra爆破[无验证码]Web页面
Hydra是密码爆破神器,读者可以阅读这篇文章<Hydra – Brute Force Techniques>,了解Hydra支持的协议。其中,爆破Http登陆密码比爆破其他协议的密码更为复杂,本文将介绍如何爆破HTTP登陆页面的密码。HTTP有两种方式发送密码:Get Method和Post Method,后者比前者复杂,因此需要区别对待。0.区分Get/Post类型的登陆页面...
2020-02-16 15:20:37
13260
3
转载 Hydra – Brute Force HTTP(S)
In this tutorial, I will be demonstrating how to brute force authentication on HTTP and HTTPS services.Basic Hydra usage – HTTPhydra -l <USER> -p <Password> <IP Address> http-po...
2020-02-15 21:36:57
1368
转载 Hydra – Brute Force Techniques
Hydra is a powerful authentication brute forcing tools for many protocols and services. In this tutorial, I will be showing how to brute force logins for several remote systems.Basic Hydra usageh...
2020-02-15 21:26:37
876
Windows 10 x64 hal.zip
2020-04-20
hawkes_intel_microcode.pdf
2019-12-08
Anti-DBG.zip
2017-09-23
Anti-DbgV2.zip
2017-09-23
checked build acpi.sys
2016-10-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人