CPP
2024-1-26开始学习cpp… 1-26参考视频:最好的C++教程 P1: Welcome to CPPCPP 编译型语言 更高的效率 对硬件的直接控制 跨平台 P2: How to Setup CPP on WindowsIDE: Visual Studio集成开发环境IDE Hello cpp12345678# include <iostream>int main(){ std::cout << "hello cpp" << std::endl; std::cin.get();} P3: How CPP Works#include任何以“#”开头的都是预处理指令。include指的是包含一个文件另外std表示标准std::cout << << std::endl输出到控制台,endl表示换行<<就像printf一样,std::cout.print().print(std::endl)std::cin.get()等待输入回车。int main:...
恶意代码
恶意代码分析概述静态分析方法恶意代码指纹:哈希 WinMD5 反病毒引擎扫描目前收集到的在线反病毒引擎: VirusTotal VirScan 特征字符串:Strings Strings使用命令Strings main.exe > main.txt将可执行文件中的字符重定向到文件main.txt中。 去壳与反汇编压缩和混淆的代码通常至少包括LoadLibrary和GetProcAddress函数,它们用于加载和访问其他函数。待学习。。。 2. 动态分析技术虚拟机&&虚拟机逃逸 进程查看Process ExploreProcess Monitor 注册表相关sourceforgeregshot 网络相关warshark
Web安全:sqlmap使用
sqlmap介绍:sqlmap根据官方的说法:sqlmap是一个开源的渗透测试工具,它可以自动化的检测和利用SQL注入漏洞以及接管数据库服务器。 sqlmap下载&&安装sqlmap是一个python项目,下载即可,没有安装过程。下载:sqlmap sqlmap使用教程切换到sqlmap下载目录进行cmd,使用python运行sqlmap.py。如果想在任意目录使用sqlmap.py,添加环境变量? –help使用python sqlmap.py --help进行测试。sqlmap支持非常多的选项. Target选项: Request选项: 使用sqlmap实现漏洞利用 首先寻找注入点
图像空域隐写技术:LSB及其改进
灰度图灰度图就是使用黑色,白色和它们之间不同程度的灰色表示的图片。一般来说灰度图的每个像素在计算机中使用8比特表示,也就是8比特位深,有0-255共256个颜色值。下面是一张512*512像素8比特位深灰度图: 位图对于8比特表示的灰度图,高位比特对像素颜色的贡献明显高于低位比特。就像十进制111,明显百位的“1”是100,个位的“1”是1,100对111的贡献显然比1要大得多,其他进制包括二进制也是这个道理。编写程序取不同比特位构建出新的位平面图就可以看清每个比特位对图片了贡献了。 123456789101112131415161718192021222324252627import cv2import numpy as npfrom matplotlib import pyplot as plt# 读取灰度图像img = cv2.imread('lena.bmp', cv2.IMREAD_GRAYSCALE)# 获取图像的宽度和高度height, width = img.shape# 初始化一个全零矩阵,用于存储每个平面的像素值planes = np.ze...
无题
blind watermark概述blind_watermark是github上的一个图片水印开源项目,获得5.3K的收藏,几乎是github上最受欢迎的图片水印项目。blind_watermark是不可见盲水印,这意味着向图片添加水印并不会被人察觉,并且提取水印不需要原始图片,只需要嵌入水印后的图片。blind_watermark在频域进行水印嵌入,这一定程度上保证了该水印框架的不可见性和鲁棒性。blind_watermark支持嵌入的水印类型有二进制数据,字符串,图片,支持的载体图片为三通道的任意图片,另外通过理论计算的出blind_watermark的容量为:图片像素值总数/64 (bit)。根据作者给出的示例,blind_watermark在多种攻击上表现出色,包括旋转,裁剪,遮挡,椒盐噪声,亮度改变。 blind watermark前置知识blind_watermark使用多种技术,包括DWT(离散小波变换),DCT(离散余弦变换),(SVD)奇异值分解。 离散小波变换:DWT小波变换使用母小波在时间和频率上移动作为一组基来表达原始信号的信息,并将空域信息映射...
图像频域隐写技术:DCT系数隐写
关键词二值图/灰度图二值图非常简单,每一个像素使用1比特表示,0代表白,1代表黑。像二维码就可以这样表示节省空间。灰度图相比于二值图,多了一些介于黑和白之间的灰色,一般每个像素由8比特表示0-255的范围。黑白电视机放映的就是灰度图像,并不只是黑和白的二值图像。 RGBRGB是三原色:红Red,绿Green,蓝Blue的英文首字母缩写。调整三个颜色的比例能够表示其他颜色,就和画图时的调色一样。在计算机世界,图片由一个个像素点组成,而每个像素点的颜色由RGB表示。对于一张24位色深的图片,计算机使用24比特表示每个像素的颜色,RGB三个通道各占8比特。因此RGB表示一个像素点就像这样(0,255,0)。 YUV尽管计算机广泛使用RGB表示颜色并以深入人心,但是YUV的颜色表示方法在工业界应用广泛。YUV采用明亮度和色度编码颜色,其中Y表示明亮度(Luminance,Luma),而U和V表示色度(Chrominance,Chroma)。其中明度分量可以和色度分量隔离,单独表示一张黑白图片,也就是这点原因YUV可以兼容以前的一些黑白屏幕的设备。另外,由于人眼其实对明度的敏感程...
信息隐藏
技术概述信息隐藏有两个具体的应用方面,隐写术和数字水印。隐写术用于秘密的隐藏在正常的载体文件中,比如文档,图片,音频,视频等文件,为了秘密的传输信息而不被发现。数字水印一般用作版权保护,将水印可见或者不可见的隐写于载体文件中,当发生盗版时可以溯源盗版方。然而对抗数字水印的对抗技术也很多,比如加入各种噪声,使用手机拍摄文件,这些都是数字水印需要克服的问题。 课程笔记(⊙o⊙)… 视频资料隐写术鉴赏jpeg-dct【中英双字】JPEG算法原理 jpeg图片是如何压缩的?JPEG不可思议的压缩率——归功于信号处理理论 @圆桌字幕组JPEG 有损压缩 离散余弦变换 DCT 一条视频讲清楚“电子包浆”是因为被反复压缩吗?其实没那么简单 博客链接1链接2链接3
论文:Techniques for data hiding
论文概述Techniques for data hiding Patchwork算法理论基础在图像中随机选取A和B两个点,假设a为A点的亮度,b为B点的亮度,那么:经过多次重复这个操作,S的期望值应该为0。具体计算:略。。 算法实现 使用伪随机生成器生成秘钥(ai,bi)。 将a的亮度提高,b的亮度降低(1/256-5/256d)。 重复上面步骤n次。(通常来说是10000次)。
WavMark:Watermarking for Audio Generation
WavMark: Watermarking for Audio GenerationWavMark简介WavMark是一种创新的音频水印框架,可以在仅仅1秒的音频片段内编码多达32位的水印。该水印对人类的感官来说是难以察觉的,并且对各种攻击表现出很强的鲁棒性。它可以作为合成声音的有效标识符,在音频版权保护方面具有更广泛的应用潜力。Wavmark迭代的将相同水印嵌入到宿主音频的一秒片段中,确保全时段的保护。即使音频被剪切,也可以使用任何完整的片段进行解码。因此,该框架具有高度的灵活性,允许多个水印段的组合,以实现更高的鲁棒性和扩展的容量。利用10到20秒的音频作为载体,WavMark在10种常见攻击中平均误码率(BER)为0.48%,并且维持了优秀的不可感知性(SNR=36.85,PESQ=4.21)。 WavMark框架 音频表示WavMark使用采样率为16kHZ的单通道音频作为载体,编码单位长度(EUL)设置为一秒。因此原始输入被表示为长度为16000的一位波形向量记为:x_wave,进一步使用短时傅里叶变换(STFT)将其转换为频谱图: 水印表示水印消息...
SEED:Spectre_Attack
你可以到SEED官网获取实验资料:Spectre Attack Lab 幽灵攻击介绍Intel官方解释CPU幽灵/熔断漏洞 | 中英双语字幕幽灵攻击被发现于2017年并在2018年1月被公开,幽灵攻击允许特殊设计的恶意程序访问其他程序的内存空间,窃取数据。由于幽灵攻击是CPU设计的漏洞,并且这个设计缺陷广泛存在于当时大部分的处理器中,因此修复十分困难,除非更换电脑的CPU。 基于缓存加速的侧信道攻击侧信道攻击侧信道攻击利用设备或者系统在处理信息时泄露的物理信息反映出秘密信息,泄露的物理信息可以是时间,耗能,发热等。 缓存加速当内存数据被加载到缓存后,再次访问这个数据时间将会被缓存加速。下面代码演示缓存加速的效果。代码:创建一个数组并初始化,将数组缓存清空;对array(34096)和array(74096)进行赋值,因此这两个元素被载入缓存;遍历数组获取访问每个元素需要的时间,由于array(34096)和array(74096)两个元素在缓存中,因此这访问这两个元素的时间应该更短。 1234567891011121314151617181920212223242526...






