软件安全
文章平均质量分 82
软件安全,攻防
D-A-X
这个作者很懒,什么都没留下…
展开
-
FAT32文件系统
FAT32文件系统簇文件系统将磁盘空间以一定数目( 2n2^n2n,n为整数)的扇区为单位进行划分,这样的单位称为簇。每扇区大小为512字节。簇的大小一般是512B、1KB、2KB、4KB、8KB、16KB、32KB、64KB等。簇是进行文件空间分配的最小单位。FAT表FAT表(File Allocation Table 文件分配表)是Microsoft在FAT文件系统中用于磁盘数据(文件)索引和定位引进的一种单向链式结构。FAT区用每一个FAT项来记录每一个簇的占用情况FAT表原创 2020-11-22 23:33:09 · 2888 阅读 · 0 评论 -
PE文件
格式可移植的执行体PE(Portable Executable)是Win32 平台下可执行文件格式,常见的exe、dll、ocx、sys、com 都是PE文件,其可移植可执行体现在跨Win32 平台。PE 文件格式规定了代码、菜单、图标、位图、字符串等信息在可执行文件中如何组织PE 文件格式将可执行文件分成若干节(section),一个WinNT 应用程序典型地拥有9 个预定义节:.text、.bss、.rdata、.data、.pdata、.rsrc、.edata, .idata 和.debug原创 2020-11-22 23:32:18 · 208 阅读 · 0 评论 -
监控文件MD5值
在病毒查杀过程中,记录并监控文件MD5值是非常有效的做法。该部分程序利用开源MD5计算库,完成了对指定文件的监控机制。 首先要求用户输入监控文件地址信息,当没有监控文件时,会先生成监控文件信息。具体为:在指定路径建立监控信息输出文档,之后调用MD5库对指定监控文件生成MD5值并将该值存入文件中。具体代码如下: int file_len, i, j; FILE *pf, *md5_file; if(judge != 0){ md5_file = fopen("E:\\md5.txt", "w原创 2021-01-20 11:58:00 · 285 阅读 · 0 评论 -
计算MD5值
引用时直接引用MD5.cpp。MD5.h#ifndef __MD5_H__#define __MD5_H__ typedef struct{ unsigned int count[2]; unsigned int state[4]; unsigned char buffer[64]; }MD5_CTX; #define F(x,y,z) ((x & y) | (~x & z))#define原创 2020-07-03 15:31:13 · 275 阅读 · 0 评论 -
病毒查杀实现
对指定文件及指定特征码进行查杀 首先要求用户输入查杀文件的绝对路径,通过access()函数进行路径正确性的验证。access()函数位于头文件“io.h”中,其存在两个参数,第一个参数为需要验证的目标文件或文件夹路径,第二个参数为验证模式,详细信息如下:参数对应模式F_OK = 0仅判断是否存在X_OK = 1判断是否有执行权限W_OK = 2仅判断是否有写权限R_OK = 4仅判断是否有读权限 因此,我们使用参数“0”来检测用户输入地址是否合法原创 2021-01-20 11:58:34 · 825 阅读 · 0 评论 -
BM算法
#ifndef __BM_H__#define __BM_H__#include <algorithm>using namespace std;#define ASIZE 256void preBmBc(char *x, int m, int bmBc[]) { int i; for (i = 0; i < ASIZE; ++i) bmBc[i] = m; for (i = 0; i < m - 1; ++i) bmBc[x原创 2020-07-03 14:42:12 · 211 阅读 · 2 评论 -
蠕虫探测有效IP并完成DDoS攻击
对指定IPv4地址段进行扫描获取有效IP 在设计该程序过程中,希望提供较强的交互能力,因此希望可以在用户指定的网段进行有效地址的筛查,这是便需要完成对输入IPv4地址合法性的检验工作。 首先明确IPv4地址格式。与IPv6格式不同,IPv4将描述地址的32位二进制数分为4部分,每部分8位进行表示,由于其32位二进制字符串过于冗长且不易分辨,因此采用将每8位转换成十进制数表示,中间加上英文句号做以分隔,最终以点分十进制数形式表示。因此IPv4地址4部分中的每一部分,数字范围都在0-255之间,且要求每原创 2021-01-20 11:58:52 · 296 阅读 · 0 评论 -
Word Macrovirus 设计传播及优化
设计可对word工具栏进行复写的宏病毒 阅读Microsoft Office所提供的官方有关VBA操作的文档,地址为:https://docs.microsoft.com/zh-cn/office/vba/api/overview/word。其中提供了宏操作对象和其参数、方法。通过文档的描述,我们思考到,word自身已经存在的控件操作已经做好了封装,而宏操作并没有提供对于已有模块及类的事件操作监控接口,因此想要完成对已有控件响应的修改,只能通过对操作进行复写得到。 打开word文档,点击“工具”“宏原创 2021-01-20 11:59:07 · 247 阅读 · 2 评论 -
病毒的自我复制
对静态开源文件进行复制 设置两个指针,一个指向源文件为srcpf,一个指向目的文件为destpf。为实现用户可控的操作方式,允许输入复制次数,但同时为防止无限次复制导致磁盘损坏,因此设置循环次数上限为1000次。同时,由于各用户磁盘分卷存在差异,因此允许用户对目标地址进行设置;同时在该地址后加上文件名对地址进行测试,以验证并保证地址的可行性。随后,利用fread()函数和fwrite()函数进行文件的读写。需要注意的是,为防止文件名重复,需要对每次循环的文件名进行部分修改,故更改字符“0”使其每次增加1原创 2020-07-03 13:00:01 · 5066 阅读 · 1 评论 -
Win32进程空间信息分析
打开procexp.exe查看进程空间信息,proxexp提供了树型列表,方便对每个进程及其所包含的线程进行查看和分析。界面设计简单清晰,信息部分包括但不限于:每个进程的入口地址PID和相关线程的TID、CPU占用情况、进程描述以及开发公司。 打开LordPE.exe查看进程PID、虚拟内存地址和虚拟内存大小信息。该软件可通过加载一个程序来分析.text、.data等各模块的虚拟内存基址、偏移量等,如下图: 下面主要结合LordPE.exe对进程的PID进行分析,如下图: 观察到关键进程原创 2020-07-03 12:43:07 · 638 阅读 · 0 评论 -
PE文件
格式可移植的执行体PE(Portable Executable)是Win32 平台下可执行文件格式,常见的exe、dll、ocx、sys、com 都是PE文件,其可移植可执行体现在跨Win32 平台。PE 文件格式规定了代码、菜单、图标、位图、字符串等信息在可执行文件中如何组织PE 文件格式将可执行文件分成若干节(section),一个WinNT 应用程序典型地拥有9 个预定义节:.text、.bss、.rdata、.data、.pdata、.rsrc、.edata, .idata 和.debug原创 2020-06-02 19:55:11 · 238 阅读 · 0 评论 -
FAT32文件系统
簇文件系统将磁盘空间以一定数目( 2n2^n2n,n为整数)的扇区为单位进行划分,这样的单位称为簇。每扇区大小为512字节。簇的大小一般是512B、1KB、2KB、4KB、8KB、16KB、32KB、64KB等。簇是进行文件空间分配的最小单位。FAT表FAT表(File Allocation Table 文件分配表)是Microsoft在FAT文件系统中用于磁盘数据(文件)索引和定位引进的一种单向链式结构。FAT区用每一个FAT项来记录每一个簇的占用情况FAT表中:表项的个数=簇的原创 2020-06-02 19:44:23 · 2669 阅读 · 0 评论 -
Chrome实现独立代理
问题描述在靶机攻防实验中,常需要更改代理,Firefox提供了友好的更改方式,不会导致PC上的网络代理连带被更改,但是奈何实在不喜欢Firefox,因此尝试对Chrome进行独立代理设置。由于Chrome在设置中进行的更改将修改PC的网络代理,导致其他浏览器也不能使用正常上网功能,如何解决?解决办法如下图点击到扩展程序:点击页面左上角如下:进入商店后搜索“SwitchyOmega”进行插件安装。注意它的上一个版本是“Switchy”,建议安装新版本,UI更好看,功能做了优化。不能访问Chr原创 2020-05-23 19:28:29 · 3939 阅读 · 0 评论 -
利用CCPROXY溢出漏洞实现shellcode攻击
寻找溢出点打开CCPROXY后利用CMD控制台使用telnet命令连接主机127.0.0.1;使用ping命令寻找溢出点,观察到当ping后字符串长度达到1011时不产生溢出,而在长度达到1012时产生溢出,如下图:确定EIP并修改为JMP ESP值通过OD的“查找”“所有参考文本字串”进入字符串查找界面。点击右键“查找文本”后输入需要查找的字符串信息“Host not found”进行查找,如下图:按下Enter后进入“Host not found”所在语句,并在此处设置断点。关闭代理,重新原创 2021-01-20 11:59:44 · 3446 阅读 · 0 评论 -
IDA7.0提示Oops! internal error 1491 occured.解决办法
问题描述IDA7.0有两个程序,一个ida.exe用于调试32位程序,另一个ida64.exe用于调试64位程序。在使用ida.exe调试32位程序时,出现了“Oops! internal error 1491 occured.”的警告,如下图:解决办法进入IDA安装目录下的\dbgsrv\win32_remote.exe,打开该程序,然后再启动ida.exe,在调试模式中选择Remote Windows debugger,如下图:对所有弹出的窗口直接Enter掉,到参数选择界面时将Hostn原创 2020-05-10 14:24:52 · 3418 阅读 · 2 评论 -
利用OllyDbg完成序列号的逆向破解
打开程序,输入任意值,输入错误时弹出对话框提示输入错误,并同时得知序列号形式为“xxxx-xxxx-xxxx-xxxx”,如下图:由此可知该序列号破解存在一个切入点,即序列号错误时MassageBoxA的调用。因此利用OD的“设置API断点”对所有MassageBoxA设下断点,如下图:运行程序,输入任意测试序列号后,成功截断。分析此时堆栈中的信息提示,如下图:观察到图中最后一行提及父函数,点击该行并回车后将进入父函数,如下图:(高亮行即为回车后返回行)至此,回溯到序列号验证位置。但由于该方原创 2021-01-20 11:59:58 · 6012 阅读 · 0 评论 -
Heap Spray原理
什么是Heap Spray? 堆喷射是在 shellcode 的前面加上大量的slide code(滑板指令),组成一个注入代码段。然后向系统申请大量内存,并且反复用注入代码段来填充。这样就使得内存被大量的注入代码占据。然后通过结合其他漏洞控制程序流,使得程序执行到堆上,最终将导致shellcode的执行。 常见的slide code有NOP指令,还有一些类NOP指令,比如0x0c,0x0...原创 2020-03-13 19:58:36 · 1954 阅读 · 14 评论 -
C/C++函数调用类型&汇编区别与联系
汇编语言执行call与ret的过程 没有参数的情况:当执行段内转移时,不将cs压入栈,只压入ip;当执行段间转移时,先将cs压栈,再将ip压栈。返回时先将ip弹出,再根据有无压入cs弹出cs。 有参数的情况:先将cs、ip依次压入栈中,然后将参数从右向左依次压栈,再push bp,mov bp, sp。当返回时,pop bp, pop ip, pop cs;然后让栈顶指针sp+参数大小,即...原创 2020-03-06 17:42:47 · 403 阅读 · 0 评论 -
malloc与系统内存分配
问题1:Windows编程中malloc实际上能支持多大的内存呢?编写程序如下:#include <stdio.h> #include <stdlib.h> int count = 0;void *p = NULL;int main(int argc, char *argv[]){ int blocksize[4] = { 1024 * 1024 * 1...原创 2020-02-25 17:27:04 · 1875 阅读 · 0 评论