avatar
文章
319
标签
29
分类
0

Home
Archives
Tags
Categories
List
  • Music
  • Movie
Link
About
The Blog of Monoceros406
搜索
Home
Archives
Tags
Categories
List
  • Music
  • Movie
Link
About

The Blog of Monoceros406

硬件安全初探-理论入门
发表于2024-09-20|IoT
硬件安全初探-理论入门存储芯片只读存储器ROM只能读取事先存储的数据,无法改变或删除。数据不会因电源关闭而消失,分为PROM、EPROM、EEPROM、FLASHROME。 可编程只读存储器PROM,可用专用编程器将数据写入,但只有一次写入机会,写入后无法修改,写入时出错则只能报废。 可擦除可编程只读存储器EPROM,可重复擦除和写入。其正面陶瓷封装上有个玻璃窗口,用紫外线照射窗口内部集成电路可擦除,也可用EPROM擦除器。老式计算机BIOS使用EPROM,擦除窗口用BIOS发行商、版本和声明标签覆盖。 电擦除可编程只读存储器EEPROM,通过电子信号修改内容,最小修改单位为字节。 快闪存储器FLASHROM(闪存),允许多次擦除写入,是EEPROM的一种,还可快速读取数据,常用于一般性资料存储,以及计算机和其他数字产品间交换信息。闪存分为NOR闪存和NAND闪存。NOR闪存的特点是芯片内执行XIP,这样应用程序可直接在闪存内运行,不必把代码读到系统RAM中。NOR闪存传输效率很高,但写入和擦除速率很低。NAND闪存提供极高的单元密度,即存储密度高,写入和擦除速度很快,但需要特殊系统接 ...
恶意代码分析-Rootkit初探
发表于2024-09-17|恶意代码
恶意代码分析-Rootkit初探TDL3TDL3可将其代码加载到Windows内核中,因此微软在64位Windows系统上引入核完整性度量来使其无效。目前TDL3已经被TDL4取代,后者有大量逃逸和反取证功能,还用Bootkit突破64位系统的内核模式代码签名机制。 TDL3 Rootkit于2010年被首次发现,是当时开发的最复杂的恶意软件之一。该恶意软件家族被称为TDSS、Olmarik、Alureon等。TDL3通过子公司DogmaMillions和GangstaBucks以按安装付费PPI商业模式进行分发。 TDL3通过在驱动程序的二进制文件中注入恶意代码来感染加载操作系统所必需的一个引导启动驱动程序。在操作系统初始化过程早期阶段,这些引导启动驱动程序与内核映像一起加载,恶意代码控制启动过程。感染例程搜索支持核心操作系统组件的引导启动驱动程序列表,并随机选择一个作为感染目标。列表中每个条目用一个KLDR_DATA_TABLE_ENTRY结构描述,该结构由DRIVER_OBJECT结构中DriverSection字段引用。 1234567891011121314151617181 ...
Windows软件调试初探-栈和堆
发表于2024-09-05|Win系统调试
Windows软件调试初探-栈和堆栈每个线程分为内核态栈和用户态栈。内核态栈记录在_KTHREAD中,用户态栈记录在_TEB中。_ETHREAD通过.thread命令获取,而_ETHREAD第一个成员Tcb为_KTHREAD。用户态栈基本信息记录在线程信息块_NT_TIB结构中,该结构为线程环境块TEB的第一个成员,用~命令获取。 123456789101112131415161718192021lkd> dt _KTHREADnt!_KTHREAD ... +0x028 InitialStack : Ptr64 Void //共内核态代码逆向调用用户态代码时记录原栈顶位置 +0x030 StackLimit : Ptr64 Void //内核态栈边界 等于StackBase-内核态栈大小 +0x038 StackBase : Ptr64 Void //内核态基地址 即栈起始地址 ... +0x058 KernelStack : Ptr64 Void //内核态栈顶地址 ... +0x078 Kernel ...
WindowsAPI编程核心技术-栈和函数调用
发表于2024-08-27|Win内核安全
WindowsAPI编程核心技术-栈和函数调用什么是栈每个普通用户进程都有俩栈,一个为内核态栈记录在_KTHREAD结构中,另一个为用户态栈记录在_TEB结构中。 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751 ...
Windows软件调试初探-验证机制
发表于2024-08-26|Win系统调试
Windows软件调试初探-验证机制碎碎念驱动程序验证器主体在内核中,名字包含Verifier字样或以Vi/Vf开头。 还有应用程序验证器,一部分为NTDLL.DLL中函数,都以AVrf开头。 若一个驱动程序项取得Windows徽标和数字签名,一定要通过驱动验证器的验证,后者是WHQL测试的一部分内容。 蓝屏终止BSOD两个DDI用于蓝屏错误: 12345678910VOID KeBugCheck( _In_ ULONG BugCheckCode //停止码);VOID KeBugCheckEx( _In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4); 上面这俩函数的实现都在nt!KeBugCheck2中,加上这个一共仨函数统称为BugCheck函数,工作过程如下: ...
Windows软件调试初探-中断和异常管理
发表于2024-08-26|Win系统调试
Windows软件调试初探-中断和异常管理中断描述符表保护模式下有中断或异常发生时,CPU通过中断描述符表IDT寻找处理函数。 启动时0号处理器称为BSP,其他的称为AP。 在BSP中,IDT最初建立和初始化工作在Windows加载程序WinLoad在实模式下完成。准备好一个内存块后加载程序执行CLI指令关闭中断处理,用LIDT指令将IDT位置和长度信息加载到CPU,加载程序将CPU从实模式切换到保护模式,将执行权移交给NT内核入口函数KiSystemStartup。接下来,啮合处理器初始化函数通过SIDT指令取得IDT信息,对其调整后作为参数传给KiInitializePcr,后者将其记录到PCR和PRCB中。 对于每个AP,KeStartAllProcessors为其建立一个单独的处理器状态区,包括其IDT,再用KiInitProcessor,后者根据启动CPU的IDT为要初始化的AP复制一份。 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515 ...
C++源码免杀入门
发表于2024-08-21|恶意代码
C++源码免杀入门准备创建俩VS控制台工程,一个为Shellcode一个为ShellcodeLoader,两边运行库都改为多线程调试/MTd,关掉Spectre缓解,符合模式改为否。 用MSFVenom搞个Shellcode,功能是弹计算器,C语言格式: 1msfvenom -p windows/exec cmd=calc.exe -f c 当然这样生成的C代码很别扭,选中其中十六进制及引号部分,在010Editor中粘贴自十六进制,再拷贝自C代码。 注意这个是x86下的Shellcode,下面Loader要用x86写。 异或与逆转123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051#include <iostream>#include <Windows.h>#include <tchar.h>using namespace std;#define SHELLCODE_LENGTH 193#define S ...
CobaltStrike4.8初探
发表于2024-08-21|恶意代码
CobaltStrike4.8初探安装Server端得在Linux下跑,Client端Linux或Windows无所谓。Linux下运行teamserver如下,其中服务端IP可用ifconfig查看,这里设root为用户密码。 1234567891011121314151617181920212223242526┌──(kali㉿kali)-[~/CS-Server]└─$ sudo ./teamserver 192.168.17.129 root[sudo] password for kali: [*] Will use existing X509 certificate and keystore (for SSL)[*] Starting teamserver[*] Team Server Version: 4.8 (Pwn3rs)[*] Setting 'https.protocols' system property: SSLv3,SSLv2Hello,TLSv1,TLSv1.1,TLSv1.2,TLSv1.3[*] Loading keystrokes. ...
Windows软件调试初探-用户态调试过程
发表于2024-08-15|Win系统调试
Windows软件调试初探-用户态调试过程调试器进程本节调试器指的是用户态调试器。 调试器有俩线程,一个线程负责与用户对话,称为UI线程;另一个线程负责与被调试进程对话,称为调试器工作线程DWT或调试会话线程。WinDBG Classic的俩线程栈回溯为: 1234567891011121314UI线程:ntdll!KiFastSystemCallRet //内核模式执行系统服务 USER32!NtUserWaitMessage //调用等待窗口消息的子系统服务windbg!_wmainCRTStartup //程序启动函数kernel32!BaseProcessStart //系统的进程启动函数工作线程:ntdll!ZwWaitForDebugEvent //调用等待调试事件的内核服务dbgeng!LiveUserDebugServices::WaitForEventdbgeng!LiveUserTargetInfo::WaitForEventdbgeng!WaitForAnyTargetdbgeng!RawWaitForEvent //调试引擎内部函数dbgeng!DebugCli ...
Windows软件调试初探-用户态调试模型
发表于2024-08-11|Win系统调试
Windows软件调试初探-用户态调试模型碎碎念调试器进程通过调试API与NTDLL.DLL中调试支持函数和调试子系统交互。调试子系统分为3个部分:NTDL.DLL支持函数、内核文件支持函数、调试子系统服务器。 NTDLL.DLL中调试支持函数有3中:以DbgUi开头的供调试器用;以DbgSs开头的供调试子系统使用,已被废弃;其他以Dbg开头的用于实现调试API。 内核文件调试函数以Dbgk开头,负责采集和传递调试事件、控制被调试进程。 调试子系统服务器用于管理调试会话和调试事件,是调试消息(事件)的集散地,也是所有调试设施的核心,位于内核模式中。 Windows用户态调试通过调试事件驱动。调试器程序在与被调试进程建立调试对话后,调试器进程进入调试事件循环,等待调试事件发生,然后处理再等待,直到调试会话终止,如: 1234while (WaitForDebugEvent(&DbgEvt, INIFINITE)) { //等待事件 //处理等待得到的事件 ContinueDebugEvent(DbgEvt.dwProcessId, DbgEvt.dwThre ...
1…567…32
avatar
Monoceros406
Windows系统安全爱好者
文章
319
标签
29
分类
0
Follow Me
公告
哪里排版出锅了请告诉我QwQ QQ:1295625063
最新文章
Qt6开发入门-常用控件简介2025-05-11
Qt6开发入门-Qt框架综述2025-05-11
C++后端开发入门-环境配置与多线程编程2025-05-05
Qt6开发入门-环境配置与入门2025-05-05
差分隐私实践入门2025-05-03
标签
Win驱动开发 密码学 Python IoT 前端开发 PWN 漏洞复现 Misc 渗透测试 恶意代码 解题报告 AWD WinAPI GUI开发 算法 移动安全 后端开发 沙盒逃逸 逆向工程 取证 Web3 UEFI Web 编程语言 Win系统调试 OpenSSL 数学建模 其他 Win内核安全
归档
  • 五月 20255
  • 十二月 202413
  • 十一月 202412
  • 十月 202420
  • 九月 20243
  • 八月 20248
  • 七月 202413
  • 六月 20249
网站资讯
文章数目 :
319
已运行时间 :
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By Monoceros406
框架 Hexo|主题 Butterfly