Python-PyQt6入门
PyQt6入门安装1pip install pyqt6 pyqt6-tools #其实后面那个就够了
安装后Qt Designer在:
1.venv\Lib\site-packages\qt6_applications\Qt\bin
PyUic6在:
1.venv\Scripts
在PyCharm的工具->外部工具,名字建议Qt Designer,程序找上述Qt Designer安装目录,工作目录建议$ProjectFileDir$\ui。PyUic6添加方式类似,程序选Python解释器路径,实参填如下,工作目录同Qt Designer。
1-m PyQt6.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
新建一个ui文件夹,即可用工具->外部工具打开。
入门这里界面直接拿Qt Designer做了,要不太费劲了。这里举例输入半径,计算周长和面积,所需控件如下,可试着用Form Layout。
控件类别
对象名称
属性
Dialog
windowTitle:”计算园面积”
Label
...
恶意代码分析-Bootkit初探
恶意代码分析-Bootkit初探碎碎念第一个Bootkit恶意软件为1971年的1971年的Creeper,在VAX PDP-10上的TENEX网络操作系统下运行的恶意软件,第一个杀毒软件Reaper就是专门删除Creeper而设计的。引导扇区感染者BSI是最早的Bootkit恶意软件之一,第一次被发现是在MS-DOS时代,它们感染磁盘引导扇区(第一个物理扇区)。
第一个感染Apple II的BSI病毒为Rich Skrenta的Elk Cloner病毒(1982~1983),比PC引导扇区病毒早了几年。下一个影响Apple II的BSI恶意软件是1989年的Load Runner,监听Control-Command-Reset触发的Apple reset命令来将其写入磁盘并实现恶意软件持久化。1986年出现第一个PC病毒Brain。在Windows操作系统引入和普及后BSI时代终结。
绕过微软数字签名检查的所有已知技巧有4种。第一种在用户模式下运行,依靠内置的微软Windows方法来合法地禁用签名策略,操作系统提供一个接口以通过使用自定义证书来验证驱动程序的数字签名,从而暂时禁用驱动 ...
硬件安全初探-理论入门
硬件安全初探-理论入门存储芯片只读存储器ROM只能读取事先存储的数据,无法改变或删除。数据不会因电源关闭而消失,分为PROM、EPROM、EEPROM、FLASHROME。
可编程只读存储器PROM,可用专用编程器将数据写入,但只有一次写入机会,写入后无法修改,写入时出错则只能报废。
可擦除可编程只读存储器EPROM,可重复擦除和写入。其正面陶瓷封装上有个玻璃窗口,用紫外线照射窗口内部集成电路可擦除,也可用EPROM擦除器。老式计算机BIOS使用EPROM,擦除窗口用BIOS发行商、版本和声明标签覆盖。
电擦除可编程只读存储器EEPROM,通过电子信号修改内容,最小修改单位为字节。
快闪存储器FLASHROM(闪存),允许多次擦除写入,是EEPROM的一种,还可快速读取数据,常用于一般性资料存储,以及计算机和其他数字产品间交换信息。闪存分为NOR闪存和NAND闪存。NOR闪存的特点是芯片内执行XIP,这样应用程序可直接在闪存内运行,不必把代码读到系统RAM中。NOR闪存传输效率很高,但写入和擦除速率很低。NAND闪存提供极高的单元密度,即存储密度高,写入和擦除速度很快,但需要特殊系统接 ...
恶意代码分析-Rootkit初探
恶意代码分析-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软件调试初探-栈和堆
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编程核心技术-栈和函数调用
WindowsAPI编程核心技术-栈和函数调用什么是栈每个普通用户进程都有俩栈,一个为内核态栈记录在_KTHREAD结构中,另一个为用户态栈记录在_TEB结构中。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751 ...
Windows软件调试初探-验证机制
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软件调试初探-中断和异常管理
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++源码免杀入门
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初探
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. ...