恶意程式前线战术指南笔记
恶意程式前线战术指南笔记档案映射PE蠕虫感染1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374#include <iostream>#include <Windows.h>#pragma warning(disable : 4996) /* Title: User32-free Messagebox Shellcode for All Windows * Author: Giuseppe D'Amore * Size: 113 byte (NULL free) */char x86_nullfree_msgbox[] = "\x31\xd2\xb2\x30\x64\x8b\x12\x8b\x52\x0c\x8b\x52\x1c\x8b\x42&q ...
Windows软件调试初探-WinDBG命令入门
Windows软件调试初探-WinDBG命令入门碎碎念标准命令有:
控制调试目标执行,包括回复运行g、跟踪执行t、单步执行p、追踪监视wt。
观察和修改通用寄存器r,读写MSRrdmsr/wrmsr,设置寄存器显示掩码rm。
读写I/O端口ib/iw/id、ob/ow/od。
观察、编辑和搜索内存数据的d系列、e系列、s系列。观察栈k系列。
设置和维护断点bp/ba,管理断点bl/bc/bd/be。
显示和控制线程~,显示进程|。
评估表达式?,评估C++表达式??。
汇编与反汇编a/u。
显示段选择子dg。
执行命令文件$。
设置调试事件处理方式sx系列,启用/禁止静默模式sq,设置内核选项so,设置符号后缀ss。
显示调试器和调试目标版本version,显示调试目标所在系统信息vertarget。
检查符号x。
控制和显示源程序ls系列。
加载调试符号ld,搜索相邻符号ln,显示模块列表lm。
结束调试会话q,结束远程调试qq,结束调试会话并分离调试目标qd。
标准命令帮助?。
元命令以点开始,有:
显示和设置调试会话的调试器选项,如符号选项.symopt ...
Windows驱动开发入门-NDIS小端口驱动
Windows驱动开发入门-NDIS小端口驱动碎碎念小端口驱动就是真正的网卡驱动,相对协议驱动而言,更贴近物理层。小端口驱动主要用于虚拟网卡,例如将通信接口由网络接口变为USB接口等。NDIS小端口驱动之一为ndisedge,使用WDF方式编码,是个虚拟网卡驱动,下层不通过任何物理设备,通过上节ndisprot协议驱动进行收包和发包。
NDIS体系
与上一层关系
TCP/IP NDIS协议驱动
ndisedge NDIS小端口驱动
通过NDIS接口
ndisprot NDIS协议驱动
通过IRP的发送和完成
物理网卡驱动 NDIS小端口驱动
通过NDIS接口
网卡 硬件
通过IO和中断资源
本节我只找到Windows Vista之前的解决方案,最新解决方案为https://learn.microsoft.com/zh-cn/windows-hardware/drivers/network/roadmap-for-developing-ndis-miniport-drivers但需要时间研究,先搁着。
Windows驱动开发入门-NDIS协议驱动源码
Windows驱动开发入门-NDIS协议驱动源码debug.c:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119 ...
Windows驱动开发入门-NDIS协议驱动
Windows驱动开发入门-NDIS协议驱动碎碎念本节代码需要最低警告、关警告按错误处理、关符合模式、关SDL检查、导入ndis.lib和wdmsec.lib。可直接参考Github上微软官方的驱动代码示例库的ndisprot工程。本节代码用传统型驱动编码方式,后面NDIS小端口驱动将用WDF驱动编码方式。
最常用的Ethernet V2(ARPA)以太网包如下,若类型2字节为0x80、0x00则表示为IP包。
低地址
高地址
源网卡MAC地址
目标网卡MAC地址
类型
数据
6字节
6字节
2字节
其他
协议驱动接收上层用户的Socket请求,把这些数据封装为IP包,再把IP包封装成以太网包发送出去;接收到以太网包时,分析这时给哪个用户程序的,把用户数据解析出来,提交给上层应用程序。协议驱动较多用于嗅探,如Wincap,一般不用于防火墙,应为这玩意儿不好干预应用程序发送或接收包。
网卡驱动接口标准NDIS是一组定义好的函数接口的集合。NDIS网络驱动有三种:协议驱动、小端口驱动、中间层驱动(包含过滤驱动),开发者可提供这三种不同的内核模块给NDIS使用。协议驱 ...
Windows驱动开发入门-WFP过滤平台
Windows驱动开发入门-WFP过滤平台碎碎念本节讲网络传输层过滤,其中传输层接口TDI接口技术已被淘汰,取代其的新技术称为Windows过滤平台WFP。WFP包含用户态API和内核态API,本节只讲内核态开发。
WFP分为两大层次模块,用户态基础过滤引擎BFE和内核态过滤引擎KMFE。基础过滤引擎对上提供C调用方式的API以及RPC接口,这些接口封装在fwpuclnt.dll中。基础过滤引擎对下和内核态过滤引擎交互,受内核态过滤引擎控制。内核态过滤引擎与系统网络协议栈交互,通过垫片(此垫片非彼垫片)内核模块从网络协议栈Tcpip.sys中获取网络数据,垫片被插入到网络协议栈各个层中。垫片获取到数据后,通过内核态过滤引擎提供的分类API,把数据传到WFP相应分层中。内核态过滤引擎分为若干个分层,每个分层中存在一个或多个子层和过滤器,子层是分层的更小划分。子层被赋予不同权重,同一个子层中,WFP按照权重从大到小把数据交给相应子层。
例如TCP/IP协议栈中从上到下有数据流分层垫片、ALE网络连接管理、传输分层垫片(TCP/UDP)、网络分层垫片(IPv4/ ...
Java代码审计入门
Java代码审计入门环境准备Docker得用魔法,现在倒是有个经过审查的Docker镜像源。Linux下配置文件为/etc/docker/daemon.json,Windows下直接在Docker Desktop中改。配置文件如下:
12345{ "registry-mirrors": [ "https://hub.atomgit.com/" ]}
然后刷新守护:
123sudo systemctl daemon-reloadsudo systemctl docker restartdocker info #查看是否换源成功
若出现意外则用apt删了重装就行,反正我重装了三遍才换好。
Docker常用命令:
1234567891011121314#测试用docker pull hello-worlddocker run hello-world#基础命令docker run ubuntu echo "helloworld"docker search to ...
Web入门-Java相关
Web入门-Java相关[NUSTCTF 2022 新生赛]Ezjava1丢IDEA,HelloController.java主代码:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051package com.joe1sn.controller;import com.joe1sn.module.EvalBean;import java.io.File;import java.io.IOException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMa ...
Web入门-XXE初探
[NCTF 2019]Fake XML cookbook看到代码:
1234567891011121314151617181920212223242526272829303132function doLogin(){ var username = $("#username").val(); //jQuery选择器 var password = $("#password").val(); if(username == "" || password == ""){ alert("Please enter the username and password!"); return; } var data = "<user><username>" + username + "</username><password>" + password + "</pass ...
信息安全数学基础-数论
信息安全数学基础-数论本节数学公式稍多,页面渲染加载时间较长。
整除设$a,b$是任意两个整数,其中$b\not=0$,若存在$q\in\mathbb{Z}$使等式$a=qb$成立,则称$b$整除$a$或$a$被$b$整除,记作$b\mid a$,并把$b$叫做$a$的因数,把$a$叫做$b$的倍数。人们常将$q$写成$a/b$或$\dfrac{a}{b}$。否则称$b$不能整除$a$或$a$不能被$b$整除,记作$b\not\mid a$。
设$a,b\not=0,c\not=0$为仨整数,若$b\mid a,c\mid b$,则$c\mid a$。
设$c\not=0,c\in\mathbb{Z}$,若$c\mid a_1,\cdots,a_n\in\mathbb{Z}$,则$\forall s_1,\cdots,s_n\in\mathbb{Z}$有$\displaystyle c\left|\sum_{i=1}^ns_ia_i\right.$。
设$a,b$为非零整数,若$a\mid b,b\mid a$,则$ ...